diff -Nrc3pad gcc-3.2/.brik gcc-3.2.1/.brik *** gcc-3.2/.brik Wed Aug 14 10:35:21 2002 --- gcc-3.2.1/.brik Tue Nov 19 19:17:47 2002 *************** *** 14,20 **** 2411687152b ./boehm-gc/BCC_MAKEFILE 394605993b ./boehm-gc/blacklst.c 971406525b ./boehm-gc/callprocs ! 2564765476b ./boehm-gc/ChangeLog 2542310219b ./boehm-gc/checksums.c 1272640704b ./boehm-gc/config.guess 4182969326b ./boehm-gc/config.sub --- 14,20 ---- 2411687152b ./boehm-gc/BCC_MAKEFILE 394605993b ./boehm-gc/blacklst.c 971406525b ./boehm-gc/callprocs ! 2840737175b ./boehm-gc/ChangeLog 2542310219b ./boehm-gc/checksums.c 1272640704b ./boehm-gc/config.guess 4182969326b ./boehm-gc/config.sub *************** *** 115,126 **** 2932074179b ./boehm-gc/mach_dep.c 145946109b ./boehm-gc/MacOS.c 591574792b ./boehm-gc/MacProjects.sit.hqx ! 1399035599b ./boehm-gc/Makefile.am 3148936110b ./boehm-gc/Makefile.direct 3806813747b ./boehm-gc/Makefile.dist 87051491b ./boehm-gc/Makefile.dj 2647418481b ./boehm-gc/Makefile.DLLs ! 3352764249b ./boehm-gc/Makefile.in 4270565414b ./boehm-gc/malloc.c 3656007348b ./boehm-gc/mallocx.c 2488176063b ./boehm-gc/mark.c --- 115,126 ---- 2932074179b ./boehm-gc/mach_dep.c 145946109b ./boehm-gc/MacOS.c 591574792b ./boehm-gc/MacProjects.sit.hqx ! 3930151010b ./boehm-gc/Makefile.am 3148936110b ./boehm-gc/Makefile.direct 3806813747b ./boehm-gc/Makefile.dist 87051491b ./boehm-gc/Makefile.dj 2647418481b ./boehm-gc/Makefile.DLLs ! 1617270503b ./boehm-gc/Makefile.in 4270565414b ./boehm-gc/malloc.c 3656007348b ./boehm-gc/mallocx.c 2488176063b ./boehm-gc/mark.c *************** *** 161,172 **** 2467355438b ./boehm-gc/typd_mlc.c 332085760b ./boehm-gc/version.h 205379550b ./boehm-gc/WCC_MAKEFILE ! 3644911074b ./boehm-gc/win32_threads.c ! 3068867888b ./BUGS ! 483004181b ./bugs.html ! 57362442b ./ChangeLog 3004978457b ./config/acinclude.m4 ! 1959210195b ./config/ChangeLog 1242784498b ./config.guess 1864899138b ./config.if 3007349820b ./config/mh-a68bsd --- 161,172 ---- 2467355438b ./boehm-gc/typd_mlc.c 332085760b ./boehm-gc/version.h 205379550b ./boehm-gc/WCC_MAKEFILE ! 3326583566b ./boehm-gc/win32_threads.c ! 1610170592b ./BUGS ! 3809269006b ./bugs.html ! 3781032226b ./ChangeLog 3004978457b ./config/acinclude.m4 ! 3317944764b ./config/ChangeLog 1242784498b ./config.guess 1864899138b ./config.if 3007349820b ./config/mh-a68bsd *************** *** 211,217 **** 456622165b ./config/mh-vaxult2 3265825290b ./config/mh-x86pic 3139906847b ./config-ml.in ! 2776795818b ./config/mpw/ChangeLog 4005879853b ./config/mpw/forward-include 439409833b ./config/mpw/g-mpw-make.sed 198559626b ./config/mpw-mh-mpw --- 211,217 ---- 456622165b ./config/mh-vaxult2 3265825290b ./config/mh-x86pic 3139906847b ./config-ml.in ! 2319412792b ./config/mpw/ChangeLog 4005879853b ./config/mpw/forward-include 439409833b ./config/mpw/g-mpw-make.sed 198559626b ./config/mpw-mh-mpw *************** *** 244,250 **** 2416042097b ./configure 3230279174b ./configure.in 1948950130b ./contrib/analyze_brprob ! 2162237348b ./contrib/ChangeLog 550196746b ./contrib/compare_tests 2828387446b ./contrib/convert_to_f2c 2929939770b ./contrib/convert_to_g2c --- 244,250 ---- 2416042097b ./configure 3230279174b ./configure.in 1948950130b ./contrib/analyze_brprob ! 3428325838b ./contrib/ChangeLog 550196746b ./contrib/compare_tests 2828387446b ./contrib/convert_to_f2c 2929939770b ./contrib/convert_to_g2c *************** *** 256,262 **** 4256039795b ./contrib/index-prop 3683285493b ./contrib/newcvsroot 1596938872b ./contrib/regression/btest-gcc.sh ! 2831060315b ./contrib/regression/ChangeLog 4208566980b ./contrib/regression/objs-gcc.sh 1757898889b ./contrib/regression/README 1865505596b ./contrib/regression/site.exp --- 256,262 ---- 4256039795b ./contrib/index-prop 3683285493b ./contrib/newcvsroot 1596938872b ./contrib/regression/btest-gcc.sh ! 2896767265b ./contrib/regression/ChangeLog 4208566980b ./contrib/regression/objs-gcc.sh 1757898889b ./contrib/regression/README 1865505596b ./contrib/regression/site.exp *************** *** 267,277 **** 2171125041b ./COPYING 508743035b ./COPYING.LIB 3205162104b ./.cvsignore ! 4032751412b ./FAQ ! 2321091199b ./faq.html 3513702948b ./fastjar/aclocal.m4 1005262133b ./fastjar/AUTHORS ! 3003145020b ./fastjar/ChangeLog 1745615150b ./fastjar/CHANGES 3743222129b ./fastjar/compress.c 1169302702b ./fastjar/compress.h --- 267,277 ---- 2171125041b ./COPYING 508743035b ./COPYING.LIB 3205162104b ./.cvsignore ! 3112237745b ./FAQ ! 118439247b ./faq.html 3513702948b ./fastjar/aclocal.m4 1005262133b ./fastjar/AUTHORS ! 640599037b ./fastjar/ChangeLog 1745615150b ./fastjar/CHANGES 3743222129b ./fastjar/compress.c 1169302702b ./fastjar/compress.h *************** *** 279,286 **** 1796406241b ./fastjar/configure 1220094724b ./fastjar/configure.in 1396100520b ./fastjar/COPYING ! 390830084b ./fastjar/dostime.c ! 2574136940b ./fastjar/dostime.h 2770615802b ./fastjar/INSTALL 2331671736b ./fastjar/install-defs.sh.in 1178077958b ./fastjar/install-sh --- 279,286 ---- 1796406241b ./fastjar/configure 1220094724b ./fastjar/configure.in 1396100520b ./fastjar/COPYING ! 3353116274b ./fastjar/dostime.c ! 446939748b ./fastjar/dostime.h 2770615802b ./fastjar/INSTALL 2331671736b ./fastjar/install-defs.sh.in 1178077958b ./fastjar/install-sh *************** *** 738,744 **** 3825818772b ./gcc/ada/casing.adb 2190810584b ./gcc/ada/casing.ads 3750437973b ./gcc/ada/ceinfo.adb ! 3249250835b ./gcc/ada/ChangeLog 869185536b ./gcc/ada/checks.adb 440073759b ./gcc/ada/checks.ads 401488734b ./gcc/ada/cio.c --- 738,744 ---- 3825818772b ./gcc/ada/casing.adb 2190810584b ./gcc/ada/casing.ads 3750437973b ./gcc/ada/ceinfo.adb ! 2529867828b ./gcc/ada/ChangeLog 869185536b ./gcc/ada/checks.adb 440073759b ./gcc/ada/checks.ads 401488734b ./gcc/ada/cio.c *************** *** 933,939 **** 2787179765b ./gcc/ada/gnat_rm.texi 1099903949b ./gcc/ada/gnat-style.texi 3866519797b ./gcc/ada/gnat_ug.texi ! 3439022171b ./gcc/ada/gnatvsn.ads 2692053620b ./gcc/ada/gnatxref.adb 1804647254b ./gcc/ada/g-os_lib.adb 3221085683b ./gcc/ada/g-os_lib.ads --- 933,939 ---- 2787179765b ./gcc/ada/gnat_rm.texi 1099903949b ./gcc/ada/gnat-style.texi 3866519797b ./gcc/ada/gnat_ug.texi ! 2880471508b ./gcc/ada/gnatvsn.ads 2692053620b ./gcc/ada/gnatxref.adb 1804647254b ./gcc/ada/g-os_lib.adb 3221085683b ./gcc/ada/g-os_lib.ads *************** *** 1596,1602 **** 4200440603b ./gcc/ada/s-wwdenu.ads 1874741026b ./gcc/ada/s-wwdwch.adb 3321650370b ./gcc/ada/s-wwdwch.ads ! 1364437604b ./gcc/ada/sysdep.c 1119298405b ./gcc/ada/system.ads 3848197813b ./gcc/ada/table.adb 3687590744b ./gcc/ada/table.ads --- 1596,1602 ---- 4200440603b ./gcc/ada/s-wwdenu.ads 1874741026b ./gcc/ada/s-wwdwch.adb 3321650370b ./gcc/ada/s-wwdwch.ads ! 4244182023b ./gcc/ada/sysdep.c 1119298405b ./gcc/ada/system.ads 3848197813b ./gcc/ada/table.adb 3687590744b ./gcc/ada/table.ads *************** *** 1652,1658 **** 1408035530b ./gcc/ada/xsinfo.adb 1441973181b ./gcc/ada/xsnames.adb 579454790b ./gcc/ada/xtreeprs.adb ! 3742376932b ./gcc/alias.c 1031959714b ./gcc/attribs.c 2742514573b ./gcc/basic-block.h 534677057b ./gcc/bb-reorder.c --- 1652,1658 ---- 1408035530b ./gcc/ada/xsinfo.adb 1441973181b ./gcc/ada/xsnames.adb 579454790b ./gcc/ada/xtreeprs.adb ! 790330640b ./gcc/alias.c 1031959714b ./gcc/attribs.c 2742514573b ./gcc/basic-block.h 534677057b ./gcc/bb-reorder.c *************** *** 1663,1686 **** 2454689977b ./gcc/builtins.def 3361511841b ./gcc/builtin-types.def 4196427447b ./gcc/caller-save.c ! 2566522078b ./gcc/calls.c 420541423b ./gcc/c-aux-info.c ! 2734296831b ./gcc/c-common.c 2096270511b ./gcc/c-common.def ! 3951106812b ./gcc/c-common.h 1317742909b ./gcc/c-convert.c ! 723213634b ./gcc/c-decl.c 487899684b ./gcc/c-errors.c ! 181278358b ./gcc/cfganal.c 1964748151b ./gcc/cfgbuild.c 2908854975b ./gcc/cfg.c ! 4109178465b ./gcc/cfgcleanup.c 1219429812b ./gcc/cfglayout.c 1858346793b ./gcc/cfglayout.h 3236894730b ./gcc/cfgloop.c ! 2076106567b ./gcc/cfgrtl.c 2243757094b ./gcc/c-format.c ! 428187719b ./gcc/ChangeLog 1398127668b ./gcc/ChangeLog.0 2827765101b ./gcc/ChangeLog.1 1199055802b ./gcc/ChangeLog.2 --- 1663,1686 ---- 2454689977b ./gcc/builtins.def 3361511841b ./gcc/builtin-types.def 4196427447b ./gcc/caller-save.c ! 1802334908b ./gcc/calls.c 420541423b ./gcc/c-aux-info.c ! 1073499624b ./gcc/c-common.c 2096270511b ./gcc/c-common.def ! 3764400561b ./gcc/c-common.h 1317742909b ./gcc/c-convert.c ! 1025902837b ./gcc/c-decl.c 487899684b ./gcc/c-errors.c ! 2570808086b ./gcc/cfganal.c 1964748151b ./gcc/cfgbuild.c 2908854975b ./gcc/cfg.c ! 822237739b ./gcc/cfgcleanup.c 1219429812b ./gcc/cfglayout.c 1858346793b ./gcc/cfglayout.h 3236894730b ./gcc/cfgloop.c ! 2041391494b ./gcc/cfgrtl.c 2243757094b ./gcc/c-format.c ! 2870572971b ./gcc/ChangeLog 1398127668b ./gcc/ChangeLog.0 2827765101b ./gcc/ChangeLog.1 1199055802b ./gcc/ChangeLog.2 *************** *** 1692,1699 **** 1985388077b ./gcc/c-lang.c 382517507b ./gcc/c-lex.c 835686435b ./gcc/c-lex.h ! 2161943665b ./gcc/c-objc-common.c ! 2900417621b ./gcc/collect2.c 653998699b ./gcc/collect2.h 2586036597b ./gcc/combine.c 4122382037b ./gcc/conditions.h --- 1692,1699 ---- 1985388077b ./gcc/c-lang.c 382517507b ./gcc/c-lex.c 835686435b ./gcc/c-lex.h ! 1191094530b ./gcc/c-objc-common.c ! 1806916686b ./gcc/collect2.c 653998699b ./gcc/collect2.h 2586036597b ./gcc/combine.c 4122382037b ./gcc/conditions.h *************** *** 1715,1721 **** 830149807b ./gcc/config/alpha/alpha.c 2486755494b ./gcc/config/alpha/alpha.h 1076515812b ./gcc/config/alpha/alpha-interix.h ! 2405259347b ./gcc/config/alpha/alpha.md 4085134134b ./gcc/config/alpha/alpha-protos.h 1407988137b ./gcc/config/alpha/crtfastmath.c 221364934b ./gcc/config/alpha/elf.h --- 1715,1721 ---- 830149807b ./gcc/config/alpha/alpha.c 2486755494b ./gcc/config/alpha/alpha.h 1076515812b ./gcc/config/alpha/alpha-interix.h ! 1955091231b ./gcc/config/alpha/alpha.md 4085134134b ./gcc/config/alpha/alpha-protos.h 1407988137b ./gcc/config/alpha/crtfastmath.c 221364934b ./gcc/config/alpha/elf.h *************** *** 1767,1775 **** 2135297695b ./gcc/config/arc/t-arc 2672724137b ./gcc/config/arm/aof.h 754089758b ./gcc/config/arm/aout.h ! 3275521552b ./gcc/config/arm/arm.c ! 2476043642b ./gcc/config/arm/arm.h ! 2992914365b ./gcc/config/arm/arm.md 2355527864b ./gcc/config/arm/arm-protos.h 478450204b ./gcc/config/arm/arm-wince-pe.h 531784060b ./gcc/config/arm/coff.h --- 1767,1775 ---- 2135297695b ./gcc/config/arc/t-arc 2672724137b ./gcc/config/arm/aof.h 754089758b ./gcc/config/arm/aout.h ! 968318223b ./gcc/config/arm/arm.c ! 2386488705b ./gcc/config/arm/arm.h ! 2864793753b ./gcc/config/arm/arm.md 2355527864b ./gcc/config/arm/arm-protos.h 478450204b ./gcc/config/arm/arm-wince-pe.h 531784060b ./gcc/config/arm/coff.h *************** *** 1816,1822 **** 2366951282b ./gcc/config/arm/xscale-elf.h 2474041656b ./gcc/config/avr/avr.c 3254145940b ./gcc/config/avr/avr.h ! 3802932744b ./gcc/config/avr/avr.md 567694740b ./gcc/config/avr/avr-protos.h 1853285406b ./gcc/config/avr/libgcc.S 3040444126b ./gcc/config/avr/t-avr --- 1816,1822 ---- 2366951282b ./gcc/config/arm/xscale-elf.h 2474041656b ./gcc/config/avr/avr.c 3254145940b ./gcc/config/avr/avr.h ! 4276324027b ./gcc/config/avr/avr.md 567694740b ./gcc/config/avr/avr-protos.h 1853285406b ./gcc/config/avr/libgcc.S 3040444126b ./gcc/config/avr/t-avr *************** *** 1903,1909 **** 22917470b ./gcc/config/freebsd.h 3532526787b ./gcc/config/freebsd-nthr.h 3508760161b ./gcc/config/freebsd-spec.h ! 3872776681b ./gcc/config.gcc 3236013445b ./gcc/config/gnu.h 269492728b ./gcc/config/gofast.h 1315260558b ./gcc/config.guess --- 1903,1909 ---- 22917470b ./gcc/config/freebsd.h 3532526787b ./gcc/config/freebsd-nthr.h 3508760161b ./gcc/config/freebsd-spec.h ! 3290013183b ./gcc/config.gcc 3236013445b ./gcc/config/gnu.h 269492728b ./gcc/config/gofast.h 1315260558b ./gcc/config.guess *************** *** 1952,1971 **** 915598536b ./gcc/config/i386/gnu.h 166489147b ./gcc/config/i386/gstabs.h 1725036574b ./gcc/config/i386/i386-aout.h ! 1056818854b ./gcc/config/i386/i386.c 4168545992b ./gcc/config/i386/i386-coff.h 2017248418b ./gcc/config/i386/i386elf.h ! 817460708b ./gcc/config/i386/i386.h 721929446b ./gcc/config/i386/i386-interix3.h 1321445318b ./gcc/config/i386/i386-interix.h ! 332230525b ./gcc/config/i386/i386.md 2589129574b ./gcc/config/i386/i386-protos.h 1164740130b ./gcc/config/i386/interix.c 1996803131b ./gcc/config/i386/isccoff.h 1692083111b ./gcc/config/i386/iscdbx.h 3908393755b ./gcc/config/i386/isc.h 877642037b ./gcc/config/i386/libgcc-x86_64-glibc.ver ! 4048130721b ./gcc/config/i386/linux64.h 2999558891b ./gcc/config/i386/linux-aout.h 2801664794b ./gcc/config/i386/linux.h 2799520524b ./gcc/config/i386/linux-oldld.h --- 1952,1971 ---- 915598536b ./gcc/config/i386/gnu.h 166489147b ./gcc/config/i386/gstabs.h 1725036574b ./gcc/config/i386/i386-aout.h ! 2087644841b ./gcc/config/i386/i386.c 4168545992b ./gcc/config/i386/i386-coff.h 2017248418b ./gcc/config/i386/i386elf.h ! 126280949b ./gcc/config/i386/i386.h 721929446b ./gcc/config/i386/i386-interix3.h 1321445318b ./gcc/config/i386/i386-interix.h ! 1643637147b ./gcc/config/i386/i386.md 2589129574b ./gcc/config/i386/i386-protos.h 1164740130b ./gcc/config/i386/interix.c 1996803131b ./gcc/config/i386/isccoff.h 1692083111b ./gcc/config/i386/iscdbx.h 3908393755b ./gcc/config/i386/isc.h 877642037b ./gcc/config/i386/libgcc-x86_64-glibc.ver ! 1758822745b ./gcc/config/i386/linux64.h 2999558891b ./gcc/config/i386/linux-aout.h 2801664794b ./gcc/config/i386/linux.h 2799520524b ./gcc/config/i386/linux-oldld.h *************** *** 1973,1979 **** 83628421b ./gcc/config/i386/lynx-ng.h 4206477894b ./gcc/config/i386/mach.h 3763689293b ./gcc/config/i386/mingw32.h ! 3292708147b ./gcc/config/i386/mmintrin.h 3361545892b ./gcc/config/i386/moss.h 2015644945b ./gcc/config/i386/netbsd64.h 527360119b ./gcc/config/i386/netbsd-elf.h --- 1973,1979 ---- 83628421b ./gcc/config/i386/lynx-ng.h 4206477894b ./gcc/config/i386/mach.h 3763689293b ./gcc/config/i386/mingw32.h ! 3851444052b ./gcc/config/i386/mmintrin.h 3361545892b ./gcc/config/i386/moss.h 2015644945b ./gcc/config/i386/netbsd64.h 527360119b ./gcc/config/i386/netbsd-elf.h *************** *** 2018,2024 **** 2902972689b ./gcc/config/i386/t-djgpp 537671296b ./gcc/config/i386/t-i386elf 1614388594b ./gcc/config/i386/t-interix ! 795980282b ./gcc/config/i386/t-linux64 4056914306b ./gcc/config/i386/t-mingw32 92801654b ./gcc/config/i386/t-netware 1960948471b ./gcc/config/i386/t-next --- 2018,2024 ---- 2902972689b ./gcc/config/i386/t-djgpp 537671296b ./gcc/config/i386/t-i386elf 1614388594b ./gcc/config/i386/t-interix ! 196644080b ./gcc/config/i386/t-linux64 4056914306b ./gcc/config/i386/t-mingw32 92801654b ./gcc/config/i386/t-netware 1960948471b ./gcc/config/i386/t-next *************** *** 2040,2052 **** 1621915956b ./gcc/config/i386/vsta.h 57307462b ./gcc/config/i386/vxi386.h 3423798645b ./gcc/config/i386/win32.h ! 3552187277b ./gcc/config/i386/winnt.c 2420589009b ./gcc/config/i386/x86-64.h 1690208514b ./gcc/config/i386/xm-cygwin.h 3902343879b ./gcc/config/i386/xm-djgpp.h 3631826497b ./gcc/config/i386/xm-i386-interix.h 92688945b ./gcc/config/i386/xm-mingw32.h ! 298059282b ./gcc/config/i386/xmmintrin.h 1404515293b ./gcc/config/i386/xm-vsta.h 2229503331b ./gcc/config/i860/bsd-gas.h 3105781024b ./gcc/config/i860/bsd.h --- 2040,2052 ---- 1621915956b ./gcc/config/i386/vsta.h 57307462b ./gcc/config/i386/vxi386.h 3423798645b ./gcc/config/i386/win32.h ! 1200967744b ./gcc/config/i386/winnt.c 2420589009b ./gcc/config/i386/x86-64.h 1690208514b ./gcc/config/i386/xm-cygwin.h 3902343879b ./gcc/config/i386/xm-djgpp.h 3631826497b ./gcc/config/i386/xm-i386-interix.h 92688945b ./gcc/config/i386/xm-mingw32.h ! 2085781748b ./gcc/config/i386/xmmintrin.h 1404515293b ./gcc/config/i386/xm-vsta.h 2229503331b ./gcc/config/i860/bsd-gas.h 3105781024b ./gcc/config/i860/bsd.h *************** *** 2119,2125 **** 1272963761b ./gcc/config/m68hc11/m68hc11.c 3563849705b ./gcc/config/m68hc11/m68hc11-crt0.S 1280294916b ./gcc/config/m68hc11/m68hc11.h ! 4149782803b ./gcc/config/m68hc11/m68hc11.md 1796033124b ./gcc/config/m68hc11/m68hc11-protos.h 452436463b ./gcc/config/m68hc11/m68hc12.h 1483227044b ./gcc/config/m68hc11/t-m68hc11-gas --- 2119,2125 ---- 1272963761b ./gcc/config/m68hc11/m68hc11.c 3563849705b ./gcc/config/m68hc11/m68hc11-crt0.S 1280294916b ./gcc/config/m68hc11/m68hc11.h ! 520753477b ./gcc/config/m68hc11/m68hc11.md 1796033124b ./gcc/config/m68hc11/m68hc11-protos.h 452436463b ./gcc/config/m68hc11/m68hc12.h 1483227044b ./gcc/config/m68hc11/t-m68hc11-gas *************** *** 2205,2211 **** 120628064b ./gcc/config/m68k/sun3n.h 2298299278b ./gcc/config/m68k/sun3o3.h 3527955370b ./gcc/config/m68k/t-aux ! 1499818164b ./gcc/config/m68k/t-crtstuff 1845413337b ./gcc/config/m68k/t-hp320 1601671577b ./gcc/config/m68k/t-linux 1601671577b ./gcc/config/m68k/t-linux-aout --- 2205,2211 ---- 120628064b ./gcc/config/m68k/sun3n.h 2298299278b ./gcc/config/m68k/sun3o3.h 3527955370b ./gcc/config/m68k/t-aux ! 2428228359b ./gcc/config/m68k/t-crtstuff 1845413337b ./gcc/config/m68k/t-hp320 1601671577b ./gcc/config/m68k/t-linux 1601671577b ./gcc/config/m68k/t-linux-aout *************** *** 2297,2303 **** 3112223626b ./gcc/config/mips/mips-5.h 4175300921b ./gcc/config/mips/mips.c 1450296441b ./gcc/config/mips/mips.h ! 27312380b ./gcc/config/mips/mips.md 4191298187b ./gcc/config/mips/mips-protos.h 3451330990b ./gcc/config/mips/netbsd.h 1685635385b ./gcc/config/mips/news4.h --- 2297,2303 ---- 3112223626b ./gcc/config/mips/mips-5.h 4175300921b ./gcc/config/mips/mips.c 1450296441b ./gcc/config/mips/mips.h ! 3326013566b ./gcc/config/mips/mips.md 4191298187b ./gcc/config/mips/mips-protos.h 3451330990b ./gcc/config/mips/netbsd.h 1685635385b ./gcc/config/mips/news4.h *************** *** 2322,2328 **** 3379398326b ./gcc/config/mips/t-ecoff 3744526568b ./gcc/config/mips/t-elf 2896429436b ./gcc/config/mips/t-iris ! 926858795b ./gcc/config/mips/t-iris6 2995723142b ./gcc/config/mips/t-isa3264 3174612276b ./gcc/config/mips/t-linux 3174612276b ./gcc/config/mips/t-netbsd --- 2322,2328 ---- 3379398326b ./gcc/config/mips/t-ecoff 3744526568b ./gcc/config/mips/t-elf 2896429436b ./gcc/config/mips/t-iris ! 1323445357b ./gcc/config/mips/t-iris6 2995723142b ./gcc/config/mips/t-isa3264 3174612276b ./gcc/config/mips/t-linux 3174612276b ./gcc/config/mips/t-netbsd *************** *** 2459,2465 **** 1258445797b ./gcc/config/rs6000/eabisim.h 3017082484b ./gcc/config/rs6000/freebsd.h 4293496085b ./gcc/config/rs6000/gnu.h ! 1853325160b ./gcc/config/rs6000/linux64.h 1351560312b ./gcc/config/rs6000/linuxaltivec.h 3642990693b ./gcc/config/rs6000/linux.h 1286374006b ./gcc/config/rs6000/lynx.h --- 2459,2465 ---- 1258445797b ./gcc/config/rs6000/eabisim.h 3017082484b ./gcc/config/rs6000/freebsd.h 4293496085b ./gcc/config/rs6000/gnu.h ! 1281642247b ./gcc/config/rs6000/linux64.h 1351560312b ./gcc/config/rs6000/linuxaltivec.h 3642990693b ./gcc/config/rs6000/linux.h 1286374006b ./gcc/config/rs6000/lynx.h *************** *** 2467,2481 **** 1820610909b ./gcc/config/rs6000/milli.exp 926081320b ./gcc/config/rs6000/netbsd.h 4127185084b ./gcc/config/rs6000/ppc-asm.h ! 2556177832b ./gcc/config/rs6000/rs6000.c 1882734550b ./gcc/config/rs6000/rs6000.h ! 2550315868b ./gcc/config/rs6000/rs6000.md 4107218804b ./gcc/config/rs6000/rs6000-protos.h 1817513646b ./gcc/config/rs6000/rtems.h 2439652147b ./gcc/config/rs6000/softfloat.h 3703627966b ./gcc/config/rs6000/sol-ci.asm 3016810975b ./gcc/config/rs6000/sol-cn.asm ! 2895846126b ./gcc/config/rs6000/sysv4.h 3795959522b ./gcc/config/rs6000/sysv4le.h 781650112b ./gcc/config/rs6000/t-aix43 2042460673b ./gcc/config/rs6000/t-beos --- 2467,2481 ---- 1820610909b ./gcc/config/rs6000/milli.exp 926081320b ./gcc/config/rs6000/netbsd.h 4127185084b ./gcc/config/rs6000/ppc-asm.h ! 2628430224b ./gcc/config/rs6000/rs6000.c 1882734550b ./gcc/config/rs6000/rs6000.h ! 1182996779b ./gcc/config/rs6000/rs6000.md 4107218804b ./gcc/config/rs6000/rs6000-protos.h 1817513646b ./gcc/config/rs6000/rtems.h 2439652147b ./gcc/config/rs6000/softfloat.h 3703627966b ./gcc/config/rs6000/sol-ci.asm 3016810975b ./gcc/config/rs6000/sol-cn.asm ! 1082828955b ./gcc/config/rs6000/sysv4.h 3795959522b ./gcc/config/rs6000/sysv4le.h 781650112b ./gcc/config/rs6000/t-aix43 2042460673b ./gcc/config/rs6000/t-beos *************** *** 2495,2501 **** 661638700b ./gcc/config/s390/linux.h 3979416840b ./gcc/config/s390/s390.c 2354192299b ./gcc/config/s390/s390.h ! 2043805243b ./gcc/config/s390/s390.md 1407420306b ./gcc/config/s390/s390-protos.h 3998835120b ./gcc/config/s390/s390x.h 1051100452b ./gcc/config/s390/t-linux --- 2495,2501 ---- 661638700b ./gcc/config/s390/linux.h 3979416840b ./gcc/config/s390/s390.c 2354192299b ./gcc/config/s390/s390.h ! 2229281672b ./gcc/config/s390/s390.md 1407420306b ./gcc/config/s390/s390-protos.h 3998835120b ./gcc/config/s390/s390x.h 1051100452b ./gcc/config/s390/t-linux *************** *** 2525,2537 **** 1386942151b ./gcc/config/sparc/bsd.h 1479022830b ./gcc/config/sparc/crtfastmath.c 54964474b ./gcc/config/sparc/elf.h ! 2261391724b ./gcc/config/sparc/freebsd.h 1322899413b ./gcc/config/sparc/gmon-sol2.c 3746795534b ./gcc/config/sparc/hal.h 3587954192b ./gcc/config/sparc/lb1spc.asm 557614974b ./gcc/config/sparc/lb1spl.asm 1761187951b ./gcc/config/sparc/libgcc-sparc-glibc.ver ! 1211069020b ./gcc/config/sparc/linux64.h 2544415545b ./gcc/config/sparc/linux-aout.h 1914379195b ./gcc/config/sparc/linux.h 2163445162b ./gcc/config/sparc/litecoff.h --- 2525,2537 ---- 1386942151b ./gcc/config/sparc/bsd.h 1479022830b ./gcc/config/sparc/crtfastmath.c 54964474b ./gcc/config/sparc/elf.h ! 1883862361b ./gcc/config/sparc/freebsd.h 1322899413b ./gcc/config/sparc/gmon-sol2.c 3746795534b ./gcc/config/sparc/hal.h 3587954192b ./gcc/config/sparc/lb1spc.asm 557614974b ./gcc/config/sparc/lb1spl.asm 1761187951b ./gcc/config/sparc/libgcc-sparc-glibc.ver ! 753491459b ./gcc/config/sparc/linux64.h 2544415545b ./gcc/config/sparc/linux-aout.h 1914379195b ./gcc/config/sparc/linux.h 2163445162b ./gcc/config/sparc/litecoff.h *************** *** 2549,2555 **** 4106236389b ./gcc/config/sparc/rtems.h 1579903847b ./gcc/config/sparc/sol2-64.h 2488307215b ./gcc/config/sparc/sol27-sld.h ! 3856389871b ./gcc/config/sparc/sol2-bi.h 1463670426b ./gcc/config/sparc/sol2-c1.asm 3288323690b ./gcc/config/sparc/sol2-ci.asm 2004370404b ./gcc/config/sparc/sol2-cn.asm --- 2549,2555 ---- 4106236389b ./gcc/config/sparc/rtems.h 1579903847b ./gcc/config/sparc/sol2-64.h 2488307215b ./gcc/config/sparc/sol27-sld.h ! 1510111749b ./gcc/config/sparc/sol2-bi.h 1463670426b ./gcc/config/sparc/sol2-c1.asm 3288323690b ./gcc/config/sparc/sol2-ci.asm 2004370404b ./gcc/config/sparc/sol2-cn.asm *************** *** 2562,2570 **** 2870886299b ./gcc/config/sparc/sp64-elf.h 3128199560b ./gcc/config/sparc/sp86x-aout.h 1221714757b ./gcc/config/sparc/sp86x-elf.h ! 2208851995b ./gcc/config/sparc/sparc.c 3432806460b ./gcc/config/sparc/sparc.h ! 3779592443b ./gcc/config/sparc/sparc.md 4023359087b ./gcc/config/sparc/sparc-protos.h 842964351b ./gcc/config/sparc/splet.h 952337645b ./gcc/config/sparc/sun4gas.h --- 2562,2570 ---- 2870886299b ./gcc/config/sparc/sp64-elf.h 3128199560b ./gcc/config/sparc/sp86x-aout.h 1221714757b ./gcc/config/sparc/sp86x-elf.h ! 2169834781b ./gcc/config/sparc/sparc.c 3432806460b ./gcc/config/sparc/sparc.h ! 879790849b ./gcc/config/sparc/sparc.md 4023359087b ./gcc/config/sparc/sparc-protos.h 842964351b ./gcc/config/sparc/splet.h 952337645b ./gcc/config/sparc/sun4gas.h *************** *** 2575,2585 **** 2056024669b ./gcc/config/sparc/t-crtfm 3744055768b ./gcc/config/sparc/t-elf 1582758741b ./gcc/config/sparc/t-halos ! 1439446046b ./gcc/config/sparc/t-linux64 ! 695285893b ./gcc/config/sparc/t-netbsd64 1190032917b ./gcc/config/sparc/t-openbsd 851768603b ./gcc/config/sparc/t-sol2 ! 1145811925b ./gcc/config/sparc/t-sol2-64 4194854877b ./gcc/config/sparc/t-sp86x 2727045329b ./gcc/config/sparc/t-sparcbare 1324996929b ./gcc/config/sparc/t-sparclite --- 2575,2585 ---- 2056024669b ./gcc/config/sparc/t-crtfm 3744055768b ./gcc/config/sparc/t-elf 1582758741b ./gcc/config/sparc/t-halos ! 2435625847b ./gcc/config/sparc/t-linux64 ! 1132426437b ./gcc/config/sparc/t-netbsd64 1190032917b ./gcc/config/sparc/t-openbsd 851768603b ./gcc/config/sparc/t-sol2 ! 3560385692b ./gcc/config/sparc/t-sol2-64 4194854877b ./gcc/config/sparc/t-sp86x 2727045329b ./gcc/config/sparc/t-sparcbare 1324996929b ./gcc/config/sparc/t-sparclite *************** *** 2620,2628 **** 321200235b ./gcc/config/t-svr4 937080303b ./gcc/config/udivmod.c 2590328114b ./gcc/config/udivmodsi4.c ! 1016693269b ./gcc/configure 2239237249b ./gcc/configure.frag ! 3096119353b ./gcc/configure.in 1401546799b ./gcc/config/usegas.h 1330961877b ./gcc/config/v850/lib1funcs.asm 3345272584b ./gcc/config/v850/rtems.h --- 2620,2628 ---- 321200235b ./gcc/config/t-svr4 937080303b ./gcc/config/udivmod.c 2590328114b ./gcc/config/udivmodsi4.c ! 2291528331b ./gcc/configure 2239237249b ./gcc/configure.frag ! 4254063890b ./gcc/configure.in 1401546799b ./gcc/config/usegas.h 1330961877b ./gcc/config/v850/lib1funcs.asm 3345272584b ./gcc/config/v850/rtems.h *************** *** 2648,2687 **** 3169968881b ./gcc/config/we32k/we32k.md 2514844092b ./gcc/config/we32k/we32k-protos.h 2711497169b ./gcc/config/x-interix ! 2141220080b ./gcc/config/xtensa/elf.h 1027874511b ./gcc/config/xtensa/lib1funcs.asm 3621223618b ./gcc/config/xtensa/lib2funcs.S 2321639494b ./gcc/config/xtensa/linux.h 3617796239b ./gcc/config/xtensa/t-xtensa ! 4293691443b ./gcc/config/xtensa/xtensa.c 2796950173b ./gcc/config/xtensa/xtensa-config.h ! 1720519523b ./gcc/config/xtensa/xtensa.h 1183159023b ./gcc/config/xtensa/xtensa.md ! 2854754468b ./gcc/config/xtensa/xtensa-protos.h 3382606314b ./gcc/conflict.c 2854418854b ./gcc/convert.c 2020855935b ./gcc/convert.h 2171125041b ./gcc/COPYING 508743035b ./gcc/COPYING.LIB ! 2221971030b ./gcc/c-parse.c ! 404744322b ./gcc/c-parse.in ! 4212422843b ./gcc/c-parse.y ! 1606645276b ./gcc/cp/call.c 4115552602b ./gcc/cp/cfns.gperf 1705070232b ./gcc/cp/cfns.h ! 246530727b ./gcc/cp/ChangeLog 2221404065b ./gcc/cp/ChangeLog.1 2127340768b ./gcc/cp/ChangeLog.2 2546444747b ./gcc/cp/ChangeLog.egcs ! 3382716843b ./gcc/cp/class.c 1309293181b ./gcc/cp/config-lang.in ! 2814007338b ./gcc/cp/cp-lang.c 2928114977b ./gcc/cp/cp-tree.def ! 520848138b ./gcc/cp/cp-tree.h 1230086821b ./gcc/cp/.cvsignore ! 1810620203b ./gcc/cp/cvt.c ! 3724208706b ./gcc/cp/decl2.c ! 2328300155b ./gcc/cp/decl.c 3040950596b ./gcc/cp/decl.h 1503739344b ./gcc/cp/dump.c 1402846352b ./gcc/cp/error.c --- 2648,2687 ---- 3169968881b ./gcc/config/we32k/we32k.md 2514844092b ./gcc/config/we32k/we32k-protos.h 2711497169b ./gcc/config/x-interix ! 1151914555b ./gcc/config/xtensa/elf.h 1027874511b ./gcc/config/xtensa/lib1funcs.asm 3621223618b ./gcc/config/xtensa/lib2funcs.S 2321639494b ./gcc/config/xtensa/linux.h 3617796239b ./gcc/config/xtensa/t-xtensa ! 221057176b ./gcc/config/xtensa/xtensa.c 2796950173b ./gcc/config/xtensa/xtensa-config.h ! 3802608261b ./gcc/config/xtensa/xtensa.h 1183159023b ./gcc/config/xtensa/xtensa.md ! 2389425253b ./gcc/config/xtensa/xtensa-protos.h 3382606314b ./gcc/conflict.c 2854418854b ./gcc/convert.c 2020855935b ./gcc/convert.h 2171125041b ./gcc/COPYING 508743035b ./gcc/COPYING.LIB ! 1845167332b ./gcc/c-parse.c ! 300639623b ./gcc/c-parse.in ! 492383053b ./gcc/c-parse.y ! 211407592b ./gcc/cp/call.c 4115552602b ./gcc/cp/cfns.gperf 1705070232b ./gcc/cp/cfns.h ! 696338438b ./gcc/cp/ChangeLog 2221404065b ./gcc/cp/ChangeLog.1 2127340768b ./gcc/cp/ChangeLog.2 2546444747b ./gcc/cp/ChangeLog.egcs ! 3828154577b ./gcc/cp/class.c 1309293181b ./gcc/cp/config-lang.in ! 4084279121b ./gcc/cp/cp-lang.c 2928114977b ./gcc/cp/cp-tree.def ! 4216823168b ./gcc/cp/cp-tree.h 1230086821b ./gcc/cp/.cvsignore ! 106302269b ./gcc/cp/cvt.c ! 276724828b ./gcc/cp/decl2.c ! 3891994909b ./gcc/cp/decl.c 3040950596b ./gcc/cp/decl.h 1503739344b ./gcc/cp/dump.c 1402846352b ./gcc/cp/error.c *************** *** 2690,2747 **** 728682437b ./gcc/cp/friend.c 1574667259b ./gcc/cp/g++.1 3180385434b ./gcc/cp/g++spec.c ! 6213340b ./gcc/cp/init.c 3812650249b ./gcc/cp/lang-options.h 2714092533b ./gcc/cp/lang-specs.h ! 1021773846b ./gcc/cp/lex.c 2280147967b ./gcc/cp/lex.h 2683095257b ./gcc/cp/Make-lang.in ! 2268565299b ./gcc/cp/mangle.c ! 3566373635b ./gcc/cp/method.c 701335209b ./gcc/cp/mpw-config.in 4041177245b ./gcc/cp/mpw-make.sed 3379488726b ./gcc/cp/NEWS 3146548402b ./gcc/cp/operators.def 622478745b ./gcc/cp/optimize.c ! 2913547076b ./gcc/cp/parse.c ! 170370885b ./gcc/cp/parse.h ! 3869126793b ./gcc/cp/parse.y 1602205564b ./gcc/cppdefault.c 733799898b ./gcc/cppdefault.h 3582099799b ./gcc/cpperror.c 4072103215b ./gcc/cppexp.c ! 1744773234b ./gcc/cppfiles.c 2283152717b ./gcc/cpphash.c 3545195852b ./gcc/cpphash.h ! 3019939107b ./gcc/cppinit.c 201524367b ./gcc/cpplex.c ! 696100766b ./gcc/cpplib.c ! 2677210260b ./gcc/cpplib.h ! 2425864251b ./gcc/cppmacro.c 2363485754b ./gcc/cppmain.c 3972345626b ./gcc/cppspec.c ! 877619125b ./gcc/cp/pt.c 1408553642b ./gcc/cp/ptree.c 73956308b ./gcc/c-pragma.c 1212765089b ./gcc/c-pragma.h 3993964584b ./gcc/cp/repo.c ! 1225143498b ./gcc/cp/rtti.c ! 4073173263b ./gcc/cp/search.c ! 1391383527b ./gcc/cp/semantics.c ! 435715887b ./gcc/cp/spew.c ! 1157806438b ./gcc/cp/tree.c ! 319815603b ./gcc/cp/typeck2.c ! 3802862631b ./gcc/cp/typeck.c 2032357073b ./gcc/crtstuff.c 3365219033b ./gcc/cse.c 1706957017b ./gcc/cselib.c 3914093915b ./gcc/cselib.h 2383555787b ./gcc/c-semantics.c 216805921b ./gcc/cstamp-h.in ! 2979514529b ./gcc/c-tree.h ! 2525875527b ./gcc/c-typeck.c 4208197548b ./gcc/.cvsignore ! 1600176938b ./gcc/dbxout.c 2583180678b ./gcc/dbxout.h 1104788844b ./gcc/dbxstclass.h 2470087149b ./gcc/debug.c --- 2690,2747 ---- 728682437b ./gcc/cp/friend.c 1574667259b ./gcc/cp/g++.1 3180385434b ./gcc/cp/g++spec.c ! 1504087345b ./gcc/cp/init.c 3812650249b ./gcc/cp/lang-options.h 2714092533b ./gcc/cp/lang-specs.h ! 1945319355b ./gcc/cp/lex.c 2280147967b ./gcc/cp/lex.h 2683095257b ./gcc/cp/Make-lang.in ! 1932648807b ./gcc/cp/mangle.c ! 3212394829b ./gcc/cp/method.c 701335209b ./gcc/cp/mpw-config.in 4041177245b ./gcc/cp/mpw-make.sed 3379488726b ./gcc/cp/NEWS 3146548402b ./gcc/cp/operators.def 622478745b ./gcc/cp/optimize.c ! 2202196704b ./gcc/cp/parse.c ! 24533096b ./gcc/cp/parse.h ! 1414382616b ./gcc/cp/parse.y 1602205564b ./gcc/cppdefault.c 733799898b ./gcc/cppdefault.h 3582099799b ./gcc/cpperror.c 4072103215b ./gcc/cppexp.c ! 2221722550b ./gcc/cppfiles.c 2283152717b ./gcc/cpphash.c 3545195852b ./gcc/cpphash.h ! 2419669468b ./gcc/cppinit.c 201524367b ./gcc/cpplex.c ! 2222966585b ./gcc/cpplib.c ! 3414601474b ./gcc/cpplib.h ! 3518489790b ./gcc/cppmacro.c 2363485754b ./gcc/cppmain.c 3972345626b ./gcc/cppspec.c ! 3092071067b ./gcc/cp/pt.c 1408553642b ./gcc/cp/ptree.c 73956308b ./gcc/c-pragma.c 1212765089b ./gcc/c-pragma.h 3993964584b ./gcc/cp/repo.c ! 1891418656b ./gcc/cp/rtti.c ! 1831732259b ./gcc/cp/search.c ! 1562130475b ./gcc/cp/semantics.c ! 2648162646b ./gcc/cp/spew.c ! 3766127741b ./gcc/cp/tree.c ! 1284974262b ./gcc/cp/typeck2.c ! 3575565334b ./gcc/cp/typeck.c 2032357073b ./gcc/crtstuff.c 3365219033b ./gcc/cse.c 1706957017b ./gcc/cselib.c 3914093915b ./gcc/cselib.h 2383555787b ./gcc/c-semantics.c 216805921b ./gcc/cstamp-h.in ! 2780104305b ./gcc/c-tree.h ! 1526402625b ./gcc/c-typeck.c 4208197548b ./gcc/.cvsignore ! 1308064076b ./gcc/dbxout.c 2583180678b ./gcc/dbxout.h 1104788844b ./gcc/dbxstclass.h 2470087149b ./gcc/debug.c *************** *** 2755,2807 **** 4192732570b ./gcc/diagnostic.h 23600501b ./gcc/doc/bugreport.texi 2815010075b ./gcc/doc/collect2.texi 2785243168b ./gcc/doc/configfiles.texi 3399730921b ./gcc/doc/configterms.texi ! 423742597b ./gcc/doc/contrib.texi 2272556046b ./gcc/doc/contribute.texi ! 3338732053b ./gcc/doc/cpp.1 ! 728474004b ./gcc/doc/cppenv.texi ! 614113989b ./gcc/doc/cpp.info ! 3684701703b ./gcc/doc/cpp.info-1 ! 2051881480b ./gcc/doc/cpp.info-2 ! 4277996359b ./gcc/doc/cpp.info-3 ! 1723172915b ./gcc/doc/cpp.info-4 4128300115b ./gcc/doc/cppinternals.info 1958814700b ./gcc/doc/cppinternals.texi ! 1576301312b ./gcc/doc/cppopts.texi ! 3942827135b ./gcc/doc/cpp.texi ! 3074388753b ./gcc/doc/c-tree.texi 1471878644b ./gcc/doc/.cvsignore ! 3767903981b ./gcc/doc/extend.texi 2634996326b ./gcc/doc/fragments.texi 600815516b ./gcc/doc/frontends.texi ! 47476850b ./gcc/doc/fsf-funding.7 ! 4122483838b ./gcc/doc/gcc.1 ! 1322329267b ./gcc/doc/gcc.info ! 1125594091b ./gcc/doc/gcc.info-1 ! 2210088709b ./gcc/doc/gcc.info-10 ! 3588585377b ./gcc/doc/gcc.info-11 2472794790b ./gcc/doc/gcc.info-12 3020319333b ./gcc/doc/gcc.info-13 3100556077b ./gcc/doc/gcc.info-14 2100335389b ./gcc/doc/gcc.info-15 1973326326b ./gcc/doc/gcc.info-16 ! 983912118b ./gcc/doc/gcc.info-17 ! 4229810973b ./gcc/doc/gcc.info-18 ! 2774448157b ./gcc/doc/gcc.info-19 ! 4041736365b ./gcc/doc/gcc.info-2 ! 273873526b ./gcc/doc/gcc.info-20 ! 913770364b ./gcc/doc/gcc.info-21 ! 1105239440b ./gcc/doc/gcc.info-22 ! 3748204607b ./gcc/doc/gcc.info-23 177802939b ./gcc/doc/gcc.info-3 ! 3514858133b ./gcc/doc/gcc.info-4 ! 4164754347b ./gcc/doc/gcc.info-5 523405852b ./gcc/doc/gcc.info-6 4075929926b ./gcc/doc/gcc.info-7 ! 399228416b ./gcc/doc/gcc.info-8 701416922b ./gcc/doc/gcc.info-9 ! 3451282471b ./gcc/doc/gccint.info 3600548089b ./gcc/doc/gccint.info-1 1504619998b ./gcc/doc/gccint.info-10 3473339140b ./gcc/doc/gccint.info-11 --- 2755,2809 ---- 4192732570b ./gcc/diagnostic.h 23600501b ./gcc/doc/bugreport.texi 2815010075b ./gcc/doc/collect2.texi + 3060436631b ./gcc/doc/compat.texi 2785243168b ./gcc/doc/configfiles.texi 3399730921b ./gcc/doc/configterms.texi ! 2163122922b ./gcc/doc/contrib.texi 2272556046b ./gcc/doc/contribute.texi ! 299886887b ./gcc/doc/cpp.1 ! 1838233798b ./gcc/doc/cppenv.texi ! 942037060b ./gcc/doc/cpp.info ! 579743374b ./gcc/doc/cpp.info-1 ! 3971167691b ./gcc/doc/cpp.info-2 ! 3217640916b ./gcc/doc/cpp.info-3 ! 3238131507b ./gcc/doc/cpp.info-4 ! 113743627b ./gcc/doc/cpp.info-5 4128300115b ./gcc/doc/cppinternals.info 1958814700b ./gcc/doc/cppinternals.texi ! 685869710b ./gcc/doc/cppopts.texi ! 3543132597b ./gcc/doc/cpp.texi ! 3813743019b ./gcc/doc/c-tree.texi 1471878644b ./gcc/doc/.cvsignore ! 1477628931b ./gcc/doc/extend.texi 2634996326b ./gcc/doc/fragments.texi 600815516b ./gcc/doc/frontends.texi ! 4060734459b ./gcc/doc/fsf-funding.7 ! 2701882048b ./gcc/doc/gcc.1 ! 3771908520b ./gcc/doc/gcc.info ! 1921369526b ./gcc/doc/gcc.info-1 ! 809288507b ./gcc/doc/gcc.info-10 ! 937687037b ./gcc/doc/gcc.info-11 2472794790b ./gcc/doc/gcc.info-12 3020319333b ./gcc/doc/gcc.info-13 3100556077b ./gcc/doc/gcc.info-14 2100335389b ./gcc/doc/gcc.info-15 1973326326b ./gcc/doc/gcc.info-16 ! 4233127554b ./gcc/doc/gcc.info-17 ! 1177537033b ./gcc/doc/gcc.info-18 ! 2957434958b ./gcc/doc/gcc.info-19 ! 546744273b ./gcc/doc/gcc.info-2 ! 4179571895b ./gcc/doc/gcc.info-20 ! 503977090b ./gcc/doc/gcc.info-21 ! 3135435025b ./gcc/doc/gcc.info-22 ! 766898990b ./gcc/doc/gcc.info-23 177802939b ./gcc/doc/gcc.info-3 ! 300919832b ./gcc/doc/gcc.info-4 ! 3173162766b ./gcc/doc/gcc.info-5 523405852b ./gcc/doc/gcc.info-6 4075929926b ./gcc/doc/gcc.info-7 ! 1604498314b ./gcc/doc/gcc.info-8 701416922b ./gcc/doc/gcc.info-9 ! 1334526965b ./gcc/doc/gccint.info 3600548089b ./gcc/doc/gccint.info-1 1504619998b ./gcc/doc/gccint.info-10 3473339140b ./gcc/doc/gccint.info-11 *************** *** 2812,2823 **** 1782892412b ./gcc/doc/gccint.info-16 2959978575b ./gcc/doc/gccint.info-17 4176515869b ./gcc/doc/gccint.info-18 ! 140211443b ./gcc/doc/gccint.info-19 ! 807234232b ./gcc/doc/gccint.info-2 202943203b ./gcc/doc/gccint.info-20 3389515766b ./gcc/doc/gccint.info-21 ! 934370110b ./gcc/doc/gccint.info-22 ! 2398443189b ./gcc/doc/gccint.info-23 1907881660b ./gcc/doc/gccint.info-3 1456140435b ./gcc/doc/gccint.info-4 645003639b ./gcc/doc/gccint.info-5 --- 2814,2825 ---- 1782892412b ./gcc/doc/gccint.info-16 2959978575b ./gcc/doc/gccint.info-17 4176515869b ./gcc/doc/gccint.info-18 ! 2985208404b ./gcc/doc/gccint.info-19 ! 630391800b ./gcc/doc/gccint.info-2 202943203b ./gcc/doc/gccint.info-20 3389515766b ./gcc/doc/gccint.info-21 ! 244064775b ./gcc/doc/gccint.info-22 ! 3017009534b ./gcc/doc/gccint.info-23 1907881660b ./gcc/doc/gccint.info-3 1456140435b ./gcc/doc/gccint.info-4 645003639b ./gcc/doc/gccint.info-5 *************** *** 2826,2837 **** 422138694b ./gcc/doc/gccint.info-8 3245006523b ./gcc/doc/gccint.info-9 926520134b ./gcc/doc/gccint.texi ! 1397603823b ./gcc/doc/gcc.texi ! 1484573546b ./gcc/doc/gcov.1 3165676809b ./gcc/doc/gcov.texi ! 1948430484b ./gcc/doc/gfdl.7 4217859569b ./gcc/doc/gnu.texi ! 2944376632b ./gcc/doc/gpl.7 2632697239b ./gcc/doc/headerdirs.texi 1425599017b ./gcc/doc/hostconfig.texi 1232987106b ./gcc/doc/include/fdl.texi --- 2828,2839 ---- 422138694b ./gcc/doc/gccint.info-8 3245006523b ./gcc/doc/gccint.info-9 926520134b ./gcc/doc/gccint.texi ! 489956337b ./gcc/doc/gcc.texi ! 439884872b ./gcc/doc/gcov.1 3165676809b ./gcc/doc/gcov.texi ! 41943876b ./gcc/doc/gfdl.7 4217859569b ./gcc/doc/gnu.texi ! 1434573161b ./gcc/doc/gpl.7 2632697239b ./gcc/doc/headerdirs.texi 1425599017b ./gcc/doc/hostconfig.texi 1232987106b ./gcc/doc/include/fdl.texi *************** *** 2840,2863 **** 1416455933b ./gcc/doc/include/gpl.texi 3627483023b ./gcc/doc/include/texinfo.tex 4219640220b ./gcc/doc/install-old.texi ! 3289828701b ./gcc/doc/install.texi 1451529977b ./gcc/doc/install.texi2html 1103982611b ./gcc/doc/interface.texi ! 3201795382b ./gcc/doc/invoke.texi 1327866291b ./gcc/doc/languages.texi ! 1442569774b ./gcc/doc/makefile.texi 647485435b ./gcc/doc/md.texi 2014418726b ./gcc/doc/objc.texi 285120363b ./gcc/doc/passes.texi 2247614285b ./gcc/doc/portability.texi ! 1491224498b ./gcc/doc/rtl.texi 3603168219b ./gcc/doc/service.texi ! 1541018360b ./gcc/doc/sourcebuild.texi ! 4060536618b ./gcc/doc/standards.texi ! 2682716543b ./gcc/doc/tm.texi ! 3680484655b ./gcc/doc/trouble.texi 3478556786b ./gcc/doc/vms.texi ! 1216009797b ./gcc/doloop.c 1033704706b ./gcc/dominance.c 2791449994b ./gcc/doschk.c 31829346b ./gcc/dwarf2asm.c --- 2842,2865 ---- 1416455933b ./gcc/doc/include/gpl.texi 3627483023b ./gcc/doc/include/texinfo.tex 4219640220b ./gcc/doc/install-old.texi ! 977716914b ./gcc/doc/install.texi 1451529977b ./gcc/doc/install.texi2html 1103982611b ./gcc/doc/interface.texi ! 1690368898b ./gcc/doc/invoke.texi 1327866291b ./gcc/doc/languages.texi ! 409601074b ./gcc/doc/makefile.texi 647485435b ./gcc/doc/md.texi 2014418726b ./gcc/doc/objc.texi 285120363b ./gcc/doc/passes.texi 2247614285b ./gcc/doc/portability.texi ! 2576532070b ./gcc/doc/rtl.texi 3603168219b ./gcc/doc/service.texi ! 3643604442b ./gcc/doc/sourcebuild.texi ! 2997941012b ./gcc/doc/standards.texi ! 3195862103b ./gcc/doc/tm.texi ! 886635974b ./gcc/doc/trouble.texi 3478556786b ./gcc/doc/vms.texi ! 2482239883b ./gcc/doloop.c 1033704706b ./gcc/dominance.c 2791449994b ./gcc/doschk.c 31829346b ./gcc/dwarf2asm.c *************** *** 2867,2882 **** 1010158138b ./gcc/dwarf2out.h 109276966b ./gcc/dwarf.h 3359840971b ./gcc/dwarfout.c ! 751950639b ./gcc/emit-rtl.c 626897841b ./gcc/enquire.c 2953931641b ./gcc/errors.c 3972701730b ./gcc/errors.h 1431652736b ./gcc/except.c 2826708782b ./gcc/except.h ! 3043936594b ./gcc/explow.c ! 2506147319b ./gcc/expmed.c ! 2453007041b ./gcc/expr.c ! 2884660603b ./gcc/expr.h 1934744031b ./gcc/f/ansify.c 1543506773b ./gcc/f/bad.c 3978113547b ./gcc/f/bad.def --- 2869,2884 ---- 1010158138b ./gcc/dwarf2out.h 109276966b ./gcc/dwarf.h 3359840971b ./gcc/dwarfout.c ! 1599988341b ./gcc/emit-rtl.c 626897841b ./gcc/enquire.c 2953931641b ./gcc/errors.c 3972701730b ./gcc/errors.h 1431652736b ./gcc/except.c 2826708782b ./gcc/except.h ! 908040152b ./gcc/explow.c ! 1156766543b ./gcc/expmed.c ! 3693001667b ./gcc/expr.c ! 3115307664b ./gcc/expr.h 1934744031b ./gcc/f/ansify.c 1543506773b ./gcc/f/bad.c 3978113547b ./gcc/f/bad.def *************** *** 2886,2897 **** 948632599b ./gcc/f/bld.c 3286267604b ./gcc/f/bld.h 2128697889b ./gcc/f/bld-op.def ! 1491665580b ./gcc/f/BUGS 235013049b ./gcc/f/bugs0.texi ! 2193415872b ./gcc/f/bugs.texi ! 2882007047b ./gcc/f/ChangeLog 4225493150b ./gcc/f/ChangeLog.0 ! 3761650327b ./gcc/f/com.c 87369815b ./gcc/f/com.h 2664732170b ./gcc/f/com-rt.def 535595698b ./gcc/f/config-lang.in --- 2888,2899 ---- 948632599b ./gcc/f/bld.c 3286267604b ./gcc/f/bld.h 2128697889b ./gcc/f/bld-op.def ! 576635123b ./gcc/f/BUGS 235013049b ./gcc/f/bugs0.texi ! 158397208b ./gcc/f/bugs.texi ! 2823422254b ./gcc/f/ChangeLog 4225493150b ./gcc/f/ChangeLog.0 ! 1588166676b ./gcc/f/com.c 87369815b ./gcc/f/com.h 2664732170b ./gcc/f/com-rt.def 535595698b ./gcc/f/config-lang.in *************** *** 2904,2911 **** 417834755b ./gcc/f/expr.h 2351117682b ./gcc/f/ffe.texi 782070966b ./gcc/f/fini.c ! 2713856129b ./gcc/f/g77.1 ! 1283152374b ./gcc/f/g77.info 1405242906b ./gcc/f/g77.info-1 4020360826b ./gcc/f/g77.info-10 2010631566b ./gcc/f/g77.info-11 --- 2906,2913 ---- 417834755b ./gcc/f/expr.h 2351117682b ./gcc/f/ffe.texi 782070966b ./gcc/f/fini.c ! 3506777541b ./gcc/f/g77.1 ! 3497434494b ./gcc/f/g77.info 1405242906b ./gcc/f/g77.info-1 4020360826b ./gcc/f/g77.info-10 2010631566b ./gcc/f/g77.info-11 *************** *** 2913,2919 **** 3461821628b ./gcc/f/g77.info-13 1208071216b ./gcc/f/g77.info-14 1936205287b ./gcc/f/g77.info-15 ! 4292352815b ./gcc/f/g77.info-16 259584195b ./gcc/f/g77.info-17 4125227617b ./gcc/f/g77.info-18 254417931b ./gcc/f/g77.info-19 --- 2915,2921 ---- 3461821628b ./gcc/f/g77.info-13 1208071216b ./gcc/f/g77.info-14 1936205287b ./gcc/f/g77.info-15 ! 2810069222b ./gcc/f/g77.info-16 259584195b ./gcc/f/g77.info-17 4125227617b ./gcc/f/g77.info-18 254417931b ./gcc/f/g77.info-19 *************** *** 2921,2928 **** 26285497b ./gcc/f/g77.info-20 3543736255b ./gcc/f/g77.info-21 116586643b ./gcc/f/g77.info-3 ! 873971042b ./gcc/f/g77.info-4 ! 328927715b ./gcc/f/g77.info-5 145000084b ./gcc/f/g77.info-6 2563451928b ./gcc/f/g77.info-7 3172593296b ./gcc/f/g77.info-8 --- 2923,2930 ---- 26285497b ./gcc/f/g77.info-20 3543736255b ./gcc/f/g77.info-21 116586643b ./gcc/f/g77.info-3 ! 3513135358b ./gcc/f/g77.info-4 ! 676912166b ./gcc/f/g77.info-5 145000084b ./gcc/f/g77.info-6 2563451928b ./gcc/f/g77.info-7 3172593296b ./gcc/f/g77.info-8 *************** *** 3041,3062 **** 2236212838b ./gcc/fixproto 1861938661b ./gcc/f/lab.c 3674332618b ./gcc/f/lab.h ! 2269802260b ./gcc/flags.h 136843109b ./gcc/f/lang-options.h ! 1804470939b ./gcc/f/lang-specs.h 4037310288b ./gcc/f/lex.c 722310274b ./gcc/f/lex.h 1465737068b ./gcc/floatlib.c ! 4159478385b ./gcc/flow.c 413109492b ./gcc/f/Make-lang.in 3929672430b ./gcc/f/malloc.c 1633854048b ./gcc/f/malloc.h 2687881356b ./gcc/f/name.c 558328466b ./gcc/f/name.h ! 3098033943b ./gcc/f/NEWS 3453379674b ./gcc/f/news0.texi ! 2256277091b ./gcc/f/news.texi ! 1024706751b ./gcc/fold-const.c 2696377463b ./gcc/f/parse.c 1067232252b ./gcc/f/proj.h 3820449811b ./gcc/fp-test.c --- 3043,3064 ---- 2236212838b ./gcc/fixproto 1861938661b ./gcc/f/lab.c 3674332618b ./gcc/f/lab.h ! 3658835587b ./gcc/flags.h 136843109b ./gcc/f/lang-options.h ! 1977846343b ./gcc/f/lang-specs.h 4037310288b ./gcc/f/lex.c 722310274b ./gcc/f/lex.h 1465737068b ./gcc/floatlib.c ! 959822363b ./gcc/flow.c 413109492b ./gcc/f/Make-lang.in 3929672430b ./gcc/f/malloc.c 1633854048b ./gcc/f/malloc.h 2687881356b ./gcc/f/name.c 558328466b ./gcc/f/name.h ! 2816874481b ./gcc/f/NEWS 3453379674b ./gcc/f/news0.texi ! 273264189b ./gcc/f/news.texi ! 522369544b ./gcc/fold-const.c 2696377463b ./gcc/f/parse.c 1067232252b ./gcc/f/proj.h 3820449811b ./gcc/fp-test.c *************** *** 3106,3127 **** 659922490b ./gcc/f/symbol.c 1323122026b ./gcc/f/symbol.def 690030434b ./gcc/f/symbol.h ! 1638259975b ./gcc/f/target.c ! 45862499b ./gcc/f/target.h 2698043928b ./gcc/f/top.c 2232338664b ./gcc/f/top.h 3443401298b ./gcc/f/type.c 2499934202b ./gcc/f/type.h ! 3501935943b ./gcc/function.c 316231375b ./gcc/function.h 3058774034b ./gcc/future.options ! 1968002837b ./gcc/f/version.c 1781447679b ./gcc/f/version.h 3584291506b ./gcc/f/where.c 819940437b ./gcc/f/where.h 1214866690b ./gcc/gbl-ctors.h 2405976148b ./gcc/gccbug.in ! 1471132352b ./gcc/gcc.c 960741132b ./gcc/gcc.h 3093644366b ./gcc/gcc.hlp 3633749318b ./gcc/gccspec.c --- 3108,3129 ---- 659922490b ./gcc/f/symbol.c 1323122026b ./gcc/f/symbol.def 690030434b ./gcc/f/symbol.h ! 561154028b ./gcc/f/target.c ! 1248104671b ./gcc/f/target.h 2698043928b ./gcc/f/top.c 2232338664b ./gcc/f/top.h 3443401298b ./gcc/f/type.c 2499934202b ./gcc/f/type.h ! 3426758284b ./gcc/function.c 316231375b ./gcc/function.h 3058774034b ./gcc/future.options ! 3972775402b ./gcc/f/version.c 1781447679b ./gcc/f/version.h 3584291506b ./gcc/f/where.c 819940437b ./gcc/f/where.h 1214866690b ./gcc/gbl-ctors.h 2405976148b ./gcc/gccbug.in ! 2534170090b ./gcc/gcc.c 960741132b ./gcc/gcc.h 3093644366b ./gcc/gcc.hlp 3633749318b ./gcc/gccspec.c *************** *** 3139,3145 **** 2648961261b ./gcc/genextract.c 2023228290b ./gcc/genflags.c 2713590814b ./gcc/gengenrtl.c ! 2807447281b ./gcc/genmultilib 1384421270b ./gcc/genopinit.c 4030468350b ./gcc/genoutput.c 2221468101b ./gcc/genpeep.c --- 3141,3147 ---- 2648961261b ./gcc/genextract.c 2023228290b ./gcc/genflags.c 2713590814b ./gcc/gengenrtl.c ! 2574485728b ./gcc/genmultilib 1384421270b ./gcc/genopinit.c 4030468350b ./gcc/genoutput.c 2221468101b ./gcc/genpeep.c *************** *** 3176,3182 **** 3966292684b ./gcc/gthr-solaris.h 4243675148b ./gcc/gthr-vxworks.h 3942109358b ./gcc/gthr-win32.h ! 3024578055b ./gcc/haifa-sched.c 544018069b ./gcc/halfpic.c 2731657470b ./gcc/halfpic.h 3590969103b ./gcc/hard-reg-set.h --- 3178,3184 ---- 3966292684b ./gcc/gthr-solaris.h 4243675148b ./gcc/gthr-vxworks.h 3942109358b ./gcc/gthr-win32.h ! 430540108b ./gcc/haifa-sched.c 544018069b ./gcc/halfpic.c 2731657470b ./gcc/halfpic.h 3590969103b ./gcc/hard-reg-set.h *************** *** 3184,3191 **** 2987787285b ./gcc/hash.h 466224151b ./gcc/hashtable.c 126902747b ./gcc/hashtable.h ! 3612003626b ./gcc/hooks.c ! 1290543146b ./gcc/hooks.h 519586985b ./gcc/hwint.h 3563549730b ./gcc/ifcvt.c 3686080794b ./gcc/input.h --- 3186,3193 ---- 2987787285b ./gcc/hash.h 466224151b ./gcc/hashtable.c 126902747b ./gcc/hashtable.h ! 3796251430b ./gcc/hooks.c ! 779103435b ./gcc/hooks.h 519586985b ./gcc/hwint.h 3563549730b ./gcc/ifcvt.c 3686080794b ./gcc/input.h *************** *** 3194,3200 **** 1320722832b ./gcc/integrate.h 3847321727b ./gcc/intl/bindtextdom.c 3277280645b ./gcc/intl.c ! 2698710874b ./gcc/intl/ChangeLog 3698301396b ./gcc/intl/config.charset 3683549278b ./gcc/intl/dcgettext.c 1537282354b ./gcc/intl/dcigettext.c --- 3196,3202 ---- 1320722832b ./gcc/integrate.h 3847321727b ./gcc/intl/bindtextdom.c 3277280645b ./gcc/intl.c ! 4257359986b ./gcc/intl/ChangeLog 3698301396b ./gcc/intl/config.charset 3683549278b ./gcc/intl/dcgettext.c 1537282354b ./gcc/intl/dcigettext.c *************** *** 3229,3235 **** 3814965188b ./gcc/java/buffer.c 1535113190b ./gcc/java/buffer.h 637702143b ./gcc/java/builtins.c ! 768598382b ./gcc/java/ChangeLog 2409493226b ./gcc/java/chartables.h 1544711683b ./gcc/java/check-init.c 3161785437b ./gcc/java/class.c --- 3231,3237 ---- 3814965188b ./gcc/java/buffer.c 1535113190b ./gcc/java/buffer.h 637702143b ./gcc/java/builtins.c ! 1215892592b ./gcc/java/ChangeLog 2409493226b ./gcc/java/chartables.h 1544711683b ./gcc/java/check-init.c 3161785437b ./gcc/java/class.c *************** *** 3240,3253 **** 698834578b ./gcc/java/decl.c 1301173842b ./gcc/java/except.c 1888306202b ./gcc/java/expr.c ! 2034854247b ./gcc/java/gcj.1 ! 89329382b ./gcc/java/gcjh.1 4005049153b ./gcc/java/gcj.info 3864487285b ./gcc/java/gcj.info-1 4154067378b ./gcc/java/gcj.info-2 1974029021b ./gcc/java/gcj.texi 533046670b ./gcc/java/gen-table.pl ! 1258102490b ./gcc/java/gij.1 2862690686b ./gcc/java/gjavah.c 1545050516b ./gcc/java/java-except.h 1953641142b ./gcc/java/java-opcodes.h --- 3242,3255 ---- 698834578b ./gcc/java/decl.c 1301173842b ./gcc/java/except.c 1888306202b ./gcc/java/expr.c ! 3243162773b ./gcc/java/gcj.1 ! 1643671722b ./gcc/java/gcjh.1 4005049153b ./gcc/java/gcj.info 3864487285b ./gcc/java/gcj.info-1 4154067378b ./gcc/java/gcj.info-2 1974029021b ./gcc/java/gcj.texi 533046670b ./gcc/java/gen-table.pl ! 2017208618b ./gcc/java/gij.1 2862690686b ./gcc/java/gjavah.c 1545050516b ./gcc/java/java-except.h 1953641142b ./gcc/java/java-opcodes.h *************** *** 3256,3262 **** 2113802419b ./gcc/java/java-tree.def 3036080891b ./gcc/java/java-tree.h 1618392854b ./gcc/java/jcf-depend.c ! 1928020938b ./gcc/java/jcf-dump.1 1347786459b ./gcc/java/jcf-dump.c 921328820b ./gcc/java/jcf.h 370700983b ./gcc/java/jcf-io.c --- 3258,3264 ---- 2113802419b ./gcc/java/java-tree.def 3036080891b ./gcc/java/java-tree.h 1618392854b ./gcc/java/jcf-depend.c ! 134179386b ./gcc/java/jcf-dump.1 1347786459b ./gcc/java/jcf-dump.c 921328820b ./gcc/java/jcf.h 370700983b ./gcc/java/jcf-io.c *************** *** 3264,3277 **** 189754917b ./gcc/java/jcf-path.c 3070824570b ./gcc/java/jcf-reader.c 3086938723b ./gcc/java/jcf-write.c ! 731971925b ./gcc/java/jv-convert.1 3805988298b ./gcc/java/jvgenmain.c ! 843035612b ./gcc/java/jv-scan.1 3491242747b ./gcc/java/jv-scan.c 686969605b ./gcc/java/jvspec.c 3733396854b ./gcc/java/keyword.gperf 3748734913b ./gcc/java/keyword.h ! 3656655116b ./gcc/java/lang.c 366330104b ./gcc/java/lang-options.h 3731853870b ./gcc/java/lang-specs.h 930602719b ./gcc/java/lex.c --- 3266,3279 ---- 189754917b ./gcc/java/jcf-path.c 3070824570b ./gcc/java/jcf-reader.c 3086938723b ./gcc/java/jcf-write.c ! 3332938287b ./gcc/java/jv-convert.1 3805988298b ./gcc/java/jvgenmain.c ! 2795084151b ./gcc/java/jv-scan.1 3491242747b ./gcc/java/jv-scan.c 686969605b ./gcc/java/jvspec.c 3733396854b ./gcc/java/keyword.gperf 3748734913b ./gcc/java/keyword.h ! 2455368983b ./gcc/java/lang.c 366330104b ./gcc/java/lang-options.h 3731853870b ./gcc/java/lang-specs.h 930602719b ./gcc/java/lex.c *************** *** 3279,3305 **** 497222224b ./gcc/java/Make-lang.in 1290236487b ./gcc/java/mangle.c 624686086b ./gcc/java/mangle_name.c ! 2885864991b ./gcc/java/parse.c 924019294b ./gcc/java/parse.h ! 69387480b ./gcc/java/parse-scan.c 578153036b ./gcc/java/parse-scan.y ! 2520755256b ./gcc/java/parse.y ! 3234576989b ./gcc/java/rmic.1 ! 284942511b ./gcc/java/rmiregistry.1 2066605666b ./gcc/java/typeck.c 173829162b ./gcc/java/verify.c 3207437983b ./gcc/java/xref.c 3070080051b ./gcc/java/xref.h 2742723736b ./gcc/java/zextract.c 1459175152b ./gcc/java/zipfile.h ! 2231553098b ./gcc/jump.c ! 1661628068b ./gcc/langhooks.c ! 159385744b ./gcc/langhooks-def.h ! 4012039513b ./gcc/langhooks.h 4134111346b ./gcc/LANGUAGES 2367190261b ./gcc/lcm.c 2318627229b ./gcc/libfuncs.h ! 3947654856b ./gcc/libgcc2.c 3671718625b ./gcc/libgcc2.h 1452643639b ./gcc/libgcc-std.ver 2497915666b ./gcc/limitx.h --- 3281,3307 ---- 497222224b ./gcc/java/Make-lang.in 1290236487b ./gcc/java/mangle.c 624686086b ./gcc/java/mangle_name.c ! 3984779313b ./gcc/java/parse.c 924019294b ./gcc/java/parse.h ! 3149853640b ./gcc/java/parse-scan.c 578153036b ./gcc/java/parse-scan.y ! 2763518333b ./gcc/java/parse.y ! 298027378b ./gcc/java/rmic.1 ! 3080717916b ./gcc/java/rmiregistry.1 2066605666b ./gcc/java/typeck.c 173829162b ./gcc/java/verify.c 3207437983b ./gcc/java/xref.c 3070080051b ./gcc/java/xref.h 2742723736b ./gcc/java/zextract.c 1459175152b ./gcc/java/zipfile.h ! 2867377468b ./gcc/jump.c ! 4163847594b ./gcc/langhooks.c ! 1885354315b ./gcc/langhooks-def.h ! 718654791b ./gcc/langhooks.h 4134111346b ./gcc/LANGUAGES 2367190261b ./gcc/lcm.c 2318627229b ./gcc/libfuncs.h ! 2402286846b ./gcc/libgcc2.c 3671718625b ./gcc/libgcc2.h 1452643639b ./gcc/libgcc-std.ver 2497915666b ./gcc/limitx.h *************** *** 3309,3320 **** 2698117766b ./gcc/lists.c 1174355773b ./gcc/local-alloc.c 830917499b ./gcc/longlong.h ! 2909380196b ./gcc/loop.c ! 1864476849b ./gcc/loop.h 2150704349b ./gcc/machmode.def 3928982379b ./gcc/machmode.h 189930733b ./gcc/main.c ! 1388062738b ./gcc/Makefile.in 501600506b ./gcc/mbchar.c 1508701785b ./gcc/mbchar.h 886384654b ./gcc/mips-tdump.c --- 3311,3322 ---- 2698117766b ./gcc/lists.c 1174355773b ./gcc/local-alloc.c 830917499b ./gcc/longlong.h ! 3943918019b ./gcc/loop.c ! 483531210b ./gcc/loop.h 2150704349b ./gcc/machmode.def 3928982379b ./gcc/machmode.h 189930733b ./gcc/main.c ! 1247644918b ./gcc/Makefile.in 501600506b ./gcc/mbchar.c 1508701785b ./gcc/mbchar.h 886384654b ./gcc/mips-tdump.c *************** *** 3323,3333 **** 217659056b ./gcc/mkdeps.c 3976112005b ./gcc/mkdeps.h 827441351b ./gcc/mkinstalldirs ! 461862408b ./gcc/mklibgcc.in 4201050746b ./gcc/mkmap-flat.awk 2827346461b ./gcc/mkmap-symver.awk 1597314052b ./gcc/move-if-change ! 3174803827b ./gcc/NEWS 4010954163b ./gcc/objc/config-lang.in 1966957144b ./gcc/objc/.cvsignore 588115418b ./gcc/objc/lang-options.h --- 3325,3335 ---- 217659056b ./gcc/mkdeps.c 3976112005b ./gcc/mkdeps.h 827441351b ./gcc/mkinstalldirs ! 4248086923b ./gcc/mklibgcc.in 4201050746b ./gcc/mkmap-flat.awk 2827346461b ./gcc/mkmap-symver.awk 1597314052b ./gcc/move-if-change ! 1558946830b ./gcc/NEWS 4010954163b ./gcc/objc/config-lang.in 1966957144b ./gcc/objc/.cvsignore 588115418b ./gcc/objc/lang-options.h *************** *** 3336,3353 **** 3712044081b ./gcc/objc/objc-act.c 2554922770b ./gcc/objc/objc-act.h 2534517289b ./gcc/objc/objc-lang.c ! 1948940216b ./gcc/objc/objc-parse.c ! 2631161308b ./gcc/objc/objc-parse.y 688475759b ./gcc/objc/objc-tree.def 3823063152b ./gcc/objc/README 538471119b ./gcc/ONEWS ! 2124113523b ./gcc/optabs.c 3971816206b ./gcc/optabs.h 151133448b ./gcc/output.h 1911824904b ./gcc/params.c 2474575794b ./gcc/params.def 840880994b ./gcc/params.h ! 138843419b ./gcc/po/ChangeLog 275286308b ./gcc/po/da.gmo 276047898b ./gcc/po/da.po 4175362661b ./gcc/po/el.gmo --- 3338,3355 ---- 3712044081b ./gcc/objc/objc-act.c 2554922770b ./gcc/objc/objc-act.h 2534517289b ./gcc/objc/objc-lang.c ! 1052913658b ./gcc/objc/objc-parse.c ! 283420579b ./gcc/objc/objc-parse.y 688475759b ./gcc/objc/objc-tree.def 3823063152b ./gcc/objc/README 538471119b ./gcc/ONEWS ! 3305080539b ./gcc/optabs.c 3971816206b ./gcc/optabs.h 151133448b ./gcc/output.h 1911824904b ./gcc/params.c 2474575794b ./gcc/params.def 840880994b ./gcc/params.h ! 3712234942b ./gcc/po/ChangeLog 275286308b ./gcc/po/da.gmo 276047898b ./gcc/po/da.po 4175362661b ./gcc/po/el.gmo *************** *** 3388,3395 **** 113125100b ./gcc/regrename.c 3100477763b ./gcc/regs.h 3611458427b ./gcc/reg-stack.c ! 4045449062b ./gcc/reload1.c ! 1469188466b ./gcc/reload.c 834085082b ./gcc/reload.h 4167441145b ./gcc/reorg.c 2715704724b ./gcc/resource.c --- 3390,3397 ---- 113125100b ./gcc/regrename.c 3100477763b ./gcc/regs.h 3611458427b ./gcc/reg-stack.c ! 664936410b ./gcc/reload1.c ! 55889624b ./gcc/reload.c 834085082b ./gcc/reload.h 4167441145b ./gcc/reorg.c 2715704724b ./gcc/resource.c *************** *** 3398,3419 **** 2800367218b ./gcc/rtl.c 3964111654b ./gcc/rtl.def 3490774286b ./gcc/rtl-error.c ! 79528154b ./gcc/rtl.h 1989258075b ./gcc/sbitmap.c 3201428436b ./gcc/sbitmap.h 324348149b ./gcc/scan.c 1702118899b ./gcc/scan-decls.c 339714129b ./gcc/scan.h 3912741047b ./gcc/scan-types.sh ! 1385416186b ./gcc/sched-deps.c 3568403641b ./gcc/sched-ebb.c ! 3539655811b ./gcc/sched-int.h 2565292623b ./gcc/sched-rgn.c 2176345645b ./gcc/sched-vis.c 3014933100b ./gcc/sdbout.c 1391855772b ./gcc/sdbout.h 1084935625b ./gcc/SERVICE ! 3262529120b ./gcc/sibcall.c 63942362b ./gcc/simplify-rtx.c 3345261950b ./gcc/sort-protos 3157302619b ./gcc/ssa.c --- 3400,3421 ---- 2800367218b ./gcc/rtl.c 3964111654b ./gcc/rtl.def 3490774286b ./gcc/rtl-error.c ! 3336969021b ./gcc/rtl.h 1989258075b ./gcc/sbitmap.c 3201428436b ./gcc/sbitmap.h 324348149b ./gcc/scan.c 1702118899b ./gcc/scan-decls.c 339714129b ./gcc/scan.h 3912741047b ./gcc/scan-types.sh ! 347395426b ./gcc/sched-deps.c 3568403641b ./gcc/sched-ebb.c ! 4108826208b ./gcc/sched-int.h 2565292623b ./gcc/sched-rgn.c 2176345645b ./gcc/sched-vis.c 3014933100b ./gcc/sdbout.c 1391855772b ./gcc/sdbout.h 1084935625b ./gcc/SERVICE ! 2225673670b ./gcc/sibcall.c 63942362b ./gcc/simplify-rtx.c 3345261950b ./gcc/sort-protos 3157302619b ./gcc/ssa.c *************** *** 3422,3428 **** 332547863b ./gcc/ssa.h 2395322097b ./gcc/stab.def 471587796b ./gcc/stack.h ! 3088505215b ./gcc/stmt.c 2592810543b ./gcc/stor-layout.c 3515875777b ./gcc/stringpool.c 567176141b ./gcc/sys-protos.h --- 3424,3430 ---- 332547863b ./gcc/ssa.h 2395322097b ./gcc/stab.def 471587796b ./gcc/stack.h ! 2351196198b ./gcc/stmt.c 2592810543b ./gcc/stor-layout.c 3515875777b ./gcc/stringpool.c 567176141b ./gcc/sys-protos.h *************** *** 3430,3436 **** 482558466b ./gcc/sys-types.h 293723253b ./gcc/target-def.h 4078089769b ./gcc/target.h ! 4242319562b ./gcc/testsuite/ChangeLog 1101480727b ./gcc/testsuite/config/default.exp 3657217366b ./gcc/testsuite/consistency.vlad/layout/a-char.c 2814769741b ./gcc/testsuite/consistency.vlad/layout/a-double.c --- 3432,3438 ---- 482558466b ./gcc/sys-types.h 293723253b ./gcc/target-def.h 4078089769b ./gcc/target.h ! 1391688077b ./gcc/testsuite/ChangeLog 1101480727b ./gcc/testsuite/config/default.exp 3657217366b ./gcc/testsuite/consistency.vlad/layout/a-char.c 2814769741b ./gcc/testsuite/consistency.vlad/layout/a-double.c *************** *** 5413,5418 **** --- 5415,5425 ---- 168620187b ./gcc/testsuite/gcc.c-torture/compile/20020701-1.c 1564612166b ./gcc/testsuite/gcc.c-torture/compile/20020710-1.c 737897185b ./gcc/testsuite/gcc.c-torture/compile/20020715-1.c + 4042098602b ./gcc/testsuite/gcc.c-torture/compile/20020926-1.c + 337401938b ./gcc/testsuite/gcc.c-torture/compile/20020927-1.c + 1009786556b ./gcc/testsuite/gcc.c-torture/compile/20021007-1.c + 778329230b ./gcc/testsuite/gcc.c-torture/compile/20021015-1.c + 25981859b ./gcc/testsuite/gcc.c-torture/compile/20021015-2.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 *************** *** 5705,5710 **** --- 5712,5718 ---- 709334018b ./gcc/testsuite/gcc.c-torture/compile/labels-3.x 1060389673b ./gcc/testsuite/gcc.c-torture/compile/packed-1.c 69389766b ./gcc/testsuite/gcc.c-torture/compile/structs.c + 2677779184b ./gcc/testsuite/gcc.c-torture/compile/trunctfdf.c 3723113555b ./gcc/testsuite/gcc.c-torture/compile/widechar-1.c 2985433108b ./gcc/testsuite/gcc.c-torture/compile/zero-strct-1.c 1530761060b ./gcc/testsuite/gcc.c-torture/execute/20000112-1.c *************** *** 5885,5890 **** --- 5893,5902 ---- 2304661446b ./gcc/testsuite/gcc.c-torture/execute/20020615-1.c 1625459055b ./gcc/testsuite/gcc.c-torture/execute/20020619-1.c 2876236122b ./gcc/testsuite/gcc.c-torture/execute/20020716-1.c + 492121497b ./gcc/testsuite/gcc.c-torture/execute/20020904-1.c + 1275043517b ./gcc/testsuite/gcc.c-torture/execute/20021015-1.c + 2849369814b ./gcc/testsuite/gcc.c-torture/execute/20021024-1.c + 3361882342b ./gcc/testsuite/gcc.c-torture/execute/20021111-1.c 37158978b ./gcc/testsuite/gcc.c-torture/execute/900409-1.c 1241514475b ./gcc/testsuite/gcc.c-torture/execute/920202-1.c 651529975b ./gcc/testsuite/gcc.c-torture/execute/920302-1.c *************** *** 6242,6247 **** --- 6254,6260 ---- 1886321368b ./gcc/testsuite/gcc.c-torture/execute/enum-1.c 3916720934b ./gcc/testsuite/gcc.c-torture/execute/enum-2.c 2211348141b ./gcc/testsuite/gcc.c-torture/execute/execute.exp + 1911697643b ./gcc/testsuite/gcc.c-torture/execute/extzvsi.c 155906334b ./gcc/testsuite/gcc.c-torture/execute/func-ptr-1.c 1157816092b ./gcc/testsuite/gcc.c-torture/execute/gofast.c 3099798770b ./gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c *************** *** 6265,6270 **** --- 6278,6284 ---- 4017678214b ./gcc/testsuite/gcc.c-torture/execute/ieee/minuszero.c 3545392440b ./gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.c 2290856575b ./gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.x + 3203549249b ./gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c 545426428b ./gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c 2631912054b ./gcc/testsuite/gcc.c-torture/execute/ieee/rbug.x 287394580b ./gcc/testsuite/gcc.c-torture/execute/index-1.c *************** *** 6274,6279 **** --- 6288,6295 ---- 3284814162b ./gcc/testsuite/gcc.c-torture/execute/loop-10.c 2766603756b ./gcc/testsuite/gcc.c-torture/execute/loop-11.c 3036735737b ./gcc/testsuite/gcc.c-torture/execute/loop-12.c + 2537268960b ./gcc/testsuite/gcc.c-torture/execute/loop-14.c + 995264748b ./gcc/testsuite/gcc.c-torture/execute/loop-15.c 2701191371b ./gcc/testsuite/gcc.c-torture/execute/loop-1.c 3443893179b ./gcc/testsuite/gcc.c-torture/execute/loop-2b.c 869002341b ./gcc/testsuite/gcc.c-torture/execute/loop-2.c *************** *** 6313,6318 **** --- 6329,6335 ---- 146053249b ./gcc/testsuite/gcc.c-torture/execute/regstack-1.c 1827676873b ./gcc/testsuite/gcc.c-torture/execute/scope-1.c 990025742b ./gcc/testsuite/gcc.c-torture/execute/scope-2.c + 3788353048b ./gcc/testsuite/gcc.c-torture/execute/shiftdi.c 75800580b ./gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c 2726881848b ./gcc/testsuite/gcc.c-torture/execute/stdio-opt-2.c 2215607685b ./gcc/testsuite/gcc.c-torture/execute/stdio-opt-3.c *************** *** 6749,6754 **** --- 6766,6772 ---- 1463174796b ./gcc/testsuite/gcc.dg/20020527-1.c 2086765142b ./gcc/testsuite/gcc.dg/20020530-1.c 1518490714b ./gcc/testsuite/gcc.dg/20020616-1.c + 344810811b ./gcc/testsuite/gcc.dg/20021014-1.c 1577979025b ./gcc/testsuite/gcc.dg/920413-1.c 2176221389b ./gcc/testsuite/gcc.dg/940409-1.c 1567764883b ./gcc/testsuite/gcc.dg/940510-1.c *************** *** 6922,6927 **** --- 6940,6946 ---- 3176910360b ./gcc/testsuite/gcc.dg/cpp/20000628-1.c 302522843b ./gcc/testsuite/gcc.dg/cpp/20000628-1.h 3939185973b ./gcc/testsuite/gcc.dg/cpp/20000725-1.c + 1092019739b ./gcc/testsuite/gcc.dg/cpp/20020927-1.c 3918751425b ./gcc/testsuite/gcc.dg/cpp/assembl2.S 2829543114b ./gcc/testsuite/gcc.dg/cpp/assembler.S 2692554582b ./gcc/testsuite/gcc.dg/cpp/assert1.c *************** *** 7055,7060 **** --- 7074,7081 ---- 3534493797b ./gcc/testsuite/gcc.dg/cpp/_Pragma1.c 2473416313b ./gcc/testsuite/gcc.dg/cpp/pragma-2.c 4186091043b ./gcc/testsuite/gcc.dg/cpp/_Pragma2.c + 1230813557b ./gcc/testsuite/gcc.dg/cpp/_Pragma3.c + 3384939096b ./gcc/testsuite/gcc.dg/cpp/_Pragma4.c 1107840471b ./gcc/testsuite/gcc.dg/cpp/redef1.c 1601641321b ./gcc/testsuite/gcc.dg/cpp/redef2.c 2020720031b ./gcc/testsuite/gcc.dg/cpp/skipping2.c *************** *** 7096,7101 **** --- 7117,7124 ---- 1052162081b ./gcc/testsuite/gcc.dg/cpp/undef2.c 1278828881b ./gcc/testsuite/gcc.dg/cpp/vararg1.c 270851301b ./gcc/testsuite/gcc.dg/cpp/vararg2.c + 203701001b ./gcc/testsuite/gcc.dg/cpp/vararg3.c + 2222858341b ./gcc/testsuite/gcc.dg/cpp/vararg4.c 3684840524b ./gcc/testsuite/gcc.dg/cpp/wchar-1.c 2112571638b ./gcc/testsuite/gcc.dg/cpp/widestr1.c 1685485063b ./gcc/testsuite/gcc.dg/cpp/Wtrigraphs.c *************** *** 7220,7226 **** 2161867266b ./gcc/testsuite/gcc.dg/noncompile/920616-2.c 1449844754b ./gcc/testsuite/gcc.dg/noncompile/920721-2.c 2834384944b ./gcc/testsuite/gcc.dg/noncompile/920824-1.c ! 3021076947b ./gcc/testsuite/gcc.dg/noncompile/920923-1.c 3162370830b ./gcc/testsuite/gcc.dg/noncompile/921102-1.c 2258888666b ./gcc/testsuite/gcc.dg/noncompile/921116-1.c 4097035630b ./gcc/testsuite/gcc.dg/noncompile/930301-1.c --- 7243,7249 ---- 2161867266b ./gcc/testsuite/gcc.dg/noncompile/920616-2.c 1449844754b ./gcc/testsuite/gcc.dg/noncompile/920721-2.c 2834384944b ./gcc/testsuite/gcc.dg/noncompile/920824-1.c ! 3955955814b ./gcc/testsuite/gcc.dg/noncompile/920923-1.c 3162370830b ./gcc/testsuite/gcc.dg/noncompile/921102-1.c 2258888666b ./gcc/testsuite/gcc.dg/noncompile/921116-1.c 4097035630b ./gcc/testsuite/gcc.dg/noncompile/930301-1.c *************** *** 7289,7294 **** --- 7312,7320 ---- 1932500816b ./gcc/testsuite/gcc.dg/struct-ret-2.c 548999932b ./gcc/testsuite/gcc.dg/switch-1.c 1141366394b ./gcc/testsuite/gcc.dg/trunc-1.c + 1890682509b ./gcc/testsuite/gcc.dg/typedef-init.c + 1892637986b ./gcc/testsuite/gcc.dg/typeof-1.c + 4017319276b ./gcc/testsuite/gcc.dg/typeof-2.c 1860858242b ./gcc/testsuite/gcc.dg/ultrasp1.c 789972216b ./gcc/testsuite/gcc.dg/ultrasp2.c 2708772692b ./gcc/testsuite/gcc.dg/ultrasp3.c *************** *** 7308,7315 **** 865910481b ./gcc/testsuite/gcc.dg/unused-3.c 3706472995b ./gcc/testsuite/gcc.dg/va-arg-1.c 2932877249b ./gcc/testsuite/gcc.dg/verbose-asm.c 2427295047b ./gcc/testsuite/gcc.dg/vla-init-1.c ! 3993664995b ./gcc/testsuite/gcc.dg/wchar_t-1.c 943771070b ./gcc/testsuite/gcc.dg/Wconversion.c 2603701000b ./gcc/testsuite/gcc.dg/weak-1.c 2107795305b ./gcc/testsuite/gcc.dg/weak-2.c --- 7334,7342 ---- 865910481b ./gcc/testsuite/gcc.dg/unused-3.c 3706472995b ./gcc/testsuite/gcc.dg/va-arg-1.c 2932877249b ./gcc/testsuite/gcc.dg/verbose-asm.c + 3017845162b ./gcc/testsuite/gcc.dg/vla-2.c 2427295047b ./gcc/testsuite/gcc.dg/vla-init-1.c ! 2228363679b ./gcc/testsuite/gcc.dg/wchar_t-1.c 943771070b ./gcc/testsuite/gcc.dg/Wconversion.c 2603701000b ./gcc/testsuite/gcc.dg/weak-1.c 2107795305b ./gcc/testsuite/gcc.dg/weak-2.c *************** *** 7319,7325 **** 1022686552b ./gcc/testsuite/gcc.dg/weak-6.c 789089149b ./gcc/testsuite/gcc.dg/weak-7.c 2849791540b ./gcc/testsuite/gcc.dg/weak-9.c ! 4149249905b ./gcc/testsuite/gcc.dg/wint_t-1.c 3364645726b ./gcc/testsuite/gcc.dg/Wlarger-than.c 3791055151b ./gcc/testsuite/gcc.dg/Wparentheses-1.c 3316229121b ./gcc/testsuite/gcc.dg/Wreturn-type2.c --- 7346,7352 ---- 1022686552b ./gcc/testsuite/gcc.dg/weak-6.c 789089149b ./gcc/testsuite/gcc.dg/weak-7.c 2849791540b ./gcc/testsuite/gcc.dg/weak-9.c ! 455748560b ./gcc/testsuite/gcc.dg/wint_t-1.c 3364645726b ./gcc/testsuite/gcc.dg/Wlarger-than.c 3791055151b ./gcc/testsuite/gcc.dg/Wparentheses-1.c 3316229121b ./gcc/testsuite/gcc.dg/Wreturn-type2.c *************** *** 7398,7407 **** --- 7425,7438 ---- 885716516b ./gcc/testsuite/g++.dg/abi/bitfield1.C 479436735b ./gcc/testsuite/g++.dg/abi/bitfield2.C 3225280346b ./gcc/testsuite/g++.dg/abi/bitfield3.C + 1735502164b ./gcc/testsuite/g++.dg/abi/bitfield5.C 257517025b ./gcc/testsuite/g++.dg/abi/empty4.C 2703592525b ./gcc/testsuite/g++.dg/abi/enum1.C 3235702061b ./gcc/testsuite/g++.dg/abi/layout1.C 4006829604b ./gcc/testsuite/g++.dg/abi/layout2.C + 2689331463b ./gcc/testsuite/g++.dg/abi/mangle11.C + 356153643b ./gcc/testsuite/g++.dg/abi/mangle14.C + 238964482b ./gcc/testsuite/g++.dg/abi/mangle17.C 4166781498b ./gcc/testsuite/g++.dg/abi/mangle1.C 4182318030b ./gcc/testsuite/g++.dg/abi/mangle2.C 1755377648b ./gcc/testsuite/g++.dg/abi/mangle3.C *************** *** 7412,7417 **** --- 7443,7449 ---- 638258652b ./gcc/testsuite/g++.dg/abi/mangle8.C 1969970486b ./gcc/testsuite/g++.dg/abi/offsetof.C 2141080121b ./gcc/testsuite/g++.dg/abi/rtti1.C + 1053392201b ./gcc/testsuite/g++.dg/abi/vbase10.C 20126271b ./gcc/testsuite/g++.dg/abi/vbase1.C 1286609512b ./gcc/testsuite/g++.dg/abi/vbase8-10.C 3227029100b ./gcc/testsuite/g++.dg/abi/vbase8-21.C *************** *** 7442,7447 **** --- 7474,7480 ---- 2213107508b ./gcc/testsuite/g++.dg/eh/template1.C 3379396295b ./gcc/testsuite/g++.dg/eh/template2.C 1789254796b ./gcc/testsuite/g++.dg/eh/unexpected1.C + 880147168b ./gcc/testsuite/g++.dg/expr/cond1.C 10818138b ./gcc/testsuite/g++.dg/ext/align1.C 4214519942b ./gcc/testsuite/g++.dg/ext/attrib1.C 2242814507b ./gcc/testsuite/g++.dg/ext/attrib2.C *************** *** 7456,7481 **** 631460058b ./gcc/testsuite/g++.dg/ext/instantiate3.C 433892339b ./gcc/testsuite/g++.dg/ext/lvalue1.C 1765466377b ./gcc/testsuite/g++.dg/ext/member-attr.C 3028501104b ./gcc/testsuite/g++.dg/ext/typeof1.C 2576905511b ./gcc/testsuite/g++.dg/inherit/access1.C 3833575012b ./gcc/testsuite/g++.dg/inherit/access2.C 3439912284b ./gcc/testsuite/g++.dg/inherit/base1.C 2309234518b ./gcc/testsuite/g++.dg/inherit/namespace-as-base.C 4167951109b ./gcc/testsuite/g++.dg/inherit/null1.C 3799679971b ./gcc/testsuite/g++.dg/inherit/using1.C 3967911027b ./gcc/testsuite/g++.dg/init/array1.C 3157994593b ./gcc/testsuite/g++.dg/init/array2.C 2628461993b ./gcc/testsuite/g++.dg/init/array4.C 267149531b ./gcc/testsuite/g++.dg/init/array5.C 486682064b ./gcc/testsuite/g++.dg/init/copy1.C 1741245578b ./gcc/testsuite/g++.dg/init/dtor1.C 486760656b ./gcc/testsuite/g++.dg/init/elide1.C 2797496870b ./gcc/testsuite/g++.dg/init/empty1.C 2640181867b ./gcc/testsuite/g++.dg/init/init-ref1.C 3275947242b ./gcc/testsuite/g++.dg/init/init-ref2.C 1678560039b ./gcc/testsuite/g++.dg/init/new1.C 4033502091b ./gcc/testsuite/g++.dg/init/new2.C ! 1015198831b ./gcc/testsuite/g++.dg/init/pm1.C 684033142b ./gcc/testsuite/g++.dg/lookup/struct1.C 3358174935b ./gcc/testsuite/g++.dg/lookup/using2.C 3384907788b ./gcc/testsuite/g++.dg/lookup/using.C --- 7489,7523 ---- 631460058b ./gcc/testsuite/g++.dg/ext/instantiate3.C 433892339b ./gcc/testsuite/g++.dg/ext/lvalue1.C 1765466377b ./gcc/testsuite/g++.dg/ext/member-attr.C + 714299152b ./gcc/testsuite/g++.dg/ext/typedef-init.C 3028501104b ./gcc/testsuite/g++.dg/ext/typeof1.C + 2139267109b ./gcc/testsuite/g++.dg/ext/typeof2.C + 3384117993b ./gcc/testsuite/g++.dg/ext/vla1.C + 4261072225b ./gcc/testsuite/g++.dg/ext/vlm1.C + 546216042b ./gcc/testsuite/g++.dg/ext/vlm2.C 2576905511b ./gcc/testsuite/g++.dg/inherit/access1.C 3833575012b ./gcc/testsuite/g++.dg/inherit/access2.C 3439912284b ./gcc/testsuite/g++.dg/inherit/base1.C 2309234518b ./gcc/testsuite/g++.dg/inherit/namespace-as-base.C 4167951109b ./gcc/testsuite/g++.dg/inherit/null1.C 3799679971b ./gcc/testsuite/g++.dg/inherit/using1.C + 2391219706b ./gcc/testsuite/g++.dg/inherit/using3.C 3967911027b ./gcc/testsuite/g++.dg/init/array1.C 3157994593b ./gcc/testsuite/g++.dg/init/array2.C 2628461993b ./gcc/testsuite/g++.dg/init/array4.C 267149531b ./gcc/testsuite/g++.dg/init/array5.C + 3220934948b ./gcc/testsuite/g++.dg/init/array7.C 486682064b ./gcc/testsuite/g++.dg/init/copy1.C 1741245578b ./gcc/testsuite/g++.dg/init/dtor1.C + 356489409b ./gcc/testsuite/g++.dg/init/dtor2.C 486760656b ./gcc/testsuite/g++.dg/init/elide1.C 2797496870b ./gcc/testsuite/g++.dg/init/empty1.C 2640181867b ./gcc/testsuite/g++.dg/init/init-ref1.C 3275947242b ./gcc/testsuite/g++.dg/init/init-ref2.C 1678560039b ./gcc/testsuite/g++.dg/init/new1.C 4033502091b ./gcc/testsuite/g++.dg/init/new2.C ! 1385694165b ./gcc/testsuite/g++.dg/init/pm1.C ! 766167426b ./gcc/testsuite/g++.dg/lookup/pretty1.C 684033142b ./gcc/testsuite/g++.dg/lookup/struct1.C 3358174935b ./gcc/testsuite/g++.dg/lookup/using2.C 3384907788b ./gcc/testsuite/g++.dg/lookup/using.C *************** *** 7487,7498 **** --- 7529,7542 ---- 3120356664b ./gcc/testsuite/g++.dg/opt/conj1.C 4054451892b ./gcc/testsuite/g++.dg/opt/conj2.C 2033783153b ./gcc/testsuite/g++.dg/opt/const1.C + 975231214b ./gcc/testsuite/g++.dg/opt/const2.C 2113737922b ./gcc/testsuite/g++.dg/opt/cse1.C 1501006084b ./gcc/testsuite/g++.dg/opt/cse2.C 1685294627b ./gcc/testsuite/g++.dg/opt/dtor1.C 3770486737b ./gcc/testsuite/g++.dg/opt/inline1.C 2869206713b ./gcc/testsuite/g++.dg/opt/inline2.C 3194356521b ./gcc/testsuite/g++.dg/opt/inline3.C + 373643534b ./gcc/testsuite/g++.dg/opt/local1.C 3146403914b ./gcc/testsuite/g++.dg/opt/longbranch1.C 2026702440b ./gcc/testsuite/g++.dg/opt/mmx1.C 2857034604b ./gcc/testsuite/g++.dg/opt/nrv1.C *************** *** 7500,7505 **** --- 7544,7550 ---- 442892442b ./gcc/testsuite/g++.dg/opt/preinc1.C 1496969096b ./gcc/testsuite/g++.dg/opt/ptrintsum1.C 571185401b ./gcc/testsuite/g++.dg/opt/reg-stack.C + 1557651694b ./gcc/testsuite/g++.dg/opt/reload1.C 1124740865b ./gcc/testsuite/g++.dg/opt/static1.C 684782459b ./gcc/testsuite/g++.dg/opt/static2.C 4154721541b ./gcc/testsuite/g++.dg/opt/thunk1.C *************** *** 7516,7521 **** --- 7561,7567 ---- 4045861590b ./gcc/testsuite/g++.dg/other/const1.C 109747091b ./gcc/testsuite/g++.dg/other/const2.C 3254620469b ./gcc/testsuite/g++.dg/other/copy1.C + 4162972212b ./gcc/testsuite/g++.dg/other/cxa-atexit1.C 1287592684b ./gcc/testsuite/g++.dg/other/deprecated.C 1127806654b ./gcc/testsuite/g++.dg/other/enum1.C 3062339491b ./gcc/testsuite/g++.dg/other/error1.C *************** *** 7538,7553 **** --- 7584,7605 ---- 492684594b ./gcc/testsuite/g++.dg/overload/builtin1.C 3775778165b ./gcc/testsuite/g++.dg/overload/cond1.C 1110519878b ./gcc/testsuite/g++.dg/overload/error1.C + 3780752279b ./gcc/testsuite/g++.dg/overload/member2.C 3588815363b ./gcc/testsuite/g++.dg/overload/pmf1.C 2166944080b ./gcc/testsuite/g++.dg/parse/angle-bracket.C 3621016079b ./gcc/testsuite/g++.dg/parse/attr1.C + 2532827057b ./gcc/testsuite/g++.dg/parse/decl-specifier-1.C + 3454082090b ./gcc/testsuite/g++.dg/parse/friend1.C + 849996881b ./gcc/testsuite/g++.dg/parse/inline1.C 1601717576b ./gcc/testsuite/g++.dg/parse/named_ops.C 4289007099b ./gcc/testsuite/g++.dg/parse/saved1.C 1402579554b ./gcc/testsuite/g++.dg/parse/stmtexpr1.C 2804352074b ./gcc/testsuite/g++.dg/parse/stmtexpr2.C + 254645785b ./gcc/testsuite/g++.dg/parse/stmtexpr3.C 805014732b ./gcc/testsuite/g++.dg/parse/typedef1.C 739732730b ./gcc/testsuite/g++.dg/README 522523166b ./gcc/testsuite/g++.dg/ref1.C + 438642550b ./gcc/testsuite/g++.dg/rtti/crash1.C 1942107252b ./gcc/testsuite/g++.dg/sizeof1.C 370035332b ./gcc/testsuite/g++.dg/special/conpr-1.C 1217683257b ./gcc/testsuite/g++.dg/special/conpr-2a.C *************** *** 7558,7563 **** --- 7610,7617 ---- 4265992428b ./gcc/testsuite/g++.dg/special/ecos.exp 1952533588b ./gcc/testsuite/g++.dg/special/initp1.C 3059417569b ./gcc/testsuite/g++.dg/template/access1.C + 826296459b ./gcc/testsuite/g++.dg/template/alignof1.C + 783556741b ./gcc/testsuite/g++.dg/template/complit1.C 2083292273b ./gcc/testsuite/g++.dg/template/copy1.C 1072669517b ./gcc/testsuite/g++.dg/template/crash1.C 3504290323b ./gcc/testsuite/g++.dg/template/ctor1.C *************** *** 7573,7578 **** --- 7627,7633 ---- 2182099475b ./gcc/testsuite/g++.dg/template/instantiate1.C 416617778b ./gcc/testsuite/g++.dg/template/local1.C 1449269044b ./gcc/testsuite/g++.dg/template/member.C + 2815776671b ./gcc/testsuite/g++.dg/template/meminit1.C 2073430043b ./gcc/testsuite/g++.dg/template/ntp1.C 188396250b ./gcc/testsuite/g++.dg/template/partial-specialization.C 601175114b ./gcc/testsuite/g++.dg/template/ptrmem1.C *************** *** 7599,7604 **** --- 7654,7660 ---- 1704860378b ./gcc/testsuite/g++.dg/template/qualttp8.C 700938418b ./gcc/testsuite/g++.dg/template/qualttp9.C 4163290563b ./gcc/testsuite/g++.dg/template/recurse.C + 1960444878b ./gcc/testsuite/g++.dg/template/ref1.C 1028564434b ./gcc/testsuite/g++.dg/template/sizeof1.C 2914549620b ./gcc/testsuite/g++.dg/template/spec1.C 2378483146b ./gcc/testsuite/g++.dg/template/spec2.C *************** *** 7610,7618 **** --- 7666,7677 ---- 1430073082b ./gcc/testsuite/g++.dg/template/typedef1.C 3583659165b ./gcc/testsuite/g++.dg/template/typename1.C 566916814b ./gcc/testsuite/g++.dg/template/typename2.C + 471145990b ./gcc/testsuite/g++.dg/template/typename3.C + 1606799647b ./gcc/testsuite/g++.dg/template/typename4.C 3595370582b ./gcc/testsuite/g++.dg/template/unify1.C 3639225580b ./gcc/testsuite/g++.dg/template/unify2.C 4266445185b ./gcc/testsuite/g++.dg/template/unify3.C + 509779393b ./gcc/testsuite/g++.dg/template/union1.C 3718685372b ./gcc/testsuite/g++.dg/template/vtable1.C 2244072137b ./gcc/testsuite/g++.dg/warn/effc1.C 1455133800b ./gcc/testsuite/g++.dg/warn/format1.C *************** *** 9434,9440 **** 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 ! 2220380075b ./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 --- 9493,9499 ---- 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 ! 33710489b ./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 *************** *** 10406,10412 **** 761783865b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp61.C 1690671324b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp62.C 3766969739b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp63.C ! 2177723713b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C 2737484332b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp65.C 733179226b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp66.C 1942260890b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp67.C --- 10465,10471 ---- 761783865b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp61.C 1690671324b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp62.C 3766969739b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp63.C ! 3356487504b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C 2737484332b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp65.C 733179226b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp66.C 1942260890b ./gcc/testsuite/g++.old-deja/g++.pt/memtemp67.C *************** *** 10913,10919 **** 766192419b ./gcc/testsuite/lib/profopt.exp 1029251629b ./gcc/testsuite/lib/prune.exp 2428636490b ./gcc/testsuite/lib/scanasm.exp ! 743118127b ./gcc/testsuite/lib/target-supports.exp 3665869615b ./gcc/testsuite/objc/compile/20011211-1.m 1806367206b ./gcc/testsuite/objc/compile/compile.exp 1369080733b ./gcc/testsuite/objc.dg/alias.m --- 10972,10978 ---- 766192419b ./gcc/testsuite/lib/profopt.exp 1029251629b ./gcc/testsuite/lib/prune.exp 2428636490b ./gcc/testsuite/lib/scanasm.exp ! 3463101165b ./gcc/testsuite/lib/target-supports.exp 3665869615b ./gcc/testsuite/objc/compile/20011211-1.m 1806367206b ./gcc/testsuite/objc/compile/compile.exp 1369080733b ./gcc/testsuite/objc.dg/alias.m *************** *** 11028,11049 **** 2559007517b ./gcc/timevar.def 2115869626b ./gcc/timevar.h 2335446483b ./gcc/tlink.c ! 4150917512b ./gcc/toplev.c 1100253771b ./gcc/toplev.h 2851581967b ./gcc/tradcif.c 840149782b ./gcc/tradcif.y ! 2891356052b ./gcc/tradcpp.c 133942480b ./gcc/tradcpp.h ! 816276340b ./gcc/tree.c 1914541060b ./gcc/tree.def 1565760610b ./gcc/tree-dump.c 177026127b ./gcc/tree-dump.h ! 3303657849b ./gcc/tree.h ! 209817651b ./gcc/tree-inline.c 2000795530b ./gcc/tree-inline.h 2106315745b ./gcc/tsystem.h 4139263293b ./gcc/typeclass.h ! 539416829b ./gcc/unroll.c 3994883910b ./gcc/unwind-dw2.c 939184029b ./gcc/unwind-dw2-fde.c 2451297709b ./gcc/unwind-dw2-fde-glibc.c --- 11087,11108 ---- 2559007517b ./gcc/timevar.def 2115869626b ./gcc/timevar.h 2335446483b ./gcc/tlink.c ! 163649448b ./gcc/toplev.c 1100253771b ./gcc/toplev.h 2851581967b ./gcc/tradcif.c 840149782b ./gcc/tradcif.y ! 585812029b ./gcc/tradcpp.c 133942480b ./gcc/tradcpp.h ! 4051453607b ./gcc/tree.c 1914541060b ./gcc/tree.def 1565760610b ./gcc/tree-dump.c 177026127b ./gcc/tree-dump.h ! 3581573816b ./gcc/tree.h ! 1491742054b ./gcc/tree-inline.c 2000795530b ./gcc/tree-inline.h 2106315745b ./gcc/tsystem.h 4139263293b ./gcc/typeclass.h ! 2642343552b ./gcc/unroll.c 3994883910b ./gcc/unwind-dw2.c 939184029b ./gcc/unwind-dw2-fde.c 2451297709b ./gcc/unwind-dw2-fde-glibc.c *************** *** 11052,11077 **** 1788741054b ./gcc/unwind.inc 1733200042b ./gcc/unwind-pe.h 3015631845b ./gcc/unwind-sjlj.c ! 3691961273b ./gcc/varasm.c 1377429075b ./gcc/varray.c 251576980b ./gcc/varray.h ! 1532516550b ./gcc/version.c 835289284b ./gcc/version.h 1602668013b ./gcc/vmsdbg.h 4159431942b ./gcc/vmsdbgout.c 3414725237b ./gcc/xcoffout.c 241048359b ./gcc/xcoffout.h ! 156832288b ./GNATS ! 2219513221b ./gnats.html 218913669b ./include/ansidecl.h ! 2510440260b ./include/ChangeLog 2171125041b ./include/COPYING 3472518673b ./include/demangle.h 524172850b ./include/dyn-string.h 3966992879b ./include/fibheap.h 3882244111b ./include/floatformat.h 1934715875b ./include/fnmatch.h ! 2129795953b ./include/getopt.h 3613614297b ./include/hashtab.h 1889274764b ./include/libiberty.h 2315750201b ./include/md5.h --- 11111,11136 ---- 1788741054b ./gcc/unwind.inc 1733200042b ./gcc/unwind-pe.h 3015631845b ./gcc/unwind-sjlj.c ! 1202449654b ./gcc/varasm.c 1377429075b ./gcc/varray.c 251576980b ./gcc/varray.h ! 3093622349b ./gcc/version.c 835289284b ./gcc/version.h 1602668013b ./gcc/vmsdbg.h 4159431942b ./gcc/vmsdbgout.c 3414725237b ./gcc/xcoffout.c 241048359b ./gcc/xcoffout.h ! 259673838b ./GNATS ! 3427622163b ./gnats.html 218913669b ./include/ansidecl.h ! 3767303661b ./include/ChangeLog 2171125041b ./include/COPYING 3472518673b ./include/demangle.h 524172850b ./include/dyn-string.h 3966992879b ./include/fibheap.h 3882244111b ./include/floatformat.h 1934715875b ./include/fnmatch.h ! 1069433913b ./include/getopt.h 3613614297b ./include/hashtab.h 1889274764b ./include/libiberty.h 2315750201b ./include/md5.h *************** *** 11085,11104 **** 1386762946b ./include/ternary.h 1261882580b ./include/xregex2.h 1151436348b ./include/xregex.h ! 819645392b ./INSTALL/binaries.html ! 755060523b ./INSTALL/build.html ! 3316367722b ./INSTALL/configure.html ! 1715600552b ./INSTALL/download.html ! 1421457932b ./INSTALL/finalinstall.html ! 2173681035b ./INSTALL/gfdl.html ! 830158416b ./INSTALL/index.html ! 353693005b ./INSTALL/old.html 2229468985b ./INSTALL/README 656627656b ./install-sh ! 3928060040b ./INSTALL/specific.html ! 1066097400b ./INSTALL/test.html 1714952917b ./libf2c/aclocal.m4 ! 3773218698b ./libf2c/ChangeLog 1973941211b ./libf2c/changes.netlib 3975721411b ./libf2c/configure 1477197116b ./libf2c/configure.in --- 11144,11163 ---- 1386762946b ./include/ternary.h 1261882580b ./include/xregex2.h 1151436348b ./include/xregex.h ! 1176932515b ./INSTALL/binaries.html ! 1486978407b ./INSTALL/build.html ! 1718198324b ./INSTALL/configure.html ! 3350091909b ./INSTALL/download.html ! 3420202342b ./INSTALL/finalinstall.html ! 2848899000b ./INSTALL/gfdl.html ! 374079968b ./INSTALL/index.html ! 3936331425b ./INSTALL/old.html 2229468985b ./INSTALL/README 656627656b ./install-sh ! 2979632843b ./INSTALL/specific.html ! 2275412368b ./INSTALL/test.html 1714952917b ./libf2c/aclocal.m4 ! 4143385168b ./libf2c/ChangeLog 1973941211b ./libf2c/changes.netlib 3975721411b ./libf2c/configure 1477197116b ./libf2c/configure.in *************** *** 11231,11237 **** 2593705873b ./libf2c/libF77/s_rnge.c 3862265148b ./libf2c/libF77/s_stop.c 113341864b ./libf2c/libF77/system_.c ! 1072308734b ./libf2c/libF77/Version.c 1937893648b ./libf2c/libF77/z_abs.c 2431309812b ./libf2c/libF77/z_cos.c 4069203393b ./libf2c/libF77/z_div.c --- 11290,11296 ---- 2593705873b ./libf2c/libF77/s_rnge.c 3862265148b ./libf2c/libF77/s_stop.c 113341864b ./libf2c/libF77/system_.c ! 2089507993b ./libf2c/libF77/Version.c 1937893648b ./libf2c/libF77/z_abs.c 2431309812b ./libf2c/libF77/z_cos.c 4069203393b ./libf2c/libF77/z_div.c *************** *** 11278,11284 **** 4028809578b ./libf2c/libI77/typesize.c 2487538082b ./libf2c/libI77/uio.c 1670879675b ./libf2c/libI77/util.c ! 3102519253b ./libf2c/libI77/Version.c 3746777128b ./libf2c/libI77/wref.c 1966568786b ./libf2c/libI77/wrtfmt.c 3540661106b ./libf2c/libI77/wsfe.c --- 11337,11343 ---- 4028809578b ./libf2c/libI77/typesize.c 2487538082b ./libf2c/libI77/uio.c 1670879675b ./libf2c/libI77/util.c ! 3091360080b ./libf2c/libI77/Version.c 3746777128b ./libf2c/libI77/wref.c 1966568786b ./libf2c/libI77/wrtfmt.c 3540661106b ./libf2c/libI77/wsfe.c *************** *** 11346,11355 **** 791266987b ./libf2c/libU77/u77-test.f 387772730b ./libf2c/libU77/umask_.c 1230596654b ./libf2c/libU77/unlink_.c ! 2241614521b ./libf2c/libU77/Version.c 2702299573b ./libf2c/libU77/vxtidate_.c 3987376609b ./libf2c/libU77/vxttime_.c ! 2003108059b ./libf2c/Makefile.in 1384146782b ./libf2c/permission.netlib 3111321221b ./libf2c/README 3513813969b ./libf2c/readme.netlib --- 11405,11414 ---- 791266987b ./libf2c/libU77/u77-test.f 387772730b ./libf2c/libU77/umask_.c 1230596654b ./libf2c/libU77/unlink_.c ! 4065977549b ./libf2c/libU77/Version.c 2702299573b ./libf2c/libU77/vxtidate_.c 3987376609b ./libf2c/libU77/vxttime_.c ! 3277779159b ./libf2c/Makefile.in 1384146782b ./libf2c/permission.netlib 3111321221b ./libf2c/README 3513813969b ./libf2c/readme.netlib *************** *** 11357,11363 **** 1812706554b ./libffi/acconfig.h 2067133813b ./libffi/acinclude.m4 724319761b ./libffi/aclocal.m4 ! 205515924b ./libffi/ChangeLog 2412263940b ./libffi/ChangeLog.libgcj 1481682558b ./libffi/ChangeLog.v1 3495452477b ./libffi/configure --- 11416,11422 ---- 1812706554b ./libffi/acconfig.h 2067133813b ./libffi/acinclude.m4 724319761b ./libffi/aclocal.m4 ! 1801242156b ./libffi/ChangeLog 2412263940b ./libffi/ChangeLog.libgcj 1481682558b ./libffi/ChangeLog.v1 3495452477b ./libffi/configure *************** *** 11369,11376 **** 1175058075b ./libffi/include/Makefile.am 3624063070b ./libffi/include/Makefile.in 2593181117b ./libffi/LICENSE ! 3803183793b ./libffi/Makefile.am ! 4109869593b ./libffi/Makefile.in 3508322383b ./libffi/README 3852747706b ./libffi/src/alpha/ffi.c 2032396460b ./libffi/src/alpha/osf.S --- 11428,11435 ---- 1175058075b ./libffi/include/Makefile.am 3624063070b ./libffi/include/Makefile.in 2593181117b ./libffi/LICENSE ! 1657741728b ./libffi/Makefile.am ! 3338553004b ./libffi/Makefile.in 3508322383b ./libffi/README 3852747706b ./libffi/src/alpha/ffi.c 2032396460b ./libffi/src/alpha/osf.S *************** *** 11417,11423 **** 1033916047b ./libiberty/bsearch.c 2389959529b ./libiberty/bzero.c 1591293922b ./libiberty/calloc.c ! 3224199355b ./libiberty/ChangeLog 2264262326b ./libiberty/choose-temp.c 2557767520b ./libiberty/clock.c 3170582338b ./libiberty/concat.c --- 11476,11482 ---- 1033916047b ./libiberty/bsearch.c 2389959529b ./libiberty/bzero.c 1591293922b ./libiberty/calloc.c ! 1121801877b ./libiberty/ChangeLog 2264262326b ./libiberty/choose-temp.c 2557767520b ./libiberty/clock.c 3170582338b ./libiberty/concat.c *************** *** 11459,11465 **** 1676968368b ./libiberty/lbasename.c 1958824006b ./libiberty/libiberty.texi 3183084918b ./libiberty/maint-tool ! 16748852b ./libiberty/Makefile.in 3226217883b ./libiberty/makefile.vms 2495473509b ./libiberty/make-temp-file.c 3176875729b ./libiberty/md5.c --- 11518,11524 ---- 1676968368b ./libiberty/lbasename.c 1958824006b ./libiberty/libiberty.texi 3183084918b ./libiberty/maint-tool ! 661006252b ./libiberty/Makefile.in 3226217883b ./libiberty/makefile.vms 2495473509b ./libiberty/make-temp-file.c 3176875729b ./libiberty/md5.c *************** *** 11525,11531 **** 3506621156b ./libjava/aclocal.m4 3784840223b ./libjava/addr2name.awk 2317653915b ./libjava/boehm.cc ! 3130214240b ./libjava/ChangeLog 3473562392b ./libjava/ChangeLog-1999 2385951174b ./libjava/ChangeLog-2001 2118024035b ./libjava/configure --- 11584,11590 ---- 3506621156b ./libjava/aclocal.m4 3784840223b ./libjava/addr2name.awk 2317653915b ./libjava/boehm.cc ! 38702888b ./libjava/ChangeLog 3473562392b ./libjava/ChangeLog-1999 2385951174b ./libjava/ChangeLog-2001 2118024035b ./libjava/configure *************** *** 12851,12857 **** 464053222b ./libjava/libltdl/acconfig.h 1486261890b ./libjava/libltdl/acinclude.m4 2748542911b ./libjava/libltdl/aclocal.m4 ! 1384970769b ./libjava/libltdl/ChangeLog 3229611250b ./libjava/libltdl/config.h.in 3663840013b ./libjava/libltdl/configure 586017012b ./libjava/libltdl/configure.in --- 12910,12916 ---- 464053222b ./libjava/libltdl/acconfig.h 1486261890b ./libjava/libltdl/acinclude.m4 2748542911b ./libjava/libltdl/aclocal.m4 ! 1982405743b ./libjava/libltdl/ChangeLog 3229611250b ./libjava/libltdl/config.h.in 3663840013b ./libjava/libltdl/configure 586017012b ./libjava/libltdl/configure.in *************** *** 12864,12871 **** 1322928877b ./libjava/libltdl/README 216805921b ./libjava/libltdl/stamp-h.in 4225681790b ./libjava/libtool-version ! 83234188b ./libjava/Makefile.am ! 2966653638b ./libjava/Makefile.in 1775785992b ./libjava/mauve-libgcj 3598737829b ./libjava/name-finder.cc 4049677327b ./libjava/NEWS --- 12923,12930 ---- 1322928877b ./libjava/libltdl/README 216805921b ./libjava/libltdl/stamp-h.in 4225681790b ./libjava/libtool-version ! 1949592651b ./libjava/Makefile.am ! 3462890813b ./libjava/Makefile.in 1775785992b ./libjava/mauve-libgcj 3598737829b ./libjava/name-finder.cc 4049677327b ./libjava/NEWS *************** *** 12948,12954 **** 2487590179b ./libjava/sysdep/ia64/locks.h 3446737173b ./libjava/sysdep/powerpc/locks.h 2903495760b ./libjava/sysdep/sparc/locks.h ! 4193227237b ./libjava/testsuite/ChangeLog 1230501773b ./libjava/testsuite/config/default.exp 3718926011b ./libjava/testsuite/libjava.compile/abstr.java 2888415448b ./libjava/testsuite/libjava.compile/abstr.xfail --- 13007,13013 ---- 2487590179b ./libjava/sysdep/ia64/locks.h 3446737173b ./libjava/sysdep/powerpc/locks.h 2903495760b ./libjava/sysdep/sparc/locks.h ! 2428761261b ./libjava/testsuite/ChangeLog 1230501773b ./libjava/testsuite/config/default.exp 3718926011b ./libjava/testsuite/libjava.compile/abstr.java 2888415448b ./libjava/testsuite/libjava.compile/abstr.xfail *************** *** 13296,13303 **** 4294967295b ./libjava/testsuite/libjava.lang/PR56.out 832973302b ./libjava/testsuite/libjava.lang/pr83.java 987139956b ./libjava/testsuite/libjava.lang/pr83.out - 3224248635b ./libjava/testsuite/libjava.lang/Primes.java - 3056643169b ./libjava/testsuite/libjava.lang/Primes.out 1555339199b ./libjava/testsuite/libjava.lang/private_direct_read.java 2096756880b ./libjava/testsuite/libjava.lang/private_direct_read.out 901884110b ./libjava/testsuite/libjava.lang/private_direct_write.java --- 13355,13360 ---- *************** *** 13363,13369 **** 4013205125b ./libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java 1740456441b ./libjava/testsuite/libjava.mauve/mauve.exp 2293687712b ./libjava/testsuite/libjava.mauve/xfails ! 4234714160b ./libjava/testsuite/lib/libjava.exp 3806425466b ./libjava/testsuite/Makefile.am 1096421437b ./libjava/testsuite/Makefile.in 3410290178b ./libjava/THANKS --- 13420,13426 ---- 4013205125b ./libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java 1740456441b ./libjava/testsuite/libjava.mauve/mauve.exp 2293687712b ./libjava/testsuite/libjava.mauve/xfails ! 2598210176b ./libjava/testsuite/lib/libjava.exp 3806425466b ./libjava/testsuite/Makefile.am 1096421437b ./libjava/testsuite/Makefile.in 3410290178b ./libjava/THANKS *************** *** 13372,13378 **** 3459150705b ./libjava/win32-threads.cc 202134358b ./libobjc/aclocal.m4 605856870b ./libobjc/archive.c ! 171497277b ./libobjc/ChangeLog 3477231866b ./libobjc/class.c 1748737547b ./libobjc/config.h.in 3049756062b ./libobjc/configure --- 13429,13435 ---- 3459150705b ./libjava/win32-threads.cc 202134358b ./libobjc/aclocal.m4 605856870b ./libobjc/archive.c ! 3939154891b ./libobjc/ChangeLog 3477231866b ./libobjc/class.c 1748737547b ./libobjc/config.h.in 3049756062b ./libobjc/configure *************** *** 13385,13391 **** 4072125181b ./libobjc/libobjc_entry.c 4260228535b ./libobjc/linking.m 2398517524b ./libobjc/makefile.dos ! 1555626783b ./libobjc/Makefile.in 687879051b ./libobjc/misc.c 1752870170b ./libobjc/nil_method.c 638422313b ./libobjc/NXConstStr.m --- 13442,13448 ---- 4072125181b ./libobjc/libobjc_entry.c 4260228535b ./libobjc/linking.m 2398517524b ./libobjc/makefile.dos ! 3980241111b ./libobjc/Makefile.in 687879051b ./libobjc/misc.c 1752870170b ./libobjc/nil_method.c 638422313b ./libobjc/NXConstStr.m *************** *** 13425,13436 **** 60531382b ./libobjc/thr-solaris.c 2005277748b ./libobjc/thr-vxworks.c 2963027857b ./libobjc/thr-win32.c ! 1220048278b ./libstdc++-v3/acconfig.h ! 3510479713b ./libstdc++-v3/acinclude.m4 ! 1802923025b ./libstdc++-v3/aclocal.m4 ! 3206079062b ./libstdc++-v3/ChangeLog 1996982572b ./libstdc++-v3/ChangeLog-2000 3665233589b ./libstdc++-v3/ChangeLog-2001 3799164404b ./libstdc++-v3/config/cpu/alpha/bits/atomicity.h 2657854614b ./libstdc++-v3/config/cpu/alpha/bits/cpu_limits.h 2453414067b ./libstdc++-v3/config/cpu/arm/bits/atomicity.h --- 13482,13497 ---- 60531382b ./libobjc/thr-solaris.c 2005277748b ./libobjc/thr-vxworks.c 2963027857b ./libobjc/thr-win32.c ! 3752097356b ./libstdc++-v3/acconfig.h ! 4198718896b ./libstdc++-v3/acinclude.m4 ! 1909196152b ./libstdc++-v3/aclocal.m4 ! 3127052377b ./libstdc++-v3/ChangeLog 1996982572b ./libstdc++-v3/ChangeLog-2000 3665233589b ./libstdc++-v3/ChangeLog-2001 + 4214408479b ./libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt + 1077465800b ./libstdc++-v3/config/abi/extract_symvers + 1049799838b ./libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt + 3479696688b ./libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt 3799164404b ./libstdc++-v3/config/cpu/alpha/bits/atomicity.h 2657854614b ./libstdc++-v3/config/cpu/alpha/bits/cpu_limits.h 2453414067b ./libstdc++-v3/config/cpu/arm/bits/atomicity.h *************** *** 13452,13462 **** 1958944292b ./libstdc++-v3/config/cpu/powerpc/bits/cpu_limits.h 3930061484b ./libstdc++-v3/config/cpu/s390/bits/atomicity.h 2029688870b ./libstdc++-v3/config/cpu/s390/bits/cpu_limits.h ! 3637219689b ./libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h ! 1609193065b ./libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h 785222978b ./libstdc++-v3/config/cpu/x86-64/bits/atomicity.h 4180289496b ./libstdc++-v3/config/cpu/x86-64/bits/cpu_limits.h ! 3694036271b ./libstdc++-v3/config.h.in 1453199454b ./libstdc++-v3/config/io/basic_file_libio.cc 3157152478b ./libstdc++-v3/config/io/basic_file_libio.h 3725479456b ./libstdc++-v3/config/io/basic_file_stdio.cc --- 13513,13522 ---- 1958944292b ./libstdc++-v3/config/cpu/powerpc/bits/cpu_limits.h 3930061484b ./libstdc++-v3/config/cpu/s390/bits/atomicity.h 2029688870b ./libstdc++-v3/config/cpu/s390/bits/cpu_limits.h ! 1984909614b ./libstdc++-v3/config/cpu/sparc/bits/atomicity.h 785222978b ./libstdc++-v3/config/cpu/x86-64/bits/atomicity.h 4180289496b ./libstdc++-v3/config/cpu/x86-64/bits/cpu_limits.h ! 618996063b ./libstdc++-v3/config.h.in 1453199454b ./libstdc++-v3/config/io/basic_file_libio.cc 3157152478b ./libstdc++-v3/config/io/basic_file_libio.h 3725479456b ./libstdc++-v3/config/io/basic_file_stdio.cc *************** *** 13465,13494 **** 1754405198b ./libstdc++-v3/config/io/c_io_libio.h 3948747720b ./libstdc++-v3/config/io/c_io_stdio.h 1615839786b ./libstdc++-v3/config/linker-map.dummy ! 2918282062b ./libstdc++-v3/config/linker-map.gnu ! 773330578b ./libstdc++-v3/config/locale/generic/c_locale.cc ! 785097262b ./libstdc++-v3/config/locale/generic/c_locale.h 2005861251b ./libstdc++-v3/config/locale/generic/codecvt_specializations.h 4228611347b ./libstdc++-v3/config/locale/generic/collate_members.cc 1221593163b ./libstdc++-v3/config/locale/generic/ctype_members.cc ! 3466940416b ./libstdc++-v3/config/locale/generic/messages_members.cc 2682213266b ./libstdc++-v3/config/locale/generic/messages_members.h 45184175b ./libstdc++-v3/config/locale/generic/monetary_members.cc 650933917b ./libstdc++-v3/config/locale/generic/numeric_members.cc ! 1199479240b ./libstdc++-v3/config/locale/generic/time_members.cc ! 781005318b ./libstdc++-v3/config/locale/gnu/c_locale.cc ! 2998667708b ./libstdc++-v3/config/locale/gnu/c_locale.h ! 3774435712b ./libstdc++-v3/config/locale/gnu/collate_members.cc ! 3212021663b ./libstdc++-v3/config/locale/gnu/ctype_members.cc ! 2575517154b ./libstdc++-v3/config/locale/gnu/messages_members.cc ! 3686696267b ./libstdc++-v3/config/locale/gnu/messages_members.h ! 1229527183b ./libstdc++-v3/config/locale/gnu/monetary_members.cc ! 4180020740b ./libstdc++-v3/config/locale/gnu/numeric_members.cc ! 1982441854b ./libstdc++-v3/config/locale/gnu/time_members.cc 3232379868b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc 3136594064b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h 3256263647b ./libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h ! 3490831019b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc 488667815b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h 4256387970b ./libstdc++-v3/config/os/aix/bits/atomicity.h 2669974896b ./libstdc++-v3/config/os/aix/bits/ctype_base.h --- 13525,13558 ---- 1754405198b ./libstdc++-v3/config/io/c_io_libio.h 3948747720b ./libstdc++-v3/config/io/c_io_stdio.h 1615839786b ./libstdc++-v3/config/linker-map.dummy ! 2896868371b ./libstdc++-v3/config/linker-map.gnu ! 1866975602b ./libstdc++-v3/config/locale/generic/c_locale.cc ! 1871355918b ./libstdc++-v3/config/locale/generic/c_locale.h ! 3981697735b ./libstdc++-v3/config/locale/generic/c++locale_internal.h ! 3717051883b ./libstdc++-v3/config/locale/generic/codecvt_members.cc 2005861251b ./libstdc++-v3/config/locale/generic/codecvt_specializations.h 4228611347b ./libstdc++-v3/config/locale/generic/collate_members.cc 1221593163b ./libstdc++-v3/config/locale/generic/ctype_members.cc ! 474184383b ./libstdc++-v3/config/locale/generic/messages_members.cc 2682213266b ./libstdc++-v3/config/locale/generic/messages_members.h 45184175b ./libstdc++-v3/config/locale/generic/monetary_members.cc 650933917b ./libstdc++-v3/config/locale/generic/numeric_members.cc ! 3011916115b ./libstdc++-v3/config/locale/generic/time_members.cc ! 1345884901b ./libstdc++-v3/config/locale/gnu/c_locale.cc ! 543017678b ./libstdc++-v3/config/locale/gnu/c_locale.h ! 490906006b ./libstdc++-v3/config/locale/gnu/c++locale_internal.h ! 2228791650b ./libstdc++-v3/config/locale/gnu/codecvt_members.cc ! 3958263092b ./libstdc++-v3/config/locale/gnu/collate_members.cc ! 1102464431b ./libstdc++-v3/config/locale/gnu/ctype_members.cc ! 4087381875b ./libstdc++-v3/config/locale/gnu/messages_members.cc ! 4050802736b ./libstdc++-v3/config/locale/gnu/messages_members.h ! 3100021465b ./libstdc++-v3/config/locale/gnu/monetary_members.cc ! 630744503b ./libstdc++-v3/config/locale/gnu/numeric_members.cc ! 2183208255b ./libstdc++-v3/config/locale/gnu/time_members.cc 3232379868b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc 3136594064b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h 3256263647b ./libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h ! 3823275112b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc 488667815b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h 4256387970b ./libstdc++-v3/config/os/aix/bits/atomicity.h 2669974896b ./libstdc++-v3/config/os/aix/bits/ctype_base.h *************** *** 13511,13519 **** 913781161b ./libstdc++-v3/config/os/generic/bits/ctype_inline.h 2814302307b ./libstdc++-v3/config/os/generic/bits/ctype_noninline.h 2662031339b ./libstdc++-v3/config/os/generic/bits/os_defines.h ! 1728709835b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h 577770049b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_inline.h ! 2657263605b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h 1115301117b ./libstdc++-v3/config/os/gnu-linux/bits/os_defines.h 1503897878b ./libstdc++-v3/config/os/hpux/bits/cpu_limits.h 2727448261b ./libstdc++-v3/config/os/hpux/bits/ctype_base.h --- 13575,13583 ---- 913781161b ./libstdc++-v3/config/os/generic/bits/ctype_inline.h 2814302307b ./libstdc++-v3/config/os/generic/bits/ctype_noninline.h 2662031339b ./libstdc++-v3/config/os/generic/bits/os_defines.h ! 585502053b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h 577770049b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_inline.h ! 382466980b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h 1115301117b ./libstdc++-v3/config/os/gnu-linux/bits/os_defines.h 1503897878b ./libstdc++-v3/config/os/hpux/bits/cpu_limits.h 2727448261b ./libstdc++-v3/config/os/hpux/bits/ctype_base.h *************** *** 13535,13542 **** 4236896349b ./libstdc++-v3/config/os/mingw32/bits/ctype_noninline.h 3217385665b ./libstdc++-v3/config/os/mingw32/bits/os_defines.h 1435551091b ./libstdc++-v3/config/os/newlib/bits/ctype_base.h ! 3131508399b ./libstdc++-v3/config/os/newlib/bits/ctype_inline.h ! 780060341b ./libstdc++-v3/config/os/newlib/bits/ctype_noninline.h 1247228618b ./libstdc++-v3/config/os/newlib/bits/os_defines.h 269230749b ./libstdc++-v3/config/os/osf/osf5.0/bits/cpu_limits.h 1980991936b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h --- 13599,13606 ---- 4236896349b ./libstdc++-v3/config/os/mingw32/bits/ctype_noninline.h 3217385665b ./libstdc++-v3/config/os/mingw32/bits/os_defines.h 1435551091b ./libstdc++-v3/config/os/newlib/bits/ctype_base.h ! 4265751979b ./libstdc++-v3/config/os/newlib/bits/ctype_inline.h ! 3780859290b ./libstdc++-v3/config/os/newlib/bits/ctype_noninline.h 1247228618b ./libstdc++-v3/config/os/newlib/bits/os_defines.h 269230749b ./libstdc++-v3/config/os/osf/osf5.0/bits/cpu_limits.h 1980991936b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h *************** *** 13555,13568 **** 577770049b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_inline.h 399834321b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_noninline.h 157883947b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h ! 3654425883b ./libstdc++-v3/configure 3116040814b ./libstdc++-v3/configure.host ! 2344837706b ./libstdc++-v3/configure.in ! 3392026093b ./libstdc++-v3/configure.target 1779001880b ./libstdc++-v3/docs/doxygen/doxygroups.cc 1637481960b ./libstdc++-v3/docs/doxygen/Intro.3 748681152b ./libstdc++-v3/docs/doxygen/mainpage.html ! 2699837250b ./libstdc++-v3/docs/doxygen/run_doxygen 668865588b ./libstdc++-v3/docs/doxygen/stdheader.cc 2931788874b ./libstdc++-v3/docs/doxygen/style.css 2943242387b ./libstdc++-v3/docs/doxygen/tables.html --- 13619,13632 ---- 577770049b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_inline.h 399834321b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_noninline.h 157883947b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h ! 3959422938b ./libstdc++-v3/configure 3116040814b ./libstdc++-v3/configure.host ! 247346621b ./libstdc++-v3/configure.in ! 282761406b ./libstdc++-v3/configure.target 1779001880b ./libstdc++-v3/docs/doxygen/doxygroups.cc 1637481960b ./libstdc++-v3/docs/doxygen/Intro.3 748681152b ./libstdc++-v3/docs/doxygen/mainpage.html ! 712715143b ./libstdc++-v3/docs/doxygen/run_doxygen 668865588b ./libstdc++-v3/docs/doxygen/stdheader.cc 2931788874b ./libstdc++-v3/docs/doxygen/style.css 2943242387b ./libstdc++-v3/docs/doxygen/tables.html *************** *** 13572,13627 **** 985890621b ./libstdc++-v3/docs/html/17_intro/BUGS 2881598729b ./libstdc++-v3/docs/html/17_intro/CHECKLIST 3997884874b ./libstdc++-v3/docs/html/17_intro/concept_check.diff ! 3326490253b ./libstdc++-v3/docs/html/17_intro/contribute.html 2171125041b ./libstdc++-v3/docs/html/17_intro/COPYING 3922222294b ./libstdc++-v3/docs/html/17_intro/COPYING.DOC ! 2419103289b ./libstdc++-v3/docs/html/17_intro/C++STYLE 3222542515b ./libstdc++-v3/docs/html/17_intro/DESIGN 1363011462b ./libstdc++-v3/docs/html/17_intro/HEADER_POLICY 3461116413b ./libstdc++-v3/docs/html/17_intro/headers_cc.txt ! 2624515000b ./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 1322295551b ./libstdc++-v3/docs/html/17_intro/porting-howto.html 405521978b ./libstdc++-v3/docs/html/17_intro/porting-howto.xml 2381176791b ./libstdc++-v3/docs/html/17_intro/porting.html 2408767440b ./libstdc++-v3/docs/html/17_intro/porting.texi 12001592b ./libstdc++-v3/docs/html/17_intro/PROBLEMS ! 2042979184b ./libstdc++-v3/docs/html/17_intro/RELEASE-NOTES ! 1553498574b ./libstdc++-v3/docs/html/17_intro/TODO ! 2234420344b ./libstdc++-v3/docs/html/18_support/howto.html ! 1891872084b ./libstdc++-v3/docs/html/19_diagnostics/howto.html ! 797227370b ./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 ! 2826225921b ./libstdc++-v3/docs/html/22_locale/ctype.html ! 2008651243b ./libstdc++-v3/docs/html/22_locale/howto.html ! 60951948b ./libstdc++-v3/docs/html/22_locale/locale.html ! 2041856691b ./libstdc++-v3/docs/html/22_locale/messages.html ! 461815841b ./libstdc++-v3/docs/html/23_containers/howto.html 3458392326b ./libstdc++-v3/docs/html/23_containers/wrappers_h.txt ! 403270116b ./libstdc++-v3/docs/html/24_iterators/howto.html ! 2968708740b ./libstdc++-v3/docs/html/25_algorithms/howto.html ! 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 ! 20954860b ./libstdc++-v3/docs/html/27_io/howto.html ! 3668951243b ./libstdc++-v3/docs/html/configopts.html ! 1719318488b ./libstdc++-v3/docs/html/documentation.html ! 3529196048b ./libstdc++-v3/docs/html/explanations.html ! 3104075238b ./libstdc++-v3/docs/html/ext/howto.html 1604238359b ./libstdc++-v3/docs/html/ext/lwg-active.html 323640830b ./libstdc++-v3/docs/html/ext/lwg-defects.html ! 1724723596b ./libstdc++-v3/docs/html/ext/sgiexts.html ! 3616482744b ./libstdc++-v3/docs/html/faq/index.html ! 1633498853b ./libstdc++-v3/docs/html/faq/index.txt ! 1237174426b ./libstdc++-v3/docs/html/install.html 2049389478b ./libstdc++-v3/docs/html/lib3styles.css ! 3712956921b ./libstdc++-v3/docs/html/Makefile 2473605692b ./libstdc++-v3/include/backward/algobase.h 2730818532b ./libstdc++-v3/include/backward/algo.h 1509057550b ./libstdc++-v3/include/backward/alloc.h --- 13636,13693 ---- 985890621b ./libstdc++-v3/docs/html/17_intro/BUGS 2881598729b ./libstdc++-v3/docs/html/17_intro/CHECKLIST 3997884874b ./libstdc++-v3/docs/html/17_intro/concept_check.diff ! 2558571248b ./libstdc++-v3/docs/html/17_intro/contribute.html 2171125041b ./libstdc++-v3/docs/html/17_intro/COPYING 3922222294b ./libstdc++-v3/docs/html/17_intro/COPYING.DOC ! 3201164177b ./libstdc++-v3/docs/html/17_intro/C++STYLE 3222542515b ./libstdc++-v3/docs/html/17_intro/DESIGN 1363011462b ./libstdc++-v3/docs/html/17_intro/HEADER_POLICY 3461116413b ./libstdc++-v3/docs/html/17_intro/headers_cc.txt ! 2481329262b ./libstdc++-v3/docs/html/17_intro/howto.html 3565645043b ./libstdc++-v3/docs/html/17_intro/libstdc++-assign.txt ! 666334248b ./libstdc++-v3/docs/html/17_intro/license.html 982764901b ./libstdc++-v3/docs/html/17_intro/organization 1322295551b ./libstdc++-v3/docs/html/17_intro/porting-howto.html 405521978b ./libstdc++-v3/docs/html/17_intro/porting-howto.xml 2381176791b ./libstdc++-v3/docs/html/17_intro/porting.html 2408767440b ./libstdc++-v3/docs/html/17_intro/porting.texi 12001592b ./libstdc++-v3/docs/html/17_intro/PROBLEMS ! 2519365120b ./libstdc++-v3/docs/html/17_intro/RELEASE-NOTES ! 1434629529b ./libstdc++-v3/docs/html/17_intro/TODO ! 2819713781b ./libstdc++-v3/docs/html/18_support/howto.html ! 2508850192b ./libstdc++-v3/docs/html/19_diagnostics/howto.html ! 2830656893b ./libstdc++-v3/docs/html/20_util/howto.html 2326263830b ./libstdc++-v3/docs/html/21_strings/gotw29a.txt ! 547290487b ./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 ! 1023569015b ./libstdc++-v3/docs/html/22_locale/codecvt.html ! 1194040038b ./libstdc++-v3/docs/html/22_locale/ctype.html ! 2274046295b ./libstdc++-v3/docs/html/22_locale/howto.html ! 908518604b ./libstdc++-v3/docs/html/22_locale/locale.html ! 2156680698b ./libstdc++-v3/docs/html/22_locale/messages.html ! 3162616357b ./libstdc++-v3/docs/html/23_containers/howto.html 3458392326b ./libstdc++-v3/docs/html/23_containers/wrappers_h.txt ! 453248579b ./libstdc++-v3/docs/html/24_iterators/howto.html ! 2290789124b ./libstdc++-v3/docs/html/25_algorithms/howto.html ! 3773351147b ./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 ! 1136841501b ./libstdc++-v3/docs/html/27_io/howto.html ! 3224577239b ./libstdc++-v3/docs/html/abi.txt ! 552573454b ./libstdc++-v3/docs/html/configopts.html ! 714859455b ./libstdc++-v3/docs/html/documentation.html ! 1281947731b ./libstdc++-v3/docs/html/explanations.html ! 2578738010b ./libstdc++-v3/docs/html/ext/howto.html 1604238359b ./libstdc++-v3/docs/html/ext/lwg-active.html 323640830b ./libstdc++-v3/docs/html/ext/lwg-defects.html ! 2613919530b ./libstdc++-v3/docs/html/ext/sgiexts.html ! 3573437034b ./libstdc++-v3/docs/html/faq/index.html ! 1977830783b ./libstdc++-v3/docs/html/faq/index.txt ! 1032487062b ./libstdc++-v3/docs/html/install.html 2049389478b ./libstdc++-v3/docs/html/lib3styles.css ! 1757651676b ./libstdc++-v3/docs/html/makedoc.awk ! 3528340567b ./libstdc++-v3/docs/html/Makefile 2473605692b ./libstdc++-v3/include/backward/algobase.h 2730818532b ./libstdc++-v3/include/backward/algo.h 1509057550b ./libstdc++-v3/include/backward/alloc.h *************** *** 13660,13698 **** 1420771511b ./libstdc++-v3/include/backward/tree.h 3803139445b ./libstdc++-v3/include/backward/vector.h 4104762506b ./libstdc++-v3/include/bits/basic_ios.h ! 2319127434b ./libstdc++-v3/include/bits/basic_ios.tcc 1196444434b ./libstdc++-v3/include/bits/basic_string.h ! 2433152311b ./libstdc++-v3/include/bits/basic_string.tcc 179433314b ./libstdc++-v3/include/bits/boost_concept_check.h ! 4221694041b ./libstdc++-v3/include/bits/c++config 3498736544b ./libstdc++-v3/include/bits/char_traits.h ! 229999844b ./libstdc++-v3/include/bits/codecvt.h 2442194789b ./libstdc++-v3/include/bits/concept_check.h 329719722b ./libstdc++-v3/include/bits/cpp_type_traits.h 1176672394b ./libstdc++-v3/include/bits/fpos.h ! 381872118b ./libstdc++-v3/include/bits/fstream.tcc 3886600201b ./libstdc++-v3/include/bits/functexcept.h 3055891139b ./libstdc++-v3/include/bits/generic_shadow.h 3512731163b ./libstdc++-v3/include/bits/gslice_array.h 1117238130b ./libstdc++-v3/include/bits/gslice.h 3450716320b ./libstdc++-v3/include/bits/indirect_array.h ! 1556465309b ./libstdc++-v3/include/bits/ios_base.h ! 4043927392b ./libstdc++-v3/include/bits/istream.tcc ! 1700678698b ./libstdc++-v3/include/bits/locale_facets.h ! 2625853133b ./libstdc++-v3/include/bits/locale_facets.tcc ! 2301356812b ./libstdc++-v3/include/bits/localefwd.h 1519677165b ./libstdc++-v3/include/bits/mask_array.h 2822101373b ./libstdc++-v3/include/bits/ostream.tcc 3592433582b ./libstdc++-v3/include/bits/pthread_allocimpl.h 2670647629b ./libstdc++-v3/include/bits/slice_array.h 3194205835b ./libstdc++-v3/include/bits/slice.h ! 1855208508b ./libstdc++-v3/include/bits/sstream.tcc 3316800061b ./libstdc++-v3/include/bits/stl_algobase.h 1569010907b ./libstdc++-v3/include/bits/stl_algo.h 2270226903b ./libstdc++-v3/include/bits/stl_alloc.h 2801261805b ./libstdc++-v3/include/bits/stl_bvector.h 3302543196b ./libstdc++-v3/include/bits/stl_construct.h ! 2540378118b ./libstdc++-v3/include/bits/stl_deque.h 297399515b ./libstdc++-v3/include/bits/stl_function.h 2464389940b ./libstdc++-v3/include/bits/stl_heap.h 2116609667b ./libstdc++-v3/include/bits/stl_iterator_base_funcs.h --- 13726,13764 ---- 1420771511b ./libstdc++-v3/include/backward/tree.h 3803139445b ./libstdc++-v3/include/backward/vector.h 4104762506b ./libstdc++-v3/include/bits/basic_ios.h ! 613772707b ./libstdc++-v3/include/bits/basic_ios.tcc 1196444434b ./libstdc++-v3/include/bits/basic_string.h ! 3004074520b ./libstdc++-v3/include/bits/basic_string.tcc 179433314b ./libstdc++-v3/include/bits/boost_concept_check.h ! 2084732240b ./libstdc++-v3/include/bits/c++config 3498736544b ./libstdc++-v3/include/bits/char_traits.h ! 3672868066b ./libstdc++-v3/include/bits/codecvt.h 2442194789b ./libstdc++-v3/include/bits/concept_check.h 329719722b ./libstdc++-v3/include/bits/cpp_type_traits.h 1176672394b ./libstdc++-v3/include/bits/fpos.h ! 986176051b ./libstdc++-v3/include/bits/fstream.tcc 3886600201b ./libstdc++-v3/include/bits/functexcept.h 3055891139b ./libstdc++-v3/include/bits/generic_shadow.h 3512731163b ./libstdc++-v3/include/bits/gslice_array.h 1117238130b ./libstdc++-v3/include/bits/gslice.h 3450716320b ./libstdc++-v3/include/bits/indirect_array.h ! 4268468129b ./libstdc++-v3/include/bits/ios_base.h ! 43945125b ./libstdc++-v3/include/bits/istream.tcc ! 1947395633b ./libstdc++-v3/include/bits/locale_facets.h ! 1104096949b ./libstdc++-v3/include/bits/locale_facets.tcc ! 3189614545b ./libstdc++-v3/include/bits/localefwd.h 1519677165b ./libstdc++-v3/include/bits/mask_array.h 2822101373b ./libstdc++-v3/include/bits/ostream.tcc 3592433582b ./libstdc++-v3/include/bits/pthread_allocimpl.h 2670647629b ./libstdc++-v3/include/bits/slice_array.h 3194205835b ./libstdc++-v3/include/bits/slice.h ! 3555571522b ./libstdc++-v3/include/bits/sstream.tcc 3316800061b ./libstdc++-v3/include/bits/stl_algobase.h 1569010907b ./libstdc++-v3/include/bits/stl_algo.h 2270226903b ./libstdc++-v3/include/bits/stl_alloc.h 2801261805b ./libstdc++-v3/include/bits/stl_bvector.h 3302543196b ./libstdc++-v3/include/bits/stl_construct.h ! 1156806073b ./libstdc++-v3/include/bits/stl_deque.h 297399515b ./libstdc++-v3/include/bits/stl_function.h 2464389940b ./libstdc++-v3/include/bits/stl_heap.h 2116609667b ./libstdc++-v3/include/bits/stl_iterator_base_funcs.h *************** *** 13716,13724 **** 1954571679b ./libstdc++-v3/include/bits/stl_uninitialized.h 1635426571b ./libstdc++-v3/include/bits/stl_vector.h 466836896b ./libstdc++-v3/include/bits/streambuf_iterator.h ! 788216751b ./libstdc++-v3/include/bits/streambuf.tcc 99981565b ./libstdc++-v3/include/bits/stream_iterator.h ! 1646222939b ./libstdc++-v3/include/bits/stringfwd.h 1571290449b ./libstdc++-v3/include/bits/type_traits.h 3358963606b ./libstdc++-v3/include/bits/valarray_array.h 780098702b ./libstdc++-v3/include/bits/valarray_array.tcc --- 13782,13790 ---- 1954571679b ./libstdc++-v3/include/bits/stl_uninitialized.h 1635426571b ./libstdc++-v3/include/bits/stl_vector.h 466836896b ./libstdc++-v3/include/bits/streambuf_iterator.h ! 4072322448b ./libstdc++-v3/include/bits/streambuf.tcc 99981565b ./libstdc++-v3/include/bits/stream_iterator.h ! 1373192946b ./libstdc++-v3/include/bits/stringfwd.h 1571290449b ./libstdc++-v3/include/bits/type_traits.h 3358963606b ./libstdc++-v3/include/bits/valarray_array.h 780098702b ./libstdc++-v3/include/bits/valarray_array.tcc *************** *** 13843,13867 **** 177834210b ./libstdc++-v3/include/ext/rope 836293130b ./libstdc++-v3/include/ext/ropeimpl.h 4160164241b ./libstdc++-v3/include/ext/slist ! 2985626209b ./libstdc++-v3/include/ext/stdio_filebuf.h 2805137138b ./libstdc++-v3/include/ext/stl_hash_fun.h 1833363198b ./libstdc++-v3/include/ext/stl_hashtable.h ! 3615598422b ./libstdc++-v3/include/ext/stl_rope.h 3797873942b ./libstdc++-v3/include/Makefile.am ! 3100033549b ./libstdc++-v3/include/Makefile.in 4064711400b ./libstdc++-v3/include/std/std_algorithm.h 1636885247b ./libstdc++-v3/include/std/std_bitset.h 3412647990b ./libstdc++-v3/include/std/std_complex.h 1730455182b ./libstdc++-v3/include/std/std_deque.h 3370784176b ./libstdc++-v3/include/std/std_fstream.h 3174050204b ./libstdc++-v3/include/std/std_functional.h ! 735018069b ./libstdc++-v3/include/std/std_iomanip.h ! 3189740242b ./libstdc++-v3/include/std/std_iosfwd.h 2056599714b ./libstdc++-v3/include/std/std_ios.h ! 3699343429b ./libstdc++-v3/include/std/std_iostream.h 270752150b ./libstdc++-v3/include/std/std_istream.h 3826418885b ./libstdc++-v3/include/std/std_iterator.h ! 3811165801b ./libstdc++-v3/include/std/std_limits.h 1509281666b ./libstdc++-v3/include/std/std_list.h 918488326b ./libstdc++-v3/include/std/std_locale.h 2375471353b ./libstdc++-v3/include/std/std_map.h --- 13909,13933 ---- 177834210b ./libstdc++-v3/include/ext/rope 836293130b ./libstdc++-v3/include/ext/ropeimpl.h 4160164241b ./libstdc++-v3/include/ext/slist ! 580180377b ./libstdc++-v3/include/ext/stdio_filebuf.h 2805137138b ./libstdc++-v3/include/ext/stl_hash_fun.h 1833363198b ./libstdc++-v3/include/ext/stl_hashtable.h ! 984888269b ./libstdc++-v3/include/ext/stl_rope.h 3797873942b ./libstdc++-v3/include/Makefile.am ! 2227334710b ./libstdc++-v3/include/Makefile.in 4064711400b ./libstdc++-v3/include/std/std_algorithm.h 1636885247b ./libstdc++-v3/include/std/std_bitset.h 3412647990b ./libstdc++-v3/include/std/std_complex.h 1730455182b ./libstdc++-v3/include/std/std_deque.h 3370784176b ./libstdc++-v3/include/std/std_fstream.h 3174050204b ./libstdc++-v3/include/std/std_functional.h ! 2010625027b ./libstdc++-v3/include/std/std_iomanip.h ! 1134808427b ./libstdc++-v3/include/std/std_iosfwd.h 2056599714b ./libstdc++-v3/include/std/std_ios.h ! 2007291560b ./libstdc++-v3/include/std/std_iostream.h 270752150b ./libstdc++-v3/include/std/std_istream.h 3826418885b ./libstdc++-v3/include/std/std_iterator.h ! 2456685888b ./libstdc++-v3/include/std/std_limits.h 1509281666b ./libstdc++-v3/include/std/std_list.h 918488326b ./libstdc++-v3/include/std/std_locale.h 2375471353b ./libstdc++-v3/include/std/std_map.h *************** *** 13870,13876 **** 3467401292b ./libstdc++-v3/include/std/std_ostream.h 1570707417b ./libstdc++-v3/include/std/std_queue.h 2180214858b ./libstdc++-v3/include/std/std_set.h ! 4147065580b ./libstdc++-v3/include/std/std_sstream.h 1037640383b ./libstdc++-v3/include/std/std_stack.h 3429471837b ./libstdc++-v3/include/std/std_stdexcept.h 136978800b ./libstdc++-v3/include/std/std_streambuf.h --- 13936,13942 ---- 3467401292b ./libstdc++-v3/include/std/std_ostream.h 1570707417b ./libstdc++-v3/include/std/std_queue.h 2180214858b ./libstdc++-v3/include/std/std_set.h ! 2149174599b ./libstdc++-v3/include/std/std_sstream.h 1037640383b ./libstdc++-v3/include/std/std_stack.h 3429471837b ./libstdc++-v3/include/std/std_stdexcept.h 136978800b ./libstdc++-v3/include/std/std_streambuf.h *************** *** 13878,13884 **** 4158492065b ./libstdc++-v3/include/std/std_utility.h 362016596b ./libstdc++-v3/include/std/std_valarray.h 125145631b ./libstdc++-v3/include/std/std_vector.h ! 123037152b ./libstdc++-v3/libio/ChangeLog 2122576197b ./libstdc++-v3/libio/filedoalloc.c 3590060213b ./libstdc++-v3/libio/fileops.c 314955067b ./libstdc++-v3/libio/_G_config.h --- 13944,13950 ---- 4158492065b ./libstdc++-v3/include/std/std_utility.h 362016596b ./libstdc++-v3/include/std/std_valarray.h 125145631b ./libstdc++-v3/include/std/std_vector.h ! 357326461b ./libstdc++-v3/libio/ChangeLog 2122576197b ./libstdc++-v3/libio/filedoalloc.c 3590060213b ./libstdc++-v3/libio/fileops.c 314955067b ./libstdc++-v3/libio/_G_config.h *************** *** 13890,13904 **** 4269898080b ./libstdc++-v3/libio/libio.h 276542374b ./libstdc++-v3/libio/libioP.h 226381804b ./libstdc++-v3/libio/Makefile.am ! 3829396828b ./libstdc++-v3/libio/Makefile.in 13280908b ./libstdc++-v3/libio/stdfiles.c 2344987226b ./libstdc++-v3/libio/stdio.c 688559115b ./libstdc++-v3/libio/wfiledoalloc.c 871695306b ./libstdc++-v3/libio/wfileops.c 2568419733b ./libstdc++-v3/libio/wgenops.c 4088285812b ./libstdc++-v3/libmath/copysignf.c ! 1192225650b ./libstdc++-v3/libmath/Makefile.am ! 108374429b ./libstdc++-v3/libmath/Makefile.in 346371220b ./libstdc++-v3/libmath/mathconf.h 1759197966b ./libstdc++-v3/libmath/nan.c 1774241233b ./libstdc++-v3/libmath/signbit.c --- 13956,13970 ---- 4269898080b ./libstdc++-v3/libio/libio.h 276542374b ./libstdc++-v3/libio/libioP.h 226381804b ./libstdc++-v3/libio/Makefile.am ! 2999083951b ./libstdc++-v3/libio/Makefile.in 13280908b ./libstdc++-v3/libio/stdfiles.c 2344987226b ./libstdc++-v3/libio/stdio.c 688559115b ./libstdc++-v3/libio/wfiledoalloc.c 871695306b ./libstdc++-v3/libio/wfileops.c 2568419733b ./libstdc++-v3/libio/wgenops.c 4088285812b ./libstdc++-v3/libmath/copysignf.c ! 3368788614b ./libstdc++-v3/libmath/Makefile.am ! 3495106153b ./libstdc++-v3/libmath/Makefile.in 346371220b ./libstdc++-v3/libmath/mathconf.h 1759197966b ./libstdc++-v3/libmath/nan.c 1774241233b ./libstdc++-v3/libmath/signbit.c *************** *** 13922,13928 **** 1338501219b ./libstdc++-v3/libsupc++/exception 3453419455b ./libstdc++-v3/libsupc++/exception_defines.h 2343038402b ./libstdc++-v3/libsupc++/Makefile.am ! 800459218b ./libstdc++-v3/libsupc++/Makefile.in 4225132204b ./libstdc++-v3/libsupc++/new 2545598190b ./libstdc++-v3/libsupc++/new_handler.cc 2558289852b ./libstdc++-v3/libsupc++/new_op.cc --- 13988,13994 ---- 1338501219b ./libstdc++-v3/libsupc++/exception 3453419455b ./libstdc++-v3/libsupc++/exception_defines.h 2343038402b ./libstdc++-v3/libsupc++/Makefile.am ! 4070714309b ./libstdc++-v3/libsupc++/Makefile.in 4225132204b ./libstdc++-v3/libsupc++/new 2545598190b ./libstdc++-v3/libsupc++/new_handler.cc 2558289852b ./libstdc++-v3/libsupc++/new_op.cc *************** *** 13936,13943 **** 2283435214b ./libstdc++-v3/libsupc++/typeinfo 875479559b ./libstdc++-v3/libsupc++/unwind-cxx.h 712738859b ./libstdc++-v3/libsupc++/vec.cc ! 514484816b ./libstdc++-v3/Makefile.am ! 2853760935b ./libstdc++-v3/Makefile.in 2396933860b ./libstdc++-v3/mkcheck.in 3790569303b ./libstdc++-v3/mkcshadow 805804711b ./libstdc++-v3/mkinclosure --- 14002,14009 ---- 2283435214b ./libstdc++-v3/libsupc++/typeinfo 875479559b ./libstdc++-v3/libsupc++/unwind-cxx.h 712738859b ./libstdc++-v3/libsupc++/vec.cc ! 726823839b ./libstdc++-v3/Makefile.am ! 2114270009b ./libstdc++-v3/Makefile.in 2396933860b ./libstdc++-v3/mkcheck.in 3790569303b ./libstdc++-v3/mkcshadow 805804711b ./libstdc++-v3/mkinclosure *************** *** 13945,13982 **** 4161545945b ./libstdc++-v3/po/fr.po 571561184b ./libstdc++-v3/po/libstdc++.pot 2710223631b ./libstdc++-v3/po/Makefile.am ! 2742214156b ./libstdc++-v3/po/Makefile.in 2014452913b ./libstdc++-v3/po/POTFILES.in 1352447199b ./libstdc++-v3/po/string_literals.cc 201474883b ./libstdc++-v3/README ! 33119601b ./libstdc++-v3/src/bitset.cc ! 3432581077b ./libstdc++-v3/src/codecvt.cc 252828227b ./libstdc++-v3/src/complex_io.cc ! 3518329104b ./libstdc++-v3/src/concept-inst.cc 78911046b ./libstdc++-v3/src/ext-inst.cc 2915333764b ./libstdc++-v3/src/fstream.cc 3501232323b ./libstdc++-v3/src/fstream-inst.cc 3677721072b ./libstdc++-v3/src/functexcept.cc ! 650049293b ./libstdc++-v3/src/globals.cc 62109486b ./libstdc++-v3/src/io-inst.cc ! 4223583336b ./libstdc++-v3/src/ios.cc 3318878382b ./libstdc++-v3/src/istream-inst.cc 2798828124b ./libstdc++-v3/src/limits.cc ! 730498888b ./libstdc++-v3/src/locale.cc ! 2844654332b ./libstdc++-v3/src/locale-inst.cc ! 3672007895b ./libstdc++-v3/src/localename.cc ! 1177370419b ./libstdc++-v3/src/Makefile.am ! 391507861b ./libstdc++-v3/src/Makefile.in ! 796578536b ./libstdc++-v3/src/misc-inst.cc 1456313812b ./libstdc++-v3/src/ostream-inst.cc 1968902758b ./libstdc++-v3/src/sstream-inst.cc 3634270088b ./libstdc++-v3/src/stdexcept.cc 1621643001b ./libstdc++-v3/src/stl-inst.cc 294577884b ./libstdc++-v3/src/streambuf-inst.cc ! 693942221b ./libstdc++-v3/src/string-inst.cc ! 3219376587b ./libstdc++-v3/src/strstream.cc 3557593608b ./libstdc++-v3/src/valarray-inst.cc ! 2281175186b ./libstdc++-v3/src/vterminate.cc 1651008667b ./libstdc++-v3/src/wstring-inst.cc 3407177850b ./libstdc++-v3/testsuite/17_intro/header_cassert.cc 718483329b ./libstdc++-v3/testsuite/17_intro/header_cerrno.cc --- 14011,14049 ---- 4161545945b ./libstdc++-v3/po/fr.po 571561184b ./libstdc++-v3/po/libstdc++.pot 2710223631b ./libstdc++-v3/po/Makefile.am ! 768491719b ./libstdc++-v3/po/Makefile.in 2014452913b ./libstdc++-v3/po/POTFILES.in 1352447199b ./libstdc++-v3/po/string_literals.cc 201474883b ./libstdc++-v3/README ! 2225403332b ./libstdc++-v3/src/bitset.cc ! 710998349b ./libstdc++-v3/src/codecvt.cc 252828227b ./libstdc++-v3/src/complex_io.cc ! 730767358b ./libstdc++-v3/src/concept-inst.cc ! 1573161063b ./libstdc++-v3/src/ctype.cc 78911046b ./libstdc++-v3/src/ext-inst.cc 2915333764b ./libstdc++-v3/src/fstream.cc 3501232323b ./libstdc++-v3/src/fstream-inst.cc 3677721072b ./libstdc++-v3/src/functexcept.cc ! 4248290172b ./libstdc++-v3/src/globals.cc 62109486b ./libstdc++-v3/src/io-inst.cc ! 2685787750b ./libstdc++-v3/src/ios.cc 3318878382b ./libstdc++-v3/src/istream-inst.cc 2798828124b ./libstdc++-v3/src/limits.cc ! 3890365762b ./libstdc++-v3/src/locale.cc ! 2887946202b ./libstdc++-v3/src/locale-inst.cc ! 2847860049b ./libstdc++-v3/src/localename.cc ! 2372986634b ./libstdc++-v3/src/Makefile.am ! 1241013874b ./libstdc++-v3/src/Makefile.in ! 46061667b ./libstdc++-v3/src/misc-inst.cc 1456313812b ./libstdc++-v3/src/ostream-inst.cc 1968902758b ./libstdc++-v3/src/sstream-inst.cc 3634270088b ./libstdc++-v3/src/stdexcept.cc 1621643001b ./libstdc++-v3/src/stl-inst.cc 294577884b ./libstdc++-v3/src/streambuf-inst.cc ! 1002021259b ./libstdc++-v3/src/string-inst.cc ! 102324994b ./libstdc++-v3/src/strstream.cc 3557593608b ./libstdc++-v3/src/valarray-inst.cc ! 2601290630b ./libstdc++-v3/src/vterminate.cc 1651008667b ./libstdc++-v3/src/wstring-inst.cc 3407177850b ./libstdc++-v3/testsuite/17_intro/header_cassert.cc 718483329b ./libstdc++-v3/testsuite/17_intro/header_cerrno.cc *************** *** 14019,14025 **** 4052621376b ./libstdc++-v3/testsuite/21_strings/char_traits_typedefs.cc 2742086522b ./libstdc++-v3/testsuite/21_strings/compare.cc 1828225934b ./libstdc++-v3/testsuite/21_strings/c_strings.cc ! 1038697695b ./libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc 2926478704b ./libstdc++-v3/testsuite/21_strings/element_access.cc 2204151867b ./libstdc++-v3/testsuite/21_strings/find.cc 1722926940b ./libstdc++-v3/testsuite/21_strings/insert.cc --- 14086,14092 ---- 4052621376b ./libstdc++-v3/testsuite/21_strings/char_traits_typedefs.cc 2742086522b ./libstdc++-v3/testsuite/21_strings/compare.cc 1828225934b ./libstdc++-v3/testsuite/21_strings/c_strings.cc ! 747384429b ./libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc 2926478704b ./libstdc++-v3/testsuite/21_strings/element_access.cc 2204151867b ./libstdc++-v3/testsuite/21_strings/find.cc 1722926940b ./libstdc++-v3/testsuite/21_strings/insert.cc *************** *** 14039,14045 **** 4219192012b ./libstdc++-v3/testsuite/22_locale/collate.cc 1671297459b ./libstdc++-v3/testsuite/22_locale/collate_members_char.cc 2271354246b ./libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc ! 2466264209b ./libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc 2708515186b ./libstdc++-v3/testsuite/22_locale/ctype.cc 249444744b ./libstdc++-v3/testsuite/22_locale/ctype_is_char.cc 547279960b ./libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc --- 14106,14112 ---- 4219192012b ./libstdc++-v3/testsuite/22_locale/collate.cc 1671297459b ./libstdc++-v3/testsuite/22_locale/collate_members_char.cc 2271354246b ./libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc ! 3591030064b ./libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc 2708515186b ./libstdc++-v3/testsuite/22_locale/ctype.cc 249444744b ./libstdc++-v3/testsuite/22_locale/ctype_is_char.cc 547279960b ./libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc *************** *** 14053,14059 **** 4182256884b ./libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc 3510804403b ./libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc 93317595b ./libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc ! 3268934912b ./libstdc++-v3/testsuite/22_locale/facet.cc 3496730433b ./libstdc++-v3/testsuite/22_locale/global_templates.cc 1723684426b ./libstdc++-v3/testsuite/22_locale/members.cc 1401094326b ./libstdc++-v3/testsuite/22_locale/messages_byname.cc --- 14120,14126 ---- 4182256884b ./libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc 3510804403b ./libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc 93317595b ./libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc ! 3849986858b ./libstdc++-v3/testsuite/22_locale/facet.cc 3496730433b ./libstdc++-v3/testsuite/22_locale/global_templates.cc 1723684426b ./libstdc++-v3/testsuite/22_locale/members.cc 1401094326b ./libstdc++-v3/testsuite/22_locale/messages_byname.cc *************** *** 14077,14086 **** 1180876674b ./libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc 3139380707b ./libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc 2013396522b ./libstdc++-v3/testsuite/22_locale/num_put.cc ! 296571445b ./libstdc++-v3/testsuite/22_locale/num_put_members_char.cc ! 263265882b ./libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc 2592583186b ./libstdc++-v3/testsuite/22_locale/operators.cc ! 2943563602b ./libstdc++-v3/testsuite/22_locale/static_members.cc 3529549306b ./libstdc++-v3/testsuite/22_locale/time_get.cc 3923101724b ./libstdc++-v3/testsuite/22_locale/time_get_members_char.cc 2180594183b ./libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc --- 14144,14153 ---- 1180876674b ./libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc 3139380707b ./libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc 2013396522b ./libstdc++-v3/testsuite/22_locale/num_put.cc ! 2410491259b ./libstdc++-v3/testsuite/22_locale/num_put_members_char.cc ! 547290714b ./libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc 2592583186b ./libstdc++-v3/testsuite/22_locale/operators.cc ! 786606213b ./libstdc++-v3/testsuite/22_locale/static_members.cc 3529549306b ./libstdc++-v3/testsuite/22_locale/time_get.cc 3923101724b ./libstdc++-v3/testsuite/22_locale/time_get_members_char.cc 2180594183b ./libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc *************** *** 14158,14163 **** --- 14225,14231 ---- 3079502096b ./libstdc++-v3/testsuite/27_io/ios_base_members_static-1.tst 2904656871b ./libstdc++-v3/testsuite/27_io/ios_base_members_static.cc 446281776b ./libstdc++-v3/testsuite/27_io/ios_base_storage.cc + 1912639991b ./libstdc++-v3/testsuite/27_io/ios_base_type.cc 236727293b ./libstdc++-v3/testsuite/27_io/ios.cc 3028704293b ./libstdc++-v3/testsuite/27_io/ios_ctor.cc 3931163797b ./libstdc++-v3/testsuite/27_io/ios_init.cc *************** *** 14178,14191 **** 3951789237b ./libstdc++-v3/testsuite/27_io/istream_seeks-1.txt 4294967295b ./libstdc++-v3/testsuite/27_io/istream_seeks-2.tst 2129191219b ./libstdc++-v3/testsuite/27_io/istream_seeks-3.tst ! 1771504798b ./libstdc++-v3/testsuite/27_io/istream_seeks.cc 466639813b ./libstdc++-v3/testsuite/27_io/istream_sentry.cc 38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.tst 38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.txt ! 2016922492b ./libstdc++-v3/testsuite/27_io/istream_unformatted.cc 351004607b ./libstdc++-v3/testsuite/27_io/istringstream.cc 2607021483b ./libstdc++-v3/testsuite/27_io/istringstream_members.cc ! 2588015379b ./libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc 190325385b ./libstdc++-v3/testsuite/27_io/ofstream.cc 4294967295b ./libstdc++-v3/testsuite/27_io/ofstream_members-1.tst 2333857258b ./libstdc++-v3/testsuite/27_io/ofstream_members.cc --- 14246,14259 ---- 3951789237b ./libstdc++-v3/testsuite/27_io/istream_seeks-1.txt 4294967295b ./libstdc++-v3/testsuite/27_io/istream_seeks-2.tst 2129191219b ./libstdc++-v3/testsuite/27_io/istream_seeks-3.tst ! 1422426115b ./libstdc++-v3/testsuite/27_io/istream_seeks.cc 466639813b ./libstdc++-v3/testsuite/27_io/istream_sentry.cc 38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.tst 38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.txt ! 3117431722b ./libstdc++-v3/testsuite/27_io/istream_unformatted.cc 351004607b ./libstdc++-v3/testsuite/27_io/istringstream.cc 2607021483b ./libstdc++-v3/testsuite/27_io/istringstream_members.cc ! 3768461150b ./libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc 190325385b ./libstdc++-v3/testsuite/27_io/ofstream.cc 4294967295b ./libstdc++-v3/testsuite/27_io/ofstream_members-1.tst 2333857258b ./libstdc++-v3/testsuite/27_io/ofstream_members.cc *************** *** 14196,14202 **** 4127328437b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc 4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-1.tst 4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-2.tst ! 4111323148b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc 1438625590b ./libstdc++-v3/testsuite/27_io/ostream_manip.cc 4294967295b ./libstdc++-v3/testsuite/27_io/ostream_seeks-1.tst 169443827b ./libstdc++-v3/testsuite/27_io/ostream_seeks.cc --- 14264,14270 ---- 4127328437b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc 4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-1.tst 4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-2.tst ! 1839784195b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc 1438625590b ./libstdc++-v3/testsuite/27_io/ostream_manip.cc 4294967295b ./libstdc++-v3/testsuite/27_io/ostream_seeks-1.tst 169443827b ./libstdc++-v3/testsuite/27_io/ostream_seeks.cc *************** *** 14210,14217 **** 1939814633b ./libstdc++-v3/testsuite/27_io/stringbuf_members.cc 826108650b ./libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc 4012426009b ./libstdc++-v3/testsuite/27_io/stringstream.cc ! 4146600781b ./libstdc++-v3/testsuite/27_io/stringstream_members.cc 365205754b ./libstdc++-v3/testsuite/27_io/wide_stream_objects.cc 3762370376b ./libstdc++-v3/testsuite/backward/header_deque_h.cc 651880874b ./libstdc++-v3/testsuite/backward/header_hash_map_h.cc 2293472298b ./libstdc++-v3/testsuite/backward/header_hash_set_h.cc --- 14278,14286 ---- 1939814633b ./libstdc++-v3/testsuite/27_io/stringbuf_members.cc 826108650b ./libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc 4012426009b ./libstdc++-v3/testsuite/27_io/stringstream.cc ! 2617118873b ./libstdc++-v3/testsuite/27_io/stringstream_members.cc 365205754b ./libstdc++-v3/testsuite/27_io/wide_stream_objects.cc + 1480987785b ./libstdc++-v3/testsuite/abi_check.cc 3762370376b ./libstdc++-v3/testsuite/backward/header_deque_h.cc 651880874b ./libstdc++-v3/testsuite/backward/header_hash_map_h.cc 2293472298b ./libstdc++-v3/testsuite/backward/header_hash_set_h.cc *************** *** 14232,14242 **** 2466180569b ./libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp 3712176129b ./libstdc++-v3/testsuite/lib/prune.exp 2361428628b ./libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp ! 2294107082b ./libstdc++-v3/testsuite/Makefile.am ! 328430332b ./libstdc++-v3/testsuite/Makefile.in 1352817621b ./libstdc++-v3/testsuite/printnow.c 443433597b ./libstdc++-v3/testsuite/README ! 1201816317b ./libstdc++-v3/testsuite/testsuite_hooks.h 156463796b ./libstdc++-v3/testsuite/thread/pthread1.cc 1550931445b ./libstdc++-v3/testsuite/thread/pthread2.cc 1829037829b ./libstdc++-v3/testsuite/thread/pthread3.cc --- 14301,14311 ---- 2466180569b ./libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp 3712176129b ./libstdc++-v3/testsuite/lib/prune.exp 2361428628b ./libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp ! 530685480b ./libstdc++-v3/testsuite/Makefile.am ! 1266369902b ./libstdc++-v3/testsuite/Makefile.in 1352817621b ./libstdc++-v3/testsuite/printnow.c 443433597b ./libstdc++-v3/testsuite/README ! 3725824881b ./libstdc++-v3/testsuite/testsuite_hooks.h 156463796b ./libstdc++-v3/testsuite/thread/pthread1.cc 1550931445b ./libstdc++-v3/testsuite/thread/pthread2.cc 1829037829b ./libstdc++-v3/testsuite/thread/pthread3.cc *************** *** 14249,14256 **** 3594421631b ./ltcf-gcj.sh 30175378b ./ltconfig 2369122487b ./ltmain.sh ! 1311810028b ./MAINTAINERS ! 411059343b ./maintainer-scripts/ChangeLog 1905552954b ./maintainer-scripts/crontab 4171969357b ./maintainer-scripts/doc_exclude 3945756456b ./maintainer-scripts/gcc_release --- 14318,14325 ---- 3594421631b ./ltcf-gcj.sh 30175378b ./ltconfig 2369122487b ./ltmain.sh ! 4287295648b ./MAINTAINERS ! 1302059430b ./maintainer-scripts/ChangeLog 1905552954b ./maintainer-scripts/crontab 4171969357b ./maintainer-scripts/doc_exclude 3945756456b ./maintainer-scripts/gcc_release *************** *** 14261,14267 **** 612565256b ./maintainer-scripts/update_web_docs 2568232642b ./maintainer-scripts/update_web_docs_libstdcxx 1719002991b ./maintainer-scripts/update_web_docs_old ! 136033403b ./Makefile.in 990942143b ./missing 2656466409b ./mkdep 4236112450b ./mkinstalldirs --- 14330,14336 ---- 612565256b ./maintainer-scripts/update_web_docs 2568232642b ./maintainer-scripts/update_web_docs_libstdcxx 1719002991b ./maintainer-scripts/update_web_docs_old ! 2643081116b ./Makefile.in 990942143b ./missing 2656466409b ./mkdep 4236112450b ./mkinstalldirs *************** *** 14275,14281 **** 2360440520b ./zlib/algorithm.txt 1537725969b ./zlib/amiga/Makefile.pup 3919607569b ./zlib/amiga/Makefile.sas ! 1610764448b ./zlib/ChangeLog 3062272324b ./zlib/ChangeLog.gcj 720988996b ./zlib/compress.c 1404772722b ./zlib/configure --- 14344,14350 ---- 2360440520b ./zlib/algorithm.txt 1537725969b ./zlib/amiga/Makefile.pup 3919607569b ./zlib/amiga/Makefile.sas ! 1002100577b ./zlib/ChangeLog 3062272324b ./zlib/ChangeLog.gcj 720988996b ./zlib/compress.c 1404772722b ./zlib/configure *************** *** 14345,14352 **** 2634414216b ./zlib/inftrees.h 788977750b ./zlib/infutil.c 2297950969b ./zlib/infutil.h ! 3601491819b ./zlib/Makefile.am ! 1642730173b ./zlib/Makefile.in 3707467235b ./zlib/Makefile.riscos 196153738b ./zlib/maketree.c 3901505907b ./zlib/Make_vms.com --- 14414,14421 ---- 2634414216b ./zlib/inftrees.h 788977750b ./zlib/infutil.c 2297950969b ./zlib/infutil.h ! 3729200713b ./zlib/Makefile.am ! 1429364934b ./zlib/Makefile.in 3707467235b ./zlib/Makefile.riscos 196153738b ./zlib/maketree.c 3901505907b ./zlib/Make_vms.com diff -Nrc3pad gcc-3.2/BUGS gcc-3.2.1/BUGS *** gcc-3.2/BUGS Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/BUGS Tue Nov 19 18:11:49 2002 *************** References *** 585,591 **** 25. http://gcc.gnu.org/bugs.html#gnat 26. http://gcc.gnu.org/bugs.html#detailed 27. http://gcc.gnu.org/bugs.html#where ! 28. http://gcc.gnu.org/onlinedocs/g77_bugs.html 29. http://www.gnu.org/software/glibc/ 30. http://gcc.gnu.org/bugs.html#report 31. http://www.ncits.org/cplusplus.htm --- 585,591 ---- 25. http://gcc.gnu.org/bugs.html#gnat 26. http://gcc.gnu.org/bugs.html#detailed 27. http://gcc.gnu.org/bugs.html#where ! 28. http://gcc.gnu.org/onlinedocs/g77/Trouble.html 29. http://www.gnu.org/software/glibc/ 30. http://gcc.gnu.org/bugs.html#report 31. http://www.ncits.org/cplusplus.htm diff -Nrc3pad gcc-3.2/ChangeLog gcc-3.2.1/ChangeLog *** gcc-3.2/ChangeLog Wed Aug 14 08:58:56 2002 --- gcc-3.2.1/ChangeLog Tue Nov 19 17:47:49 2002 *************** *** 1,3 **** --- 1,53 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Gerald Pfeifer + + * MAINTAINERS: Complete James Dennett's entry. + + 2002-11-18  Eric Botcazou   + + * MAINTAINERS (Write After Approval): Add myself. + + 2002-11-14 Gabriel Dos Reis + + * MAINTAINERS: Remove from write-after-approval-list, uniformize + email. + + 2002-11-08 Neil Booth + + * MAINTAINERS: Fix email address. + + 2002-11-05 Nick Clifton + + * MAINTAINERS: Fix typo in my email address. + + 2002-11-05 Paolo Carlini + + * MAINTAINERS (Write After Approval): Remove myself. + (Various Maintainers: c++ runtime libs): Add myself. + + 2002-10-07 Kaveh R. Ghazi + + * Makefile.in (CFLAGS_FOR_TARGET): Add -O2. + + 2002-09-14 Kazu Hirata + + * MAINTAINERS: Update my email address. + + 2002-09-14 Stephane Carrez + + * MAINTAINERS: Update my email address. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/FAQ gcc-3.2.1/FAQ *** gcc-3.2/FAQ Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/FAQ Tue Nov 19 18:11:50 2002 *************** Does GCC work on my platform? *** 172,179 **** 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 [43]latest version is always ! available at the GCC web site. Reports of successful builds for GCC ! versions [44]3.0 and [45]2.95 are also available at the web site. _________________________________________________________________ Installation --- 172,179 ---- 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 [43]latest version is always ! available at the GCC web site. Reports of [44]successful builds for ! several versions of GCC are also available at the web site. _________________________________________________________________ Installation *************** How to install multiple versions of GCC *** 219,225 **** 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, [46]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 --- 219,225 ---- 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, [45]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 *** 285,291 **** versions of those programs. To ensure that GCC finds the GNU assembler (the GNU loader), which are ! required by [47]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. --- 285,291 ---- versions of those programs. To ensure that GCC finds the GNU assembler (the GNU loader), which are ! required by [46]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 *** 339,345 **** 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 ! [48]http://www.gnu.org/software/dejagnu/dejagnu.html. _________________________________________________________________ How do I pass flags like -fnew-abi to the testsuite? --- 339,345 ---- 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 ! [47]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 *** 374,380 **** Is there a stringstream / sstream for GCC 2.95.2? Yes, it's at: ! [49]http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00700/sstream. _________________________________________________________________ Miscellaneous --- 374,380 ---- Is there a stringstream / sstream for GCC 2.95.2? Yes, it's at: ! [48]http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00700/sstream. _________________________________________________________________ Miscellaneous *************** dynamic_cast, throw, typeid don't work w *** 486,492 **** [basic.def.odr]. For more details about the way that GCC implements these and other C++ ! features, please read the [50]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. --- 486,492 ---- [basic.def.odr]. For more details about the way that GCC implements these and other C++ ! features, please read the [49]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, *** 517,526 **** rebuild GCC. In general, the current versions of these tools from ! [51]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 ! [52]ftp://gcc.gnu.org/pub/gcc/infrastructure/ for any special versions of packages. _________________________________________________________________ --- 517,526 ---- rebuild GCC. In general, the current versions of these tools from ! [50]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 ! [51]ftp://gcc.gnu.org/pub/gcc/infrastructure/ for any special versions of packages. _________________________________________________________________ *************** References *** 643,654 **** 41. http://gcc.gnu.org/bugs.html 42. http://gcc.gnu.org/bugs.html 43. http://gcc.gnu.org/install/specific.html ! 44. http://gcc.gnu.org/gcc-3.0/buildstat.html ! 45. http://gcc.gnu.org/gcc-2.95/buildstat.html ! 46. http://gcc.gnu.org/faq.html#gas ! 47. http://gcc.gnu.org/install/specific.html ! 48. http://www.gnu.org/software/dejagnu/dejagnu.html ! 49. http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00700/sstream ! 50. http://www.codesourcery.com/cxx-abi/ ! 51. ftp://ftp.gnu.org/gnu/ ! 52. ftp://gcc.gnu.org/pub/gcc/infrastructure/ --- 643,653 ---- 41. http://gcc.gnu.org/bugs.html 42. http://gcc.gnu.org/bugs.html 43. http://gcc.gnu.org/install/specific.html ! 44. http://gcc.gnu.org/buildstat.html ! 45. http://gcc.gnu.org/faq.html#gas ! 46. http://gcc.gnu.org/install/specific.html ! 47. http://www.gnu.org/software/dejagnu/dejagnu.html ! 48. http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00700/sstream ! 49. http://www.codesourcery.com/cxx-abi/ ! 50. ftp://ftp.gnu.org/gnu/ ! 51. ftp://gcc.gnu.org/pub/gcc/infrastructure/ diff -Nrc3pad gcc-3.2/GNATS gcc-3.2.1/GNATS *** gcc-3.2/GNATS Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/GNATS Tue Nov 19 18:11:50 2002 *************** *** 1,21 **** ! gccbug and gnatsweb ! GNATS is the GNU bug tracking system, and it is now used to track GCC ! bug reports, as well. Before submitting a bug report, please read the ! [1]general instructions. ! The preferred way of submitting a bug report is by means of the gccbug ! program that is automatically installed with current versions of GCC ! and submits the bug report by e-mail. ! If this is not possible, please use the [2]gnatsweb interface. Make ! sure you include an e-mail address, so we can inform you when the ! status of your report changes. ! Both techniques use the same bug database. ! Filling out a report The bug report form provides a number of fields; you'll need to fill-out most of those (as indicated below) to provide a complete --- 1,23 ---- ! Submitting Bug Reports using GNATS ! gnatsweb and gccbug ! GNATS, the GNU bug tracking system, is used to track GCC bug reports. ! Before submitting a bug report, please read the [1]general ! instructions. ! The preferred way to submit a bug report is by means of the ! [2]gnatsweb interface. Make sure you include an e-mail address, so we ! can inform you when the status of your report changes. ! Another way is to use the gccbug program that is automatically ! installed with current versions of GCC, which submits the bug report ! by e-mail. ! Both techniques use the same GNATS bug database. ! ! Filling out a report The bug report form provides a number of fields; you'll need to fill-out most of those (as indicated below) to provide a complete diff -Nrc3pad gcc-3.2/INSTALL/binaries.html gcc-3.2.1/INSTALL/binaries.html *** gcc-3.2/INSTALL/binaries.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/binaries.html Tue Nov 19 18:11:50 2002 *************** contact their makers. *** 20,26 ****
  • AIX: --- 20,26 ----
    • AIX: *************** not contain the latest version of GCC, b *** 64,70 **** bootstrapping the compiler. An updated version of that disk is in the works. !

      Return to the GCC Installation page --- 64,70 ---- bootstrapping the compiler. An updated version of that disk is in the works. !


      Return to the GCC Installation page diff -Nrc3pad gcc-3.2/INSTALL/build.html gcc-3.2.1/INSTALL/build.html *** gcc-3.2/INSTALL/build.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/build.html Tue Nov 19 18:11:50 2002 *************** soon as they are no longer needed. *** 88,98 ****

      If you want to save additional space during the bootstrap and in the final installation as well, you can build the compiler binaries ! without debugging information with make CFLAGS='-O' LIBCFLAGS='-g ! -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap. This will save roughly 40% of disk space both for the bootstrap and the final installation. (Libraries will still contain debugging information.)

      If you wish to use non-default GCC flags when compiling the stage2 and stage3 compilers, set BOOT_CFLAGS on the command line when doing make bootstrap. Non-default optimization flags are less well --- 88,101 ----

      If you want to save additional space during the bootstrap and in the final installation as well, you can build the compiler binaries ! without debugging information as in the following example. This will save roughly 40% of disk space both for the bootstrap and the final installation. (Libraries will still contain debugging information.) +

           make CFLAGS='-O' LIBCFLAGS='-g -O2' \
      +        LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
      + 
      +

      If you wish to use non-default GCC flags when compiling the stage2 and stage3 compilers, set BOOT_CFLAGS on the command line when doing make bootstrap. Non-default optimization flags are less well *************** used to disable building the Ada front e *** 184,192 ****

      Additional build tools (such as gnatmake) or a working GNAT run-time library installation are usually not required. However, ! if you want to boostrap the compiler using a minimal version of GNAT, you have to issue the following commands before invoking make ! boostrap (this assumes that you start with an unmodified and consistent source distribution):

          cd srcdir/gcc/ada
      --- 187,195 ----
        
        

      Additional build tools (such as gnatmake) or a working GNAT run-time library installation are usually not required. However, ! if you want to bootstrap the compiler using a minimal version of GNAT, you have to issue the following commands before invoking make ! bootstrap (this assumes that you start with an unmodified and consistent source distribution):

          cd srcdir/gcc/ada
      *************** following commands (assuming make<
      *** 215,221 ****
        

      Currently, when compiling the Ada front end, you cannot use the parallel build feature described in the previous section. !


      Return to the GCC Installation page --- 218,224 ----

      Currently, when compiling the Ada front end, you cannot use the parallel build feature described in the previous section. !


      Return to the GCC Installation page diff -Nrc3pad gcc-3.2/INSTALL/configure.html gcc-3.2.1/INSTALL/configure.html *** gcc-3.2/INSTALL/configure.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/configure.html Tue Nov 19 18:11:50 2002 *************** subdirectory of objdir or vic *** 88,95 ****

      These additional options control where certain parts of the distribution are installed. Normally you should not need to use these options.

      ! !
      --exec-prefix=dirname
      Specify the toplevel installation directory for architecture-dependent files. The default is prefix. --- 88,94 ----

      These additional options control where certain parts of the distribution are installed. Normally you should not need to use these options.

      !
      --exec-prefix=dirname
      Specify the toplevel installation directory for architecture-dependent files. The default is prefix. *************** complex conversion patterns. As a basic *** 155,163 **** suffix) are prepended (appended) before further transformations can happen with a special transformation script pattern. !

      As currently implemented, this options only take effect for native builds; cross compiler binaries' names are not transformed even when a ! transformation is explicitly asked for by one of this options.

      For native builds, some of the installed programs are also installed with the target alias in front of their name, as in --- 154,162 ---- suffix) are prepended (appended) before further transformations can happen with a special transformation script pattern. !

      As currently implemented, these options only take effect for native builds; cross compiler binaries' names are not transformed even when a ! transformation is explicitly asked for by one of these options.

      For native builds, some of the installed programs are also installed with the target alias in front of their name, as in *************** any in that directory--are not part of G *** 193,198 **** --- 192,234 ---- programs--perhaps many others. (GCC installs its own header files in another directory which is based on the --prefix value.) +

      Both the local-prefix include directory and the GCC-prefix include + directory are part of GCC's "system include" directories. Although these + two directories are not fixed, they need to be searched in the proper + order for the correct processing of the include_next directive. The + local-prefix include directory is searched before the GCC-prefix + include directory. Another characteristic of system include directories + is that pedantic warnings are turned off for headers in these directories. + +

      Some autoconf macros add -I directory options to the + compiler command line, to ensure that directories containing installed + packages' headers are searched. When directory is one of GCC's + system include directories, GCC will ignore the option so that system + directories continue to be processed in the correct order. This + may result in a search order different from what was specified but the + directory will still be searched. + +

      GCC automatically searches for ordinary libraries using + GCC_EXEC_PREFIX. Thus, when the same installation prefix is + used for both GCC and packages, GCC will automatically search for + both headers and libraries. This provides a configuration that is + easy to use. GCC behaves in a manner similar to that when it is + installed as a system compiler in /usr. + +

      Sites that need to install multiple versions of GCC may not want to + use the above simple configuration. It is possible to use the + --program-prefix, --program-suffix and + --program-transform-name options to install multiple versions + into a single directory, but it may be simpler to use different prefixes + and the --with-local-prefix option to specify the location of the + site-specific files for each version. It will then be necessary for + users to specify explicitly the location of local site libraries + (e.g., with LIBRARY_PATH). + +

      The same value can be used for both --with-local-prefix and + --prefix provided it is not /usr. This can be used + to avoid the default search of /usr/local/include. +

      Do not specify /usr as the --with-local-prefix! The directory you use for --with-local-prefix must not contain any of the system's standard header files. If it did contain *************** configured with --with-gnu-as--with-as=pathname. !

      The systems where it makes a difference whether you use the GNU assembler are ! hppa1.0-any-any, hppa1.1-any-any, ! i386-any-sysv, i386-any-isc, ! i860-any-bsd, m68k-bull-sysv, ! m68k-hp-hpux, m68k-sony-bsd, ! m68k-altos-sysv, m68000-hp-hpux, ! m68000-att-sysv, any-lynx-lynxos, ! and mips-any. ! On any other system, --with-gnu-as has no effect.

      On the systems listed above (except for the HP-PA, for ISC on the 386, and for mips-sgi-irix5.*), if you use the GNU assembler, --- 272,296 ---- assembler installed on your system, you may want to use this option in connection with --with-as=pathname. !

      The following systems are the only ones where it makes a difference ! whether you use the GNU assembler. On any other system, ! --with-gnu-as has no effect. ! !

        !
      • hppa1.0-any-any !
      • hppa1.1-any-any !
      • i386-any-sysv !
      • i386-any-isc !
      • i860-any-bsd !
      • m68k-bull-sysv !
      • m68k-hp-hpux !
      • m68k-sony-bsd !
      • m68k-altos-sysv !
      • m68000-hp-hpux !
      • m68000-att-sysv !
      • any-lynx-lynxos !
      • mips-any !

      On the systems listed above (except for the HP-PA, for ISC on the 386, and for mips-sgi-irix5.*), if you use the GNU assembler, *************** predefined set of them. *** 318,325 ****

      Some targets provide finer-grained control over which multilibs are built (e.g., --disable-softfloat):

      ! !
      arc-*-elf*
      biendian.
      arm-*-* --- 364,370 ----

      Some targets provide finer-grained control over which multilibs are built (e.g., --disable-softfloat):

      !
      arc-*-elf*
      biendian.
      arm-*-* *************** forward to maintain the port. *** 544,553 ****
      --with-headers=dir
      Specifies a directory which has target include files. ! This options is required when building a cross compiler, if prefix/target/sys-include doesn't pre-exist. These include files will be copied into the gcc install directory. ! Fixincludes will be run on these files to make them compatible with GCC.
      --with-libs=``dir1 dir2 ... dirN''
      Specifies a list of directories which contain the target runtime --- 589,598 ----
      --with-headers=dir
      Specifies a directory which has target include files. ! This option is required when building a cross compiler, if prefix/target/sys-include doesn't pre-exist. These include files will be copied into the gcc install directory. ! fixincludes will be run on these files to make them compatible with GCC.
      --with-libs=``dir1 dir2 ... dirN''
      Specifies a list of directories which contain the target runtime *************** omitted from libgcc.a on th *** 564,570 **** --disable option and that each --with option has a corresponding --without option. !

      Return to the GCC Installation page --- 609,615 ---- --disable option and that each --with option has a corresponding --without option. !


      Return to the GCC Installation page diff -Nrc3pad gcc-3.2/INSTALL/download.html gcc-3.2.1/INSTALL/download.html *** gcc-3.2/INSTALL/download.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/download.html Tue Nov 19 18:11:50 2002 *************** components of the binutils you intend to *** 39,45 **** (bfd, binutils, gas, gprof, ld, opcodes, ...) to the directory containing the GCC sources. !


      Return to the GCC Installation page --- 39,45 ---- (bfd, binutils, gas, gprof, ld, opcodes, ...) to the directory containing the GCC sources. !


      Return to the GCC Installation page diff -Nrc3pad gcc-3.2/INSTALL/finalinstall.html gcc-3.2.1/INSTALL/finalinstall.html *** gcc-3.2/INSTALL/finalinstall.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/finalinstall.html Tue Nov 19 18:11:50 2002 *************** parts of the compiler in libd *** 27,36 **** info format in infodir (normally prefix/info).

      If you built a released version of GCC using make bootstrap then please ! quickly review the build status page for ! 3.1, ! 3.0, or ! 2.95. If your system is not listed for the version of GCC that you built, send a note to gcc@gcc.gnu.org indicating --- 27,34 ---- info format in infodir (normally prefix/info).

      If you built a released version of GCC using make bootstrap then please ! quickly review the build status page for your release, available from ! http://gcc.gnu.org/buildstat.html. If your system is not listed for the version of GCC that you built, send a note to gcc@gcc.gnu.org indicating *************** printing with programs such as dvi *** 88,94 **** buy printed manuals from the Free Software Foundation, though such manuals may not be for the most recent version of GCC. !


      Return to the GCC Installation page --- 86,92 ---- buy printed manuals from the Free Software Foundation, though such manuals may not be for the most recent version of GCC. !


      Return to the GCC Installation page diff -Nrc3pad gcc-3.2/INSTALL/gfdl.html gcc-3.2.1/INSTALL/gfdl.html *** gcc-3.2/INSTALL/gfdl.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/gfdl.html Tue Nov 19 18:11:50 2002 *************** recommend releasing these examples in pa *** 373,380 **** free software license, such as the GNU General Public License, to permit their use in free software. !

      !

      Return to the GCC Installation page --- 373,379 ---- 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.2/INSTALL/index.html gcc-3.2.1/INSTALL/index.html *** gcc-3.2/INSTALL/index.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/index.html Tue Nov 19 18:11:50 2002 *************** more binaries exist that use them. *** 48,54 **** which are mostly obsolete but still contain some information which has not yet been merged into the main part of this manual. !


      Return to the GCC Installation page --- 48,54 ---- which are mostly obsolete but still contain some information which has not yet been merged into the main part of this manual. !


      Return to the GCC Installation page diff -Nrc3pad gcc-3.2/INSTALL/old.html gcc-3.2.1/INSTALL/old.html *** gcc-3.2/INSTALL/old.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/old.html Tue Nov 19 18:11:50 2002 *************** by vmsconfig.com) to define *** 602,609 ****

      QSORT_WORKAROUND is always defined when GNU CC is compiled with VAX C, to avoid a problem in case gcclib.olb is not yet available. !

      !

      Return to the GCC Installation page --- 602,608 ----

      QSORT_WORKAROUND is always defined when GNU CC is compiled with VAX C, to avoid a problem in case gcclib.olb is not yet available. !


      Return to the GCC Installation page diff -Nrc3pad gcc-3.2/INSTALL/specific.html gcc-3.2.1/INSTALL/specific.html *** gcc-3.2/INSTALL/specific.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/specific.html Tue Nov 19 18:11:50 2002 *************** GNU Compiler Collection on your machine. *** 119,125 ****

    !

    1750a-*-*

    --- 119,125 ----
!

1750a-*-*

*************** means that type char is rep *** 160,167 **** The 1750A's "Load/Store Upper/Lower Byte" instructions are not used by GCC. !

!

a29k

--- 160,166 ---- The 1750A's "Load/Store Upper/Lower Byte" instructions are not used by GCC. !

a29k

*************** in GCC 3.1. *** 175,189 ****

You may need to make a variant of the file a29k.h for your particular configuration. !

!

a29k-*-bsd

AMD Am29050 used in a system running a variant of BSD Unix. !

!

alpha*-*-*

--- 174,186 ----

You may need to make a variant of the file a29k.h for your particular configuration. !


a29k-*-bsd

AMD Am29050 used in a system running a variant of BSD Unix. !


alpha*-*-*

*************** Previous binutils releases had a number *** 197,204 **** debugging information, not the least of which is incorrect linking of shared libraries. !

!

alpha*-dec-osf*

--- 194,200 ---- debugging information, not the least of which is incorrect linking of shared libraries. !

alpha*-dec-osf*

*************** Tru64 UNIX) operating system, for exampl *** 209,214 **** --- 205,217 ----

Support for versions before alpha*-dec-osf4 is obsoleted in GCC 3.1. (These are the versions which identify themselves as DEC OSF/1.) +

In Digital Unix V4.0, virtual memory exhausted bootstrap failures + may be fixed by configuring with --with-gc=simple, + reconfiguring Kernel Virtual Memory and Swap parameters + per the /usr/sbin/sys_check Tuning Suggestions, + or applying the patch in + http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html. +

In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not currently (2001-06-13) work with mips-tfile. As a workaround, we need to use the old assembler, invoked via the barely documented *************** different depending on whether or not !


alphaev5-cray-unicosmk*

--- 275,281 ---- DBX. DEC is now aware of this problem with the assembler and hopes to provide a fix shortly. !

alphaev5-cray-unicosmk*

*************** need to tell GCC where to find the assem *** 290,313 **** simplest way to do so is by providing --with-as and --with-ld to configure, e.g. !

configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld ! --enable-languages=c

The comparison test during make bootstrap fails on Unicos/Mk because the assembler inserts timestamps into object files. You should be able to work around this by doing make all after getting this failure. !

!

arc-*-elf

Argonaut ARC processor. This configuration is intended for embedded systems. !

!

arm-*-aout

--- 292,314 ---- simplest way to do so is by providing --with-as and --with-ld to configure, e.g. !
    configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
!       --enable-languages=c
! 

The comparison test during make bootstrap fails on Unicos/Mk because the assembler inserts timestamps into object files. You should be able to work around this by doing make all after getting this failure. !


arc-*-elf

Argonaut ARC processor. This configuration is intended for embedded systems. !


arm-*-aout

*************** produce a.out format object *** 319,340 ****

You may need to make a variant of the file arm.h for your particular configuration. !

!

arm-*-elf

This configuration is intended for embedded systems. !

!

arm*-*-linux-gnu

We require GNU binutils 2.10 or newer. !

!

arm-*-riscix

--- 320,338 ----

You may need to make a variant of the file arm.h for your particular configuration. !


arm-*-elf

This configuration is intended for embedded systems. !


arm*-*-linux-gnu

We require GNU binutils 2.10 or newer. !


arm-*-riscix

*************** debugging, pass --with-gnu-asYou will need to install GNU sed before you can run configure. !

!

avr

--- 349,355 ----

You will need to install GNU sed before you can run configure. !


avr

*************** can also be obtained from: *** 379,386 ****

indicates that you should upgrade to a newer version of the binutils. !

!

c4x

--- 376,382 ----

indicates that you should upgrade to a newer version of the binutils. !


c4x

*************** can also be obtained from: *** 401,408 ****
  • http://www.elec.canterbury.ac.nz/c4x/ !

    !

    CRIS

    --- 397,403 ----
  • http://www.elec.canterbury.ac.nz/c4x/ !

    CRIS

    *************** or newer. For cris-axis-linux-gnu *** 433,440 **** information about this platform is available at http://developer.axis.com/. !

    !

    DOS

    --- 428,434 ---- information about this platform is available at http://developer.axis.com/. !

    DOS

    *************** any MSDOS compiler except itself. You n *** 445,459 **** compilation package DJGPP, which includes binaries as well as sources, and includes all the necessary compilation tools and libraries. !

    !

    dsp16xx

    A port to the AT&T DSP1610 family of processors. !

    !

    *-*-freebsd*

    --- 439,451 ---- compilation package DJGPP, which includes binaries as well as sources, and includes all the necessary compilation tools and libraries. !

    dsp16xx

    A port to the AT&T DSP1610 family of processors. !


    *-*-freebsd*

    *************** results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4 *** 483,505 ****

    In principle, --enable-threads is now compatible with --enable-libgcj on FreeBSD. However, it has only been built ! and tested on i386-*-freebsd4.5 and alpha-*-freebsd5.0. The static library may be incorrectly built (symbols are missing at link time). There is a rare timing-based startup hang (probably involves an assupmtion about the thread library). Multi-threaded boehm-gc (required for libjava) exposes severe threaded signal-handling bugs on FreeBSD before 4.5-RELEASE. The alpha port may not fully bootstrap without some manual ! intervention: gcjh will crash with a floating-point exception while generating java/lang/Double.h (just copy the version built on ! i386-*-freebsd* and rerun the top-level gmake with no arguments and it should properly complete the bootstrap). Other CPU architectures supported by FreeBSD will require additional configuration tuning in, at the very least, both boehm-gc and libffi.

    Shared libgcc_s.so is now built and installed by default. !

    !

    elxsi-elxsi-bsd

    --- 475,498 ----

    In principle, --enable-threads is now compatible with --enable-libgcj on FreeBSD. However, it has only been built ! and tested on i386-*-freebsd4.5 and alpha-*-freebsd5.0. ! The static library may be incorrectly built (symbols are missing at link time). There is a rare timing-based startup hang (probably involves an assupmtion about the thread library). Multi-threaded boehm-gc (required for libjava) exposes severe threaded signal-handling bugs on FreeBSD before 4.5-RELEASE. The alpha port may not fully bootstrap without some manual ! intervention: gcjh will crash with a floating-point exception while generating java/lang/Double.h (just copy the version built on ! i386-*-freebsd* and rerun the top-level gmake with no ! arguments and it should properly complete the bootstrap). Other CPU architectures supported by FreeBSD will require additional configuration tuning in, at the very least, both boehm-gc and libffi.

    Shared libgcc_s.so is now built and installed by default. !


    elxsi-elxsi-bsd

    *************** compiling GCC. Please contact h8300-hms --- 501,507 ----

    Support for this processor is obsoleted in GCC 3.1. !


    h8300-hms

    *************** All code must be recompiled. The callin *** 522,535 **** first three arguments in function calls in registers. Structures are no longer a multiple of 2 bytes. !

    !

    hppa*-hp-hpux*

    We highly recommend using gas/binutils 2.8 or newer on all hppa platforms; you may encounter a variety of problems when using the HP ! assembler.

    Specifically, -g does not work on HP-UX (since that system uses a peculiar debugging format which GCC does not know about), unless you --- 514,527 ---- first three arguments in function calls in registers. Structures are no longer a multiple of 2 bytes. !


    hppa*-hp-hpux*

    We highly recommend using gas/binutils 2.8 or newer on all hppa platforms; you may encounter a variety of problems when using the HP ! assembler. The HP assembler does not work with the hppa64-hp-hpux11* ! port.

    Specifically, -g does not work on HP-UX (since that system uses a peculiar debugging format which GCC does not know about), unless you *************** use GAS and GDB and configure GCC with t *** 537,550 **** --with-gnu-as and --with-as=... options. !

    If you wish to use pa-risc 2.0 architecture support, you must use either ! the HP assembler, gas/binutils 2.11 or a recent snapshot of gas.

    More specific information to hppa*-hp-hpux* targets follows. !

    !

    hppa*-hp-hpux9

    --- 529,542 ---- --with-gnu-as and --with-as=... options. !

    If you wish to use the pa-risc 2.0 architecture support with a 32-bit ! runtime, you must use either the HP assembler, gas/binutils 2.11 or newer, ! or a recent snapshot of gas.

    More specific information to hppa*-hp-hpux* targets follows. !


    hppa*-hp-hpux9

    *************** shared libraries from working. Use the *** 557,564 **** shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to /bin/ksh in your environment. !

    !

    hppa*-hp-hpux10

    --- 549,555 ---- shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to /bin/ksh in your environment. !

    hppa*-hp-hpux10

    *************** during a make bootstrap. Y *** 579,608 **** saying make all after getting the failure from make bootstrap. !

    !

    hppa*-hp-hpux11

    !

    GCC 3.0 and up support HP-UX 11. You must use GNU binutils 2.11 or above on ! this platform. Thread support is not currently implemented for this ! platform, so --enable-threads does not work. ! See http://gcc.gnu.org/ml/gcc-prs/2002-01/msg00551.html ! and http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html. ! GCC 2.95.x is not supported under HP-UX 11 and cannot be used to compile GCC 3.0 and up. Refer to binaries for information about obtaining precompiled GCC binaries for HP-UX. !

    !

    i370-*-*

    This port is very preliminary and has many known bugs. We hope to have a higher-quality port for this machine soon. !

    !

    *-*-linux-gnu

    --- 570,621 ---- saying make all after getting the failure from make bootstrap. !

    hppa*-hp-hpux11

    !

    GCC 3.0 and up support HP-UX 11. On 64-bit capable systems, there ! are two distinct ports. The hppa2.0w-hp-hpux11* port generates ! code for the 32-bit pa-risc runtime architecture. It uses the HP ! linker and is currently the default selected by config.guess. The ! optional hppa64-hp-hpux11* port generates 64-bit code for the ! pa-risc 2.0 architecture. It must be explicitly selected using the ! --host=hppa64-hp-hpux11* configure option. Different prefixes ! must be used if both ports are to be installed on the same system. ! !

    You must use GNU binutils 2.11 or above with the 32-bit port. Thread ! support is not currently implemented, so --enable-threads does ! not work. See: ! !

    ! !

    GCC 2.95.x is not supported under HP-UX 11 and cannot be used to compile GCC 3.0 and up. Refer to binaries for information about obtaining precompiled GCC binaries for HP-UX. !

    GNU binutils 2.13 or later is recommended with the 64-bit port. ! The HP assembler is not supported. It is highly recommended ! that the GNU linker be used as well. Either binutils must be built ! prior to gcc, or a binary distribution of gcc or binutils must be ! obtained for the initial builds. When starting with a HP compiler, ! it is preferable to use the ANSI compiler as the bundled compiler ! only supports traditional C. Bootstrapping with the bundled compiler ! is tested infrequently and problems often arise because of the subtle ! differences in semantics between traditional and ISO C. There also ! have been problems reported with various binary distributions. This ! port still is undergoing significant development. ! !


    i370-*-*

    This port is very preliminary and has many known bugs. We hope to have a higher-quality port for this machine soon. !


    *-*-linux-gnu

    *************** out-of-the-box. You'll get compile erro *** 611,618 **** The patch glibc-2.2.patch, that is to be applied in the GCC source tree, fixes the compatibility problems. -

    -

    Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync --- 624,629 ---- *************** strongly advise to wait for glibc 2.2.4 *** 624,631 **** glibc 2.2.4 whether patches for GCC 3.0 are needed. You can use glibc 2.2.3 with GCC 3.0, just do not try to recompile it. !

    !

    i?86-*-linux*oldld

    --- 635,641 ---- glibc 2.2.4 whether patches for GCC 3.0 are needed. You can use glibc 2.2.3 with GCC 3.0, just do not try to recompile it. !

    i?86-*-linux*oldld

    *************** installed. *** 635,642 ****

    This configuration is obsoleted in GCC 3.1. !

    !

    i?86-*-linux*aout

    --- 645,651 ----

    This configuration is obsoleted in GCC 3.1. !


    i?86-*-linux*aout

    *************** installed. *** 644,651 **** GNU systems. This configuration is being superseded. You must use gas/binutils version 2.5.2 or later. !

    !

    i?86-*-linux*

    --- 653,659 ---- GNU systems. This configuration is being superseded. You must use gas/binutils version 2.5.2 or later. !

    i?86-*-linux*

    *************** gas/binutils version 2.5.2 or later. *** 655,677 **** possible you have a hardware problem. Further information on this can be found on www.bitwizard.nl. !

    !

    i?86-*-sco

    Compilation with RCC is recommended. Also, it may be a good idea to link with GNU malloc instead of the malloc that comes with the system. !

    !

    i?86-*-sco3.2v4

    Use this configuration for SCO release 3.2 version 4. !

    !

    i?86-*-sco3.2v5*

    --- 663,682 ---- possible you have a hardware problem. Further information on this can be found on www.bitwizard.nl. !

    i?86-*-sco

    Compilation with RCC is recommended. Also, it may be a good idea to link with GNU malloc instead of the malloc that comes with the system. !


    i?86-*-sco3.2v4

    Use this configuration for SCO release 3.2 version 4. !


    i?86-*-sco3.2v5*

    *************** backtrace with a fault occurring in /usr/lib/ld.so.1
    . This problem has been reported to SCO engineering and will hopefully be addressed in later releases. !

    !

    i?86-*-udk

    --- 749,755 ---- running as /usr/lib/ld.so.1. This problem has been reported to SCO engineering and will hopefully be addressed in later releases. !

    i?86-*-udk

    *************** from the right place) while making the t *** 764,771 **** building a cross compiler. The easiest way to do this is with a configure command like this: !

    CC=/udk/usr/ccs/bin/cc /your/path/to/gcc/configure ! --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-

    You should substitute i686 in the above command with the appropriate processor for your host. --- 768,776 ---- building a cross compiler. The easiest way to do this is with a configure command like this: !

        CC=/udk/usr/ccs/bin/cc /your/path/to/gcc/configure \
    !       --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
    ! 

    You should substitute i686 in the above command with the appropriate processor for your host. *************** example, to invoke the C compiler, you w *** 777,784 **** They will coexist peacefully with any native-target GCC tools you may have installed. !

    !

    i?86-*-isc

    --- 782,788 ---- They will coexist peacefully with any native-target GCC tools you may have installed. !

    i?86-*-isc

    *************** comes with the system. *** 790,797 ****

    In ISC version 4.1, sed core dumps when building deduced.h. Use the version of sed from version 4.0. !

    !

    i?86-ibm-aix

    --- 794,800 ----

    In ISC version 4.1, sed core dumps when building deduced.h. Use the version of sed from version 4.0. !


    i?86-ibm-aix

    *************** comes with the system. *** 800,807 ****

    You need to use GAS version 2.1 or later, and LD from GNU binutils version 2.2 or later. !

    !

    i?86-sequent-bsd

    --- 803,809 ----

    You need to use GAS version 2.1 or later, and LD from GNU binutils version 2.2 or later. !


    i?86-sequent-bsd

    *************** GNU binutils version 2.2 or later. *** 809,816 ****

    Go to the Berkeley universe before compiling. !

    !

    i?86-sequent-ptx1*, i?86-sequent-ptx2*, i?86-sequent-sysv3*

    --- 811,817 ----

    Go to the Berkeley universe before compiling. !


    i?86-sequent-ptx1*, i?86-sequent-ptx2*, i?86-sequent-sysv3*

    *************** GNU binutils version 2.2 or later. *** 822,829 **** If you encounter this problem, upgrade your operating system or use bash (the GNU shell) to run fixproto. !

    !

    i860-intel-osf*

    --- 823,829 ---- If you encounter this problem, upgrade your operating system or use bash (the GNU shell) to run fixproto. !

    i860-intel-osf*

    *************** extern int vsprintf(char *, const char *** 860,867 ****

    These problems don't exist in operating system version 1.1. !

    !

    ia64-*-linux

    --- 860,866 ----

    These problems don't exist in operating system version 1.1. !


    ia64-*-linux

    *************** GCC 3.0.2 is recommended for compiling l *** 885,892 **** GCC 3.0.2 is believed to be fully ABI compliant, and hence no more major ABI changes are expected. !

    !

    *-lynx-lynxos

    --- 884,890 ---- GCC 3.0.2 is believed to be fully ABI compliant, and hence no more major ABI changes are expected. !

    *-lynx-lynxos

    *************** You can tell GCC to use the GNU assemble *** 897,904 **** COFF format object files and executables; otherwise GCC will use the installed tools, which produce a.out format executables. !

    !

    *-ibm-aix*

    --- 895,901 ---- COFF format object files and executables; otherwise GCC will use the installed tools, which produce a.out format executables. !

    *-ibm-aix*

    *************** interoperate with GCC. *** 926,931 **** --- 923,954 ----

    Building libstdc++.a requires a fix for a AIX Assembler bug APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). +

    libstdc++ in GCC 3.2 increments the major version number of the + shared object and GCC installation places the libstdc++.a + shared library in a common location which will overwrite the GCC 3.1 + version of the shared library. Applications either need to be + re-linked against the new shared library or the GCC 3.1 version of the + libstdc++ shared object needs to be available to the AIX + runtime loader. The GCC 3.1 libstdc++.so.4 shared object can + be installed for runtime dynamic loading using the following steps to + set the F_LOADONLY flag in the shared object for each + multilib libstdc++.a installed: + +

    Extract the shared object from each the GCC 3.1 libstdc++.a + archive: +

       % ar -x libstdc++.a libstdc++.so.4
    + 
    + +

    Enable the F_LOADONLY flag so that the shared object will be + available for runtime dynamic loading, but not linking: +

       % strip -e libstdc++.so.4
    + 
    + +

    Archive the runtime-only shared object in the GCC 3.2 + libstdc++.a archive: +

       % ar -q libstdc++.a libstdc++.so.4
    + 
    +

    Linking executables and shared libraries may produce warnings of duplicate symbols. The assembly files generated by GCC for AIX always have included multiple symbol definitions for certain global variable *************** both Power or PowerPC processors. *** 977,992 ****

    A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type. !

    !

    m32r-*-elf

    Mitsubishi M32R processor. This configuration is intended for embedded systems. !

    !

    m68000-hp-bsd

    --- 1000,1013 ----

    A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type. !


    m32r-*-elf

    Mitsubishi M32R processor. This configuration is intended for embedded systems. !


    m68000-hp-bsd

    *************** This configuration is intended for embed *** 994,1017 **** with this system cannot compile GCC; contact law@cygnus.com to get binaries of GCC for bootstrapping. !

    !

    m6811-elf

    Motorola 68HC11 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. !

    !

    m6812-elf

    Motorola 68HC12 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. !

    !

    m68k-altos

    --- 1015,1035 ---- with this system cannot compile GCC; contact law@cygnus.com to get binaries of GCC for bootstrapping. !

    m6811-elf

    Motorola 68HC11 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. !


    m6812-elf

    Motorola 68HC12 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. !


    m68k-altos

    *************** applications. There are no standard Uni *** 1020,1027 ****

    You must use the GNU assembler, linker and debugger. Also, you must fix a kernel bug. !

    !

    m68k-apple-aux

    --- 1038,1044 ----

    You must use the GNU assembler, linker and debugger. Also, you must fix a kernel bug. !


    m68k-apple-aux

    *************** for bootstrapping on jagubox.gsfc. *** 1040,1047 **** You will also a patched version of /bin/ld there that raises some of the arbitrary limits found in the original. !

    !

    m68k-att-sysv

    --- 1057,1063 ---- You will also a patched version of /bin/ld there that raises some of the arbitrary limits found in the original. !

    m68k-att-sysv

    *************** You will need to get a previous version *** 1051,1058 **** bootstrap. Binaries are available from the OSU-CIS archive, at ftp://archive.cis.ohio-state.edu/pub/att7300/. !

    !

    m68k-bull-sysv

    --- 1067,1073 ---- bootstrap. Binaries are available from the OSU-CIS archive, at ftp://archive.cis.ohio-state.edu/pub/att7300/. !

    m68k-bull-sysv

    *************** by providing --with-gnu-as --stabs *** 1067,1074 **** assembler or for availability of the DPX/2 port of GAS, contact F.Pierresteguy@frcl.bull.fr. !

    !

    m68k-crds-unos

    --- 1082,1088 ---- assembler or for availability of the DPX/2 port of GAS, contact F.Pierresteguy@frcl.bull.fr. !

    m68k-crds-unos

    *************** a lot of memory. 5 Mb is barely enough *** 1105,1112 **** If linking cc1 fails, try putting the object files into a library and linking from that library. !

    !

    m68k-hp-hpux

    --- 1119,1125 ---- If linking cc1 fails, try putting the object files into a library and linking from that library. !

    m68k-hp-hpux

    *************** to look like: *** 1160,1167 ****
    #!/bin/ksh
      
    !

    !

    m68k-*-nextstep*

    --- 1173,1179 ----
    #!/bin/ksh
      
    !

    m68k-*-nextstep*

    *************** for this sequence to work. *** 1208,1215 **** make bootstrap3 !

    !

    m68k-ncr-*

    --- 1220,1226 ---- make bootstrap3 !

    m68k-ncr-*

    *************** to the configuration file: *** 1223,1230 ****
    MAXUMEM = 4096
      
    !

    !

    m68k-sun

    --- 1234,1240 ----
    MAXUMEM = 4096
      
    !

    m68k-sun

    *************** to the configuration file: *** 1232,1246 **** default, because programs that establish signal handlers for floating point traps inherently cannot work with the FPA. !

    !

    m68k-sun-sunos4.1.1

    It is reported that you may need the GNU assembler on this platform. !

    !

    m88k-*-svr3

    --- 1242,1254 ---- default, because programs that establish signal handlers for floating point traps inherently cannot work with the FPA. !

    m68k-sun-sunos4.1.1

    It is reported that you may need the GNU assembler on this platform. !


    m88k-*-svr3

    *************** stage 3 and 4 compilers may be usable. *** 1258,1265 ****

    It is best, however, to use an older version of GCC for bootstrapping if you have one. !

    !

    m88k-*-dgux

    --- 1266,1272 ----

    It is best, however, to use an older version of GCC for bootstrapping if you have one. !


    m88k-*-dgux

    *************** You set the software development environ *** 1278,1285 ****

    If you do not specify a configuration name, configure guesses the configuration based on the current software development environment. !

    !

    m88k-tektronix-sysv3

    --- 1285,1291 ----

    If you do not specify a configuration name, configure guesses the configuration based on the current software development environment. !


    m88k-tektronix-sysv3

    *************** directory, start from a fresh reboot, or *** 1294,1301 **** Otherwise you may have trouble getting clean comparisons between stages. !

    !

    mips-*-*

    --- 1300,1306 ---- Otherwise you may have trouble getting clean comparisons between stages. !

    mips-*-*

    *************** Both of these options are automatically *** 1349,1356 **** If you override the CC make variable and use the MIPS compilers, you may need to add -Wf,-XNg1500 -Olimit 3000. !

    !

    mips-dec-*

    --- 1354,1360 ---- If you override the CC make variable and use the MIPS compilers, you may need to add -Wf,-XNg1500 -Olimit 3000. !

    mips-dec-*

    *************** Both of these options are automatically *** 1383,1390 **** If you override the CC make variable and use the MIPS compilers, you may need to add -Wf,-XNg1500 -Olimit 3000. !

    !

    mips-mips-riscos*

    --- 1387,1393 ---- If you override the CC make variable and use the MIPS compilers, you may need to add -Wf,-XNg1500 -Olimit 3000. !

    mips-mips-riscos*

    *************** for these platforms use the following co *** 1414,1421 ****
    mips-mips-riscosrevsysv4
    System V.4 configuration for RISC-OS, revision rev. !

    !

    mips-mips-riscosrevsysv
    System V.3 configuration for RISC-OS, revision rev. --- 1417,1423 ----
    mips-mips-riscosrevsysv4
    System V.4 configuration for RISC-OS, revision rev. !

    mips-mips-riscosrevsysv
    System V.3 configuration for RISC-OS, revision rev. *************** RISC-OS to use. You must reconfigure GC *** 1425,1432 **** RISC-OS revision 4 to RISC-OS revision 5. This has the effect of avoiding a linker bug. !

    !

    mips-sgi-irix4

    --- 1427,1433 ---- RISC-OS revision 4 to RISC-OS revision 5. This has the effect of avoiding a linker bug. !

    mips-sgi-irix4

    *************** ignored. *** 1457,1464 ****
      warning: foo.o does not have gp tables for all its sections.
      
    !

    !

    mips-sgi-irix5

    --- 1458,1464 ----
      warning: foo.o does not have gp tables for all its sections.
      
    !

    mips-sgi-irix5

    *************** other platforms. It has been reported t *** 1502,1509 **** however, you may have success with smake on IRIX 5.2 if you do not have GNU make available. !

    !

    mips-sgi-irix6

    --- 1502,1508 ---- however, you may have success with smake on IRIX 5.2 if you do not have GNU make available. !

    mips-sgi-irix6

    *************** bug is fixed, GCC contains workarounds f *** 1596,1603 ****

    See http://freeware.sgi.com/ for more information about using GCC on IRIX platforms. !

    !

    mips-sony-sysv

    --- 1595,1601 ----

    See http://freeware.sgi.com/ for more information about using GCC on IRIX platforms. !


    mips-sony-sysv

    *************** information about using GCC on IRIX plat *** 1607,1614 **** COFF). In particular, the linker does not like the code generated by GCC when shared libraries are linked in. !

    !

    ns32k-encore

    --- 1605,1611 ---- COFF). In particular, the linker does not like the code generated by GCC when shared libraries are linked in. !

    ns32k-encore

    *************** GCC when shared libraries are linked in. *** 1616,1623 ****

    Encore ns32000 system. Encore systems are supported only under BSD. !

    !

    ns32k-*-genix

    --- 1613,1619 ----

    Encore ns32000 system. Encore systems are supported only under BSD. !


    ns32k-*-genix

    *************** in GCC 3.1. *** 1627,1634 ****

    Genix has bugs in alloca and malloc; you must get the compiled versions of these from GNU Emacs. !

    !

    ns32k-sequent

    --- 1623,1629 ----

    Genix has bugs in alloca and malloc; you must get the compiled versions of these from GNU Emacs. !


    ns32k-sequent

    *************** compiled versions of these from GNU Emac *** 1636,1643 ****

    Go to the Berkeley universe before compiling. !

    !

    ns32k-utek

    --- 1631,1637 ----

    Go to the Berkeley universe before compiling. !


    ns32k-utek

    *************** GCC 3.1. *** 1647,1662 ****

    The C compiler that comes with this system cannot compile GCC; contact tektronix!reed!mason to get binaries of GCC for bootstrapping. !

    !

    powerpc-*-*

    You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type. !

    !

    powerpc-*-darwin*

    --- 1641,1654 ----

    The C compiler that comes with this system cannot compile GCC; contact tektronix!reed!mason to get binaries of GCC for bootstrapping. !


    powerpc-*-*

    You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type. !


    powerpc-*-darwin*

    *************** binaries are available at *** 1671,1677 **** registration required).

    Versions of the assembler prior to "cctools-364" cannot handle the ! 4-argument form of rlwinm and related mask-using instructions. Darwin 1.3 (Mac OS X 10.0) uses cctools-353 for instance. To get cctools-364, check out cctools with tag Apple-364, build it, and install the assembler as usr/bin/as. See --- 1663,1669 ---- registration required).

    Versions of the assembler prior to "cctools-364" cannot handle the ! 4-argument form of rlwinm and related mask-using instructions. Darwin 1.3 (Mac OS X 10.0) uses cctools-353 for instance. To get cctools-364, check out cctools with tag Apple-364, build it, and install the assembler as usr/bin/as. See *************** bootstrap, but to do it from the *** 1689,1712 **** number of extensions not available in a standard GCC release. These extensions are generally specific to Mac programming. !

    !

    powerpc-*-elf, powerpc-*-sysv4

    PowerPC system in big endian mode, running System V.4. !

    !

    powerpc-*-linux-gnu*

    You will need ! binutils 2.12.90.0.7 or newer for a working GCC. !

    !

    powerpc-*-netbsd*

    --- 1681,1701 ---- number of extensions not available in a standard GCC release. These extensions are generally specific to Mac programming. !

    powerpc-*-elf, powerpc-*-sysv4

    PowerPC system in big endian mode, running System V.4. !


    powerpc-*-linux-gnu*

    You will need ! binutils 2.13.90.0.10 or newer for a working GCC. !


    powerpc-*-netbsd*

    *************** or newer for a working GCC. *** 1714,1773 **** documentation you will need Texinfo version 4.1 (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. !

    !

    powerpc-*-eabisim

    Embedded PowerPC system in big endian mode for use in running under the PSIM simulator. !

    !

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

    !

    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

    --- 1703,1754 ---- documentation you will need Texinfo version 4.1 (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. !


    powerpc-*-eabisim

    Embedded PowerPC system in big endian mode for use in running under the PSIM simulator. !


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


    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

    *************** various files. These errors are minor d *** 1780,1801 **** floating-point constants and can be safely ignored; the stage 3 compiler is correct. !

    !

    s390-*-linux*

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

    !

    s390x-*-linux*

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

    !

    *-*-solaris2*

    --- 1761,1779 ---- floating-point constants and can be safely ignored; the stage 3 compiler is correct. !

    s390-*-linux*

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


    s390x-*-linux*

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


    *-*-solaris2*

    *************** will assume that any missing type is !

    sparc-sun-solaris2*

    --- 1821,1827 ---- 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC, 108653-22 for Intel) that fix this bug. !

    sparc-sun-solaris2*

    *************** information. *** 1856,1863 ****

    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: !

    /usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: ! error: can't compute value of an expression involving an external symbol.

    This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris 2.6 and has been fixed in later (5.x) versions of the assembler, --- 1833,1841 ----

    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: !

    /usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
    !   can't compute value of an expression involving an external symbol.
    ! 

    This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris 2.6 and has been fixed in later (5.x) versions of the assembler, *************** that supports only 32-bit binaries, one *** 1876,1883 **** --disable-multilib, since we will not be able to build the 64-bit target libraries. !

    !

    sparc-sun-solaris2.7

    --- 1854,1860 ---- --disable-multilib, since we will not be able to build the 64-bit target libraries. !

    sparc-sun-solaris2.7

    *************** the Solaris 7 Recommended Patch Cluster. *** 1914,1920 ****

    !


    sparc-sun-sunos4*

    --- 1891,1897 ----

    !


    sparc-sun-sunos4*

    *************** be due to a bug in sh. You *** 1932,1939 **** genflags or genoutput manually and then retrying the make. !

    !

    sparc-unknown-linux-gnulibc1

    --- 1909,1915 ---- genflags or genoutput manually and then retrying the make. !

    sparc-unknown-linux-gnulibc1

    *************** be due to a bug in sh. You *** 1941,1948 **** binutils 2.8.1.0.23 for this platform, too. !

    !

    sparc-*-linux*

    --- 1917,1923 ---- binutils 2.8.1.0.23 for this platform, too. !

    sparc-*-linux*

    *************** for this platform, too. *** 1950,1957 **** or newer on this platform. All earlier binutils and glibc releases mishandled unaligned relocations on sparc-*-* targets. !

    !

    sparc64-*-*

    --- 1925,1931 ---- or newer on this platform. All earlier binutils and glibc releases mishandled unaligned relocations on sparc-*-* targets. !

    sparc64-*-*

    *************** can use the sparc32 program *** 1961,1968 **** invocation with an environment that causes configure to recognize (via uname -a) the system as sparc-*-* instead. !

    !

    sparcv9-*-solaris2*

    --- 1935,1941 ---- invocation with an environment that causes configure to recognize (via uname -a) the system as sparc-*-* instead. !

    sparcv9-*-solaris2*

    *************** step in order to bootstrap this target w *** 1975,1982 ****

    -xildoff turns off the incremental linker, and -xarch=v9 specifies the v9 architecture to the Sun linker and assembler. !

    !

    *-*-sysv*

    --- 1948,1954 ----

    -xildoff turns off the incremental linker, and -xarch=v9 specifies the v9 architecture to the Sun linker and assembler. !


    *-*-sysv*

    *************** is said to work. Smaller values may als *** 2007,2022 **** /usr/ucb in PATH. The cc command in /usr/ucb uses libraries which have bugs. !

    !

    vax-dec-ultrix

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

    !

    we32k-*-*

    --- 1979,1992 ---- /usr/ucb in PATH. The cc command in /usr/ucb uses libraries which have bugs. !

    vax-dec-ultrix

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


    we32k-*-*

    *************** make CC=stage2/xgcc CFLAGS="-Bstage2/ -g *** 2052,2059 ****

    You may need to raise the ULIMIT setting to build a C++ compiler, as the file cc1plus is larger than one megabyte. !

    !

    xtensa-*-elf

    --- 2022,2028 ----

    You may need to raise the ULIMIT setting to build a C++ compiler, as the file cc1plus is larger than one megabyte. !


    xtensa-*-elf

    *************** own Xtensa configuration with the Xtensa *** 2070,2077 **** downloaded files include a customized copy of this header file, which you can use to replace the default header file. !

    !

    xtensa-*-linux*

    --- 2039,2045 ---- downloaded files include a customized copy of this header file, which you can use to replace the default header file. !

    xtensa-*-linux*

    *************** position-independent code (PIC) regardle *** 2082,2089 **** respects, this target is the same as the xtensa-*-elf target. !

    !

    Microsoft Windows (32-bit)

    --- 2050,2056 ---- respects, this target is the same as the xtensa-*-elf target. !

    Microsoft Windows (32-bit)

    *************** respects, this target is the same as the *** 2093,2100 ****

    Current (as of early 2001) snapshots of GCC will build under Cygwin without modification. !

    !

    OS/2

    --- 2060,2066 ----

    Current (as of early 2001) snapshots of GCC will build under Cygwin without modification. !


    OS/2

    *************** at ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/. !

    !

    Older systems

    --- 2071,2077 ----

    An older copy of GCC 2.8.1 is included with the EMX tools available at ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/. !


    Older systems

    *************** such older systems, but much of the info *** 2155,2162 **** about GCC on such systems (which may no longer be applicable to current GCC) is to be found in the GCC texinfo manual. !

    !

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

    --- 2120,2126 ---- about GCC on such systems (which may no longer be applicable to current GCC) is to be found in the GCC texinfo manual. !

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

    *************** current GCC) is to be found in the GCC t *** 2165,2172 **** inlines, vtables and template instantiations will be discarded automatically. !

    !

    Return to the GCC Installation page --- 2129,2135 ---- inlines, vtables and template instantiations will be discarded automatically. !


    Return to the GCC Installation page diff -Nrc3pad gcc-3.2/INSTALL/test.html gcc-3.2.1/INSTALL/test.html *** gcc-3.2/INSTALL/test.html Wed Aug 14 09:31:15 2002 --- gcc-3.2.1/INSTALL/test.html Tue Nov 19 18:11:50 2002 *************** To get a list of the possible *.ex *** 86,92 **** output of make check into a file and look at the Running ... .exp lines. !

    How to interpret test results

    After the testsuite has run you'll find various *.sum and *.log files in the testsuite subdirectories. The *.log files contain a --- 86,103 ---- output of make check into a file and look at the Running ... .exp lines. !

    To run only the tests for a library, run make check from the ! the library's testsuite in a subdirectory of the object directory: ! libstdc++-v3/testsuite or libcgj/testsuite. ! !

    Additional testing for Java Class Libraries

    ! !

    The Mauve Project provides ! a suite of tests for the Java Class Libraries. This suite can be run ! as part of libgcj testing by specifying the location of the Mauve tree ! when invoking make, as in make MAUVEDIR=~/mauve check. ! !

    How to interpret test results

    After the testsuite has run you'll find various *.sum and *.log files in the testsuite subdirectories. The *.log files contain a *************** current time our testing harness does no *** 109,115 **** over whether or not a test is expected to fail. We expect to fix this problem in future releases. !

    Submitting test results

    If you want to report the results to the GCC project, use the contrib/test_summary shell script. Start it in the objdir with --- 120,126 ---- over whether or not a test is expected to fail. We expect to fix this problem in future releases. !

    Submitting test results

    If you want to report the results to the GCC project, use the contrib/test_summary shell script. Start it in the objdir with *************** behave on different platforms and compar *** 130,136 **** 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 --- 141,147 ---- 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.2/MAINTAINERS gcc-3.2.1/MAINTAINERS *** gcc-3.2/MAINTAINERS Mon Apr 29 20:44:37 2002 --- gcc-3.2.1/MAINTAINERS Mon Nov 18 15:11:14 2002 *************** Maintainers *** 23,29 **** John Carr jfc@mit.edu Richard Earnshaw rearnsha@arm.com Richard Henderson rth@redhat.com ! Geoffrey Keating geoffk@redhat.com Richard Kenner kenner@nyu.edu Jeff Law law@redhat.com Jason Merrill jason@redhat.com --- 23,29 ---- John Carr jfc@mit.edu Richard Earnshaw rearnsha@arm.com Richard Henderson rth@redhat.com ! Geoffrey Keating geoffk@geoffk.org Richard Kenner kenner@nyu.edu Jeff Law law@redhat.com Jason Merrill jason@redhat.com *************** avr port Denis Chertykov denisc@overta *** 44,52 **** avr port Marek Michalkiewicz marekm@linux.org.pl c4x port Michael Hayes m.hayes@elec.canterbury.ac.nz cris port Hans-Peter Nilsson hp@axis.com ! fr30 port Nick Clifton niclc@redhat.com h8 port Jeff Law law@redhat.com ! h8 port Kazu Hirata kazu@hxi.com hppa port Jeff Law law@redhat.com hppa port Dave Anglin dave.anglin@nrc.ca i386 port Richard Henderson rth@redhat.com --- 44,52 ---- avr port Marek Michalkiewicz marekm@linux.org.pl c4x port Michael Hayes m.hayes@elec.canterbury.ac.nz cris port Hans-Peter Nilsson hp@axis.com ! fr30 port Nick Clifton nickc@redhat.com h8 port Jeff Law law@redhat.com ! h8 port Kazu Hirata kazu@cs.umass.edu hppa port Jeff Law law@redhat.com hppa port Dave Anglin dave.anglin@nrc.ca i386 port Richard Henderson rth@redhat.com *************** i960 port Jim Wilson wilson@redhat.com *** 55,61 **** ia64 port Jim Wilson wilson@redhat.com m32r port Nick Clifton nickc@redhat.com m32r port Michael Meissner meissner@redhat.com ! m68hc11 port Stephane Carrez Stephane.Carrez@worldnet.fr m68k port (?) Jeff Law law@redhat.com m68k-motorola-sysv port Philippe De Muyter phdm@macqel.be mcore port Nick Clifton nickc@redhat.com --- 55,61 ---- ia64 port Jim Wilson wilson@redhat.com m32r port Nick Clifton nickc@redhat.com m32r port Michael Meissner meissner@redhat.com ! m68hc11 port Stephane Carrez stcarrez@nerim.fr m68k port (?) Jeff Law law@redhat.com m68k-motorola-sysv port Philippe De Muyter phdm@macqel.be mcore port Nick Clifton nickc@redhat.com *************** mmix port Hans-Peter Nilsson hp@bitrang *** 64,70 **** mn10200 port Jeff Law law@redhat.com mn10300 port Jeff Law law@redhat.com mn10300 port Alexandre Oliva aoliva@redhat.com ! rs6000 port Geoff Keating geoffk@redhat.com rs6000 port David Edelsohn dje@watson.ibm.com s390 port Hartmut Penner hpenner@de.ibm.com s390 port Ulrich Weigand uweigand@de.ibm.com --- 64,70 ---- mn10200 port Jeff Law law@redhat.com mn10300 port Jeff Law law@redhat.com mn10300 port Alexandre Oliva aoliva@redhat.com ! rs6000 port Geoff Keating geoffk@geoffk.org rs6000 port David Edelsohn dje@watson.ibm.com s390 port Hartmut Penner hpenner@de.ibm.com s390 port Ulrich Weigand uweigand@de.ibm.com *************** v850 port Nick Clifton nickc@redhat.co *** 77,83 **** v850 port Michael Meissner meissner@redhat.com vax port Dave Anglin dave.anglin@nrc.ca x86-64 port Jan Hubicka jh@suse.cz ! xstormy16 port Geoffrey Keating geoffk@redhat.com xtensa port Bob Wilson bob.wilson@acm.org OS Port Maintainers (OS alphabetical order) --- 77,83 ---- v850 port Michael Meissner meissner@redhat.com vax port Dave Anglin dave.anglin@nrc.ca x86-64 port Jan Hubicka jh@suse.cz ! xstormy16 port Geoffrey Keating geoffk@geoffk.org xtensa port Bob Wilson bob.wilson@acm.org OS Port Maintainers (OS alphabetical order) *************** c++ Mark Mitchell m *** 99,105 **** cpplib Dave Brolley brolley@redhat.com cpplib Per Bothner per@bothner.com cpplib Zack Weinberg zack@codesourcery.com ! cpplib Neil Booth neil@daikokuya.demon.co.uk java Per Bothner per@bothner.com java Alexandre Petit-Bianco apbianco@redhat.com mercury Fergus Henderson fjh@cs.mu.oz.au --- 99,105 ---- cpplib Dave Brolley brolley@redhat.com cpplib Per Bothner per@bothner.com cpplib Zack Weinberg zack@codesourcery.com ! cpplib Neil Booth neil@daikokuya.co.uk java Per Bothner per@bothner.com java Alexandre Petit-Bianco apbianco@redhat.com mercury Fergus Henderson fjh@cs.mu.oz.au *************** reorg Jeff Law law@redhat.com *** 115,121 **** caller-save.c Jeff Law law@redhat.com debugging code Jim Wilson wilson@redhat.com dwarf debugging code Jason Merrill jason@redhat.com ! c++ runtime libs Gabriel Dos Reis dosreis@cmla.ens-cachan.fr c++ runtime libs Ulrich Drepper drepper@redhat.com c++ runtime libs Phil Edwards pme@gcc.gnu.org c++ runtime libs Benjamin Kosnik bkoz@redhat.com --- 115,122 ---- caller-save.c Jeff Law law@redhat.com debugging code Jim Wilson wilson@redhat.com dwarf debugging code Jason Merrill jason@redhat.com ! c++ runtime libs Paolo Carlini pcarlini@unitus.it ! c++ runtime libs Gabriel Dos Reis gdr@integrable-solutions.net c++ runtime libs Ulrich Drepper drepper@redhat.com c++ runtime libs Phil Edwards pme@gcc.gnu.org c++ runtime libs Benjamin Kosnik bkoz@redhat.com *************** web pages Gerald Pfeifer pfeifer@dbai. *** 129,135 **** config.sub/config.guess Ben Elliston config-patches@gnu.org basic block reordering Jason Eckhardt jle@redhat.com i18n Philipp Thomas pthomas@suse.de ! diagnostic messages Gabriel Dos Reis gdr@codesourcery.com windows, cygwin, mingw Christopher Faylor cgf@redhat.com windows, cygwin, mingw DJ Delorie dj@redhat.com DJGPP DJ Delorie dj@delorie.com --- 130,136 ---- config.sub/config.guess Ben Elliston config-patches@gnu.org basic block reordering Jason Eckhardt jle@redhat.com i18n Philipp Thomas pthomas@suse.de ! diagnostic messages Gabriel Dos Reis gdr@integrable-solutions.net windows, cygwin, mingw Christopher Faylor cgf@redhat.com windows, cygwin, mingw DJ Delorie dj@redhat.com DJGPP DJ Delorie dj@delorie.com *************** docs co-maintainer Joseph Myers jsm28@c *** 141,153 **** Pico-Java port Steve Chamberlain sac@transmeta.com RTEMS Ports Joel Sherrill predict.def Jan Hubicka jh@suse.cz ! contrib/regression Geoff Keating geoffk@redhat.com Note individuals who maintain parts of the compiler need approval to check in changes outside of the parts of the compiler they maintain. Write After Approval (last name alphabetical order) Scott Bambrough scottb@netwinder.org Daniel Berlin dan@dberlin.org David Billinghurst David.Billinghurst@riotinto.com --- 142,156 ---- Pico-Java port Steve Chamberlain sac@transmeta.com RTEMS Ports Joel Sherrill predict.def Jan Hubicka jh@suse.cz ! contrib/regression Geoff Keating geoffk@geoffk.org Note individuals who maintain parts of the compiler need approval to check in changes outside of the parts of the compiler they maintain. Write After Approval (last name alphabetical order) + + Matt Austern austern@apple.com Scott Bambrough scottb@netwinder.org Daniel Berlin dan@dberlin.org David Billinghurst David.Billinghurst@riotinto.com *************** Laurynas Biveinis lauras@softhome.net *** 155,162 **** Jim Blandy jimb@redhat.com Phil Blundell pb@futuretv.com Hans Boehm hboehm@gcc.gnu.org Andrew Cagney cagney@redhat.com - Paolo Carlini pcarlini@unitus.it Chandra Chavva cchavva@redhat.com William Cohen wcohen@redhat.com Chris Demetriou cgd@broadcom.com --- 158,165 ---- Jim Blandy jimb@redhat.com Phil Blundell pb@futuretv.com Hans Boehm hboehm@gcc.gnu.org + Eric Botcazou ebotcazou@libertysurf.fr Andrew Cagney cagney@redhat.com Chandra Chavva cchavva@redhat.com William Cohen wcohen@redhat.com Chris Demetriou cgd@broadcom.com *************** Anthony Green green@redhat.com *** 170,175 **** --- 173,179 ---- Stu Grossman grossman@redhat.com Laurent Guerby guerby@acm.org Andrew Haley aph@redhat.com + Stuart Hastings stuart@apple.com Aldy Hernandez aldyh@redhat.com Matthew Hiller hiller@redhat.com Manfred Hollstein mhollstein@redhat.com *************** Adam Megacz adam@xwt.org *** 201,217 **** Alan Modra amodra@bigpond.net.au Toon Moene toon@moene.indiv.nluug.nl Catherine Moore clm@redhat.com Diego Novillo dnovillo@redhat.com David O'Brien obrien@FreeBSD.org Turly O'Connor turly@apple.com Jeffrey D. Oldham oldham@codesourcery.com Rainer Orth ro@TechFak.Uni-Bielefeld.DE Nicola Pero n.pero@mi.flashnet.it Alexandre Petit-Bianco apbianco@redhat.com Clinton Popetz cpopetz@cpopetz.com Ken Raeburn raeburn@redhat.com Rolf Rasmussen rolfwr@gcc.gnu.org - Gabriel Dos Reis dosreis@cmla.ens-cachan.fr Loren J. Rittle ljrittle@acm.org Tom Rix trix@redhat.com Craig Rodrigues rodrigc@gcc.gnu.org --- 205,222 ---- Alan Modra amodra@bigpond.net.au Toon Moene toon@moene.indiv.nluug.nl Catherine Moore clm@redhat.com + Adam Nemet anemet@lnxw.com Diego Novillo dnovillo@redhat.com David O'Brien obrien@FreeBSD.org Turly O'Connor turly@apple.com Jeffrey D. Oldham oldham@codesourcery.com Rainer Orth ro@TechFak.Uni-Bielefeld.DE + Devang Patel dpatel@apple.com Nicola Pero n.pero@mi.flashnet.it Alexandre Petit-Bianco apbianco@redhat.com Clinton Popetz cpopetz@cpopetz.com Ken Raeburn raeburn@redhat.com Rolf Rasmussen rolfwr@gcc.gnu.org Loren J. Rittle ljrittle@acm.org Tom Rix trix@redhat.com Craig Rodrigues rodrigc@gcc.gnu.org *************** Danny Smith dannysmith@users.sourcef *** 229,235 **** Michael Sokolov msokolov@ivan.Harhan.ORG Richard Stallman rms@gnu.org Graham Stott grahams@redhat.com ! Mike Stump mrs@windriver.com Ian Taylor ian@zembu.com Michael Tiemann tiemann@redhat.com Philipp Thomas pthomas@suse.de --- 234,240 ---- Michael Sokolov msokolov@ivan.Harhan.ORG Richard Stallman rms@gnu.org Graham Stott grahams@redhat.com ! Mike Stump mrs@apple.com Ian Taylor ian@zembu.com Michael Tiemann tiemann@redhat.com Philipp Thomas pthomas@suse.de *************** Florian Weimer fw@deneb.enyo.de *** 240,247 **** Mark Wielaard mark@gcc.gnu.org GNATS only accounts Peter Bienstman(?) Benjamin Chelf(?) - James Dennett(?) Mark Galassi(?) Jeff Strum(?) --- 245,254 ---- Mark Wielaard mark@gcc.gnu.org GNATS only accounts + + James Dennett jdennett jdennett@acm.org + Peter Bienstman(?) Benjamin Chelf(?) Mark Galassi(?) Jeff Strum(?) diff -Nrc3pad gcc-3.2/Makefile.in gcc-3.2.1/Makefile.in *** gcc-3.2/Makefile.in Mon Apr 15 18:59:13 2002 --- gcc-3.2.1/Makefile.in Mon Oct 7 20:47:05 2002 *************** CXXFLAGS = -g -O2 *** 94,100 **** LDFLAGS = LIBCFLAGS = $(CFLAGS) CFLAGS_FOR_BUILD = $(CFLAGS) ! CFLAGS_FOR_TARGET = $(CFLAGS) LDFLAGS_FOR_TARGET = LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) PICFLAG = --- 94,104 ---- LDFLAGS = LIBCFLAGS = $(CFLAGS) CFLAGS_FOR_BUILD = $(CFLAGS) ! # During gcc bootstrap, if we use some random cc for stage1 then ! # CFLAGS will be just -g. We want to ensure that TARGET libraries ! # (which we know are built with gcc) are built with optimizations so ! # prepend -O2 when setting CFLAGS_FOR_TARGET. ! CFLAGS_FOR_TARGET = -O2 $(CFLAGS) LDFLAGS_FOR_TARGET = LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) PICFLAG = diff -Nrc3pad gcc-3.2/boehm-gc/ChangeLog gcc-3.2.1/boehm-gc/ChangeLog *** gcc-3.2/boehm-gc/ChangeLog Wed Aug 14 08:58:59 2002 --- gcc-3.2.1/boehm-gc/ChangeLog Tue Nov 19 17:47:53 2002 *************** *** 1,3 **** --- 1,23 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-10-07 Kaveh R. Ghazi + + * Makefile.am (all-multi): Fix multilib parallel build. + + 2002-08-23 Adam Megacz + + * win32_threads.cc: Removed extraneous ABORT() + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/boehm-gc/Makefile.am gcc-3.2.1/boehm-gc/Makefile.am *** gcc-3.2/boehm-gc/Makefile.am Tue Apr 23 03:20:04 2002 --- gcc-3.2.1/boehm-gc/Makefile.am Mon Oct 7 04:37:02 2002 *************** distclean-am: distclean-multi *** 144,150 **** maintainer-clean-am: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 144,150 ---- maintainer-clean-am: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/boehm-gc/Makefile.in gcc-3.2.1/boehm-gc/Makefile.in *** gcc-3.2/boehm-gc/Makefile.in Wed Aug 14 09:31:10 2002 --- gcc-3.2.1/boehm-gc/Makefile.in Tue Nov 19 18:11:44 2002 *************** distclean-am: distclean-multi *** 616,622 **** maintainer-clean-am: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 616,622 ---- maintainer-clean-am: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/boehm-gc/win32_threads.c gcc-3.2.1/boehm-gc/win32_threads.c *** gcc-3.2/boehm-gc/win32_threads.c Sat Jun 29 17:29:51 2002 --- gcc-3.2.1/boehm-gc/win32_threads.c Tue Sep 24 00:59:04 2002 *************** void GC_push_all_stacks() *** 134,142 **** (LPCONTEXT)&thread_table[i].context)) ABORT("GetThreadContext failed"); # ifdef I386 - if (thread_table[i].context.Esp >= (DWORD)thread_table[i].stack - || thread_table[i].context.Esp < (DWORD)bottom) - ABORT("Thread stack pointer out of range"); GC_push_one ((word) thread_table[i].context.Edi); GC_push_one ((word) thread_table[i].context.Esi); GC_push_one ((word) thread_table[i].context.Ebp); --- 134,139 ---- diff -Nrc3pad gcc-3.2/bugs.html gcc-3.2.1/bugs.html *** gcc-3.2/bugs.html Wed Aug 14 09:31:12 2002 --- gcc-3.2.1/bugs.html Tue Nov 19 18:11:47 2002 *************** the bug is a regression.

  • *** 283,289 ****

    Fortran bugs are documented in the G77 manual rather than explicitly listed here. Please see ! Known Causes of Trouble with GNU Fortran in the G77 manual.


    --- 283,289 ----

    Fortran bugs are documented in the G77 manual rather than explicitly listed here. Please see ! Known Causes of Trouble with GNU Fortran in the G77 manual.


    diff -Nrc3pad gcc-3.2/config/ChangeLog gcc-3.2.1/config/ChangeLog *** gcc-3.2/config/ChangeLog Wed Aug 14 08:59:02 2002 --- gcc-3.2.1/config/ChangeLog Tue Nov 19 17:47:59 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/config/mpw/ChangeLog gcc-3.2.1/config/mpw/ChangeLog *** gcc-3.2/config/mpw/ChangeLog Wed Aug 14 08:59:01 2002 --- gcc-3.2.1/config/mpw/ChangeLog Tue Nov 19 17:47:56 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/contrib/ChangeLog gcc-3.2.1/contrib/ChangeLog *** gcc-3.2/contrib/ChangeLog Wed Aug 14 08:59:04 2002 --- gcc-3.2.1/contrib/ChangeLog Tue Nov 19 17:48:01 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/contrib/regression/ChangeLog gcc-3.2.1/contrib/regression/ChangeLog *** gcc-3.2/contrib/regression/ChangeLog Wed Aug 14 08:59:05 2002 --- gcc-3.2.1/contrib/regression/ChangeLog Tue Nov 19 17:48:04 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/faq.html gcc-3.2.1/faq.html *** gcc-3.2/faq.html Wed Aug 14 09:31:14 2002 --- gcc-3.2.1/faq.html Tue Nov 19 18:11:49 2002 *************** about known problems with installing or *** 217,226 **** These are included in the sources for a release in INSTALL/specific.html, and the latest version is always available at the GCC web site. ! Reports of successful builds for GCC versions ! 3.0 and ! 2.95 ! are also available at the web site.


    --- 217,224 ---- These are included in the sources for a release in INSTALL/specific.html, and the latest version is always available at the GCC web site. ! Reports of successful builds ! for several versions of GCC are also available at the web site.


    diff -Nrc3pad gcc-3.2/fastjar/ChangeLog gcc-3.2.1/fastjar/ChangeLog *** gcc-3.2/fastjar/ChangeLog Wed Aug 14 08:59:07 2002 --- gcc-3.2.1/fastjar/ChangeLog Tue Nov 19 17:48:07 2002 *************** *** 1,3 **** --- 1,27 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-11 Tom Tromey + + * dostime.c (dos2unixtime): Mask for seconds is 0x1f. Correctly + compute month. + (unix2dostime): Handle years before 1980. Correctly compute month + and day of month. + + 2002-11-07 Tom Tromey + + * dostime.c: Rewrote from scratch. + * dostime.h (dostime): Removed. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/fastjar/dostime.c gcc-3.2.1/fastjar/dostime.c *** gcc-3.2/fastjar/dostime.c Thu Dec 14 18:45:35 2000 --- gcc-3.2.1/fastjar/dostime.c Mon Nov 11 22:22:31 2002 *************** *** 1,157 **** ! /* ! dostime.c - routines for converting UNIX time to MS-DOS time. ! ! Borrowed from Info-zip's unzip ! Copyright (C) 1999 Bryan Burns 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. ! 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. ! 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. */ ! /* $Id: dostime.c,v 1.2 2000/12/14 18:45:35 ghazi Exp $ ! ! $Log: dostime.c,v $ ! Revision 1.2 2000/12/14 18:45:35 ghazi ! Warning fixes: ! ! * compress.c: Include stdlib.h and compress.h. ! (rcsid): Delete. ! (report_str_error): Make static. ! (ez_inflate_str): Delete unused variable. Add parens in if-stmt. ! (hrd_inflate_str): Likewise. ! ! * compress.h (init_compression, end_compression, init_inflation, ! end_inflation): Prototype void arguments. ! ! * dostime.c (rcsid): Delete. ! ! * jargrep.c: Include ctype.h, stdlib.h, zlib.h and compress.h. ! Make functions static. Cast ctype function argument to `unsigned ! char'. Add parens in if-stmts. Constify. ! (Usage): Change into a macro. ! (jargrep): Remove unused parameter. ! ! * jartool.c: Constify. Add parens in if-stmts. Align ! signed/unsigned char pointers in functions calls using casts. ! (rcsid): Delete. ! (list_jar): Fix printf format specifier. ! (usage): Chop long string into bits. Reformat. ! ! * pushback.c (rcsid): Delete. ! ! Revision 1.1 2000/12/09 03:08:23 apbianco ! 2000-12-08 Alexandre Petit-Bianco ! ! * fastjar: Imported. ! ! Revision 1.1.1.1 1999/12/06 03:09:12 toast ! initial checkin.. ! ! ! ! Revision 1.6 1999/05/10 08:32:26 burnsbr ! added dos2unixtime ! ! Revision 1.5 1999/04/27 10:03:50 burnsbr ! configure support ! ! Revision 1.4 1999/04/26 21:55:19 burnsbr ! switched from sys/time.h to time.h for better portability ! ! Revision 1.3 1999/04/20 08:54:30 burnsbr ! added GPL comment ! ! Revision 1.2 1999/04/20 05:10:53 burnsbr ! added RCS tags ! ! ! */ ! #include "config.h" - #ifdef TM_IN_SYS_TIME - #include - #else #include - #endif #include "dostime.h" /* ! Copyright (C) 1990-1997 Mark Adler, Richard B. Wales, Jean-loup Gailly, ! Kai Uwe Rommel, Onno van der Linden and Igor Mandrichenko. ! Permission is granted to any individual or institution to use, copy, or ! redistribute this software so long as all of the original files are included, ! that it is not sold for profit, and that this copyright notice is retained. ! ! */ ! ! ! time_t dos2unixtime(dostime) ! unsigned long dostime; /* DOS time to convert */ ! /* Return the Unix time_t value (GMT/UTC time) for the DOS format (local) ! * time dostime, where dostime is a four byte value (date in most ! * significant word, time in least significant word), see dostime() ! * function. ! */ { ! struct tm *t; /* argument for mktime() */ ! time_t clock = time(NULL); ! t = localtime(&clock); ! t->tm_isdst = -1; /* let mktime() determine if DST is in effect */ ! /* Convert DOS time to UNIX time_t format */ ! t->tm_sec = (((int)dostime) << 1) & 0x3e; ! t->tm_min = (((int)dostime) >> 5) & 0x3f; ! t->tm_hour = (((int)dostime) >> 11) & 0x1f; ! t->tm_mday = (int)(dostime >> 16) & 0x1f; ! t->tm_mon = ((int)(dostime >> 21) & 0x0f) - 1; ! t->tm_year = ((int)(dostime >> 25) & 0x7f) + 80; ! return mktime(t); ! } ! unsigned long dostime(y, n, d, h, m, s) ! int y; /* year */ ! int n; /* month */ ! int d; /* day */ ! int h; /* hour */ ! int m; /* minute */ ! int s; /* second */ ! /* Convert the date y/n/d and time h:m:s to a four byte DOS date and ! time (date in high two bytes, time in low two bytes allowing magnitude ! comparison). */ ! { ! return y < 1980 ? dostime(1980, 1, 1, 0, 0, 0) : ! (((unsigned long)y - 1980) << 25) | ((unsigned long)n << 21) | ! ((unsigned long)d << 16) | ((unsigned long)h << 11) | ! ((unsigned long)m << 5) | ((unsigned long)s >> 1); ! } ! unsigned long unix2dostime(t) ! time_t *t; /* unix time to convert */ ! /* Return the Unix time t in DOS format, rounded up to the next two ! second boundary. */ { ! time_t t_even; ! struct tm *s; /* result of localtime() */ ! t_even = (*t + 1) & (~1); /* Round up to even seconds. */ ! s = localtime(&t_even); /* Use local time since MSDOS does. */ ! return dostime(s->tm_year + 1900, s->tm_mon + 1, s->tm_mday, ! s->tm_hour, s->tm_min, s->tm_sec); } - --- 1,79 ---- ! /* dostime.c - convert dos time to/from time_t. ! Copyright (C) 2002 Free Software Foundation 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. ! 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. ! 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. */ ! #include #include #include "dostime.h" /* + * The specification to which this was written. From Joe Buck. + * The DOS format appears to have only 2 second resolution. It is an + * unsigned long, and ORs together + * + * (year-1980)<<25 + * month<<21 (month is tm_mon + 1, 1=Jan through 12=Dec) + * day<<16 (day is tm_mday, 1-31) + * hour<<11 (hour is tm_hour, 0-23) + * min<<5 (min is tm_min, 0-59) + * sec>>1 (sec is tm_sec, 0-59, that's right, we throw away the LSB) + * + * DOS uses local time, so the localtime() call is used to turn the time_t + * into a struct tm. + */ ! time_t ! dos2unixtime (unsigned long dostime) { ! struct tm ltime; ! time_t now = time (NULL); ! /* Call localtime to initialize timezone in TIME. */ ! ltime = *localtime (&now); ! ltime.tm_year = (dostime >> 25) + 80; ! ltime.tm_mon = ((dostime >> 21) & 0x0f) - 1; ! ltime.tm_mday = (dostime >> 16) & 0x1f; ! ltime.tm_hour = (dostime >> 11) & 0x0f; ! ltime.tm_min = (dostime >> 5) & 0x3f; ! ltime.tm_sec = (dostime & 0x1f) << 1; ! ltime.tm_wday = -1; ! ltime.tm_yday = -1; ! ltime.tm_isdst = -1; + return mktime (<ime); + } ! unsigned long ! unix2dostime (time_t *time) { ! struct tm *ltime = localtime (time); ! int year = ltime->tm_year - 80; ! if (year < 0) ! year = 0; ! return (year << 25 ! | (ltime->tm_mon + 1) << 21 ! | ltime->tm_mday << 16 ! | ltime->tm_hour << 11 ! | ltime->tm_min << 5 ! | ltime->tm_sec >> 1); } diff -Nrc3pad gcc-3.2/fastjar/dostime.h gcc-3.2.1/fastjar/dostime.h *** gcc-3.2/fastjar/dostime.h Sat Dec 9 03:08:23 2000 --- gcc-3.2.1/fastjar/dostime.h Thu Nov 7 14:09:37 2002 *************** *** 1,6 **** /* dostime.h - function prototypes ! Copyright (C) 1999 Bryan Burns This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License --- 1,6 ---- /* dostime.h - function prototypes ! Copyright (C) 1999, 2002 Bryan Burns This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License *************** *** 18,22 **** */ time_t dos2unixtime(unsigned long dostime); - unsigned long dostime(int, int, int, int, int, int); unsigned long unix2dostime(time_t*); --- 18,21 ---- diff -Nrc3pad gcc-3.2/gcc/ChangeLog gcc-3.2.1/gcc/ChangeLog *** gcc-3.2/gcc/ChangeLog Wed Aug 14 08:59:50 2002 --- gcc-3.2.1/gcc/ChangeLog Tue Nov 19 17:48:23 2002 *************** *** 1,3 **** --- 1,1001 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + Sat Nov 16 02:54:29 CET 2002 Jan Hubicka + + * jump.c (tablejump_p): New. + * cfgcleanup.c (try_optimize_cfg): Do not merge blocks across tablejump. + * rtl.h (tablejump_p): Declare. + + 2002-11-16 Graham Stott + + * flow.c (life_analysis): Update LABEL_NUSES before purging + dead jumptables. + + 2002-11-13 Janis Johnson + + * doc/install.texi (Testing): Document extra Java testing. + * doc/sourcebuild.texi (Test Suites): Document libgcj testing. + + 2002-11-12 Franz Sirl + + * doc/install.texi (powerpc-*-linux-gnu*): Update binutils requirement. + + 2002-11-12 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Use GCJ instead of gcj to refer + to that entire project. + + 2002-11-12 Rainer Orth + + * config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Restore old + directories. + + 2002-11-11 Janis Johnson + + * doc/contrib.texi: Merge in the list from the libstdc++ web pages. + + 2002-11-11 Franz Sirl + + PR c/8467 + * stmt.c (tail_recursion_args): Handle DECL_MODE differing from the + mode of DECL_RTL case. + + 2002-11-11 Neil Booth + + PR preprocessor/4890 + * tradcpp.c (output_line_command): When leaving a file, + system_include_depth has not yet been decremented. + + 2002-11-10 Joel Sherrill + + * config/m68k/t-crtstuff (crti.o): Use this... + ($(T)crti.o): ... instead. + (crtn.o): Use this... + ($(T)crtn.o): ... instead. + + 2002-11-10 Ralf Corsepius + + * config/mips/mips.md (movdi_usd): Use %z1 in place of %1. + + 2002-11-11 Graham Stott + Jan Hubicka + + PR 8502 + * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed + jumps post reload. + + 2002-11-08 H.J. Lu + + Fix c/5351 and optimization/7591. + + * calls.c (store_one_arg): Remove ATTRIBUTE_UNUSED on + variable_size. Mark any slots used for the argument as in-use + only if we can't pass all arguments to a library call in + registers. + + 2002-11-07 H.J. Lu + + Fix bootstrap/8146 and + gcc.c-torture/execute/20020307-2.c with -march=i686. + + * calls.c (PUSH_ARGS_REVERSED): Define only if not defined. + * expr.c (PUSH_ARGS_REVERSED): Likewise. + + * config/i386/i386.h (PUSH_ARGS_REVERSED): Set to 1. + + 2002-11-04 Aldy Hernandez + + Fix c/8252. + + * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow + vectors from PRE_INC/DEC. + + 2002-11-06 Richard Henderson + + PR optimization/7520 + * cfganal.c (flow_active_insn_p): New. + (forwarder_block_p): Use it. + + 2002-11-06 Janis Johnson + + * doc/contrib.texi: Merge in the list from the Java web pages. + + 2002-11-06 David O'Brien + + * config/sparc/freebsd.h: Fix typo. + + 2002-11-05 Bob Wilson + + * config/xtensa/elf.h (LIB_SPEC): Add "-lhal". + + 2002-11-04 Aldy Hernandez + + Backport patch to fix PR c/8451. + + 2002-04-25 Richard Henderson + + * expmed.c (extract_bit_field): Fall through to generic code rather + than aborting on subreg special case. + + 2002-11-01 Mark Mitchell + + PR c++/8391 + * toplev.c (rest_of_compilation): Do not refuse to output code for + an inline function in a local class. + + 2002-11-01 David O'Brien + + * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Define __arch64__. + Add comment. + + 2002-11-01 David O'Brien + + * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Define + __enable_execute_stack function. + + 2002-11-01 Richard Earnshaw (rearnsha@arm.com) + + PR target/7856 + * arm.c (use_return_insn): Don't use a return insn if there are + saved integer regs, but LR is not one of them. + + Thu Oct 31 18:31:22 CET 2002 Jan Hubicka + + * i386.c (override_options): Set defaults for flag_omit_frame_pointer, + flag_asynchronous_unwind_tables, flag_pcc_struct_return. + * i386.c (optimization_options): Set flag_omit_frame_pointer, + flag_asynchronous_unwind_tables, flag_pcc_struct_return to 2. + Do not clear -momit-leaf-frame-pointer when profiling. + (ix86_frame_pointer_required): Frame pointer is allways required when + profiling. + + 2002-10-30 Mark Mitchell + + * varasm.c (asm_output_aligned_bss): Do not call + ASM_GLOBALIZE_LABEL. + + 2002-10-29 Janis Johnson + + * doc/invoke.texi (-profile-arcs): Remove references to -a and -ax. + + 2002-10-29 Eric Botcazou + + * expr.c (expand_expr) [PLUS]: Don't use simplify_binary_operation; + check for zero operands explicitly. + + 2002-10-21 Dale Johannesen + + PR target/7133 + * config/rs6000/rs6000.c (rs6000_reverse_condition): Handle + unsafe math reversals correctly for RTL generation. + (output_cbranch): Replace rs6000_reverse_condition call + by its former definition. + + Sun Oct 27 10:12:27 CET 2002 Jan Hubicka + + * linux64.h (DEFAULT_PCC_STRUCT_RETURN): Define. + + PR target/6890 + * xmmintrin.h (_MM_TRANSPOSE4_PS): New. + + 2002-10-25 Zack Weinberg + + PR middle-end/6994 + * c-objc-common.c (inline_forbidden_p): Can not inline + functions containing structures or unions containing VLAs. + * tree-inline.c (walk_tree): For all class 't' nodes, walk + TYPE_SIZE and TYPE_SIZE_UNIT. #undef WALK_SUBTREE_TAIL at end. + (copy_tree_r): Copy types if they are variably modified. + + * hooks.c (hook_tree_bool_false): New. + * hooks.h: Prototype it. + * langhooks.h (struct lang_hooks_for_tree_inlining): Add + var_mod_type_p. + * langhooks-def.h: Default for tree_inlining.var_mod_type_p is + hook_tree_bool_false. + + * tree.c (variably_modified_type_p): Moved here from + cp/tree.c. Use lang_hooks.tree_inlining.var_mod_type_p for + language-specific cases. Due to this, must weaken some 'if + and only if' checks to merely 'if'. + * tree.h: Prototype variably_modified_type_p. + + 2002-10-22 Jim Wilson + + * config/i386/i386.md (subdi3_1): Add call to ix86_binary_operator_ok. + + 2002-10-15 Jim Wilson + + PR target/6981 + * config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok. + + 2002-10-24 Richard Henderson + + PR opt/7944 + * reload.c (find_reloads_toplev): Use simplify_gen_subreg; mode + of X is not important when simplifying subregs of constants. + + 2002-10-23 Robert Lipe + + * config.gcc (i[34567]86-*-sco3.2v5*): Fix tm_file. + + 2002-10-23 Roger Sayle + + PR c/761 + * doc/invoke.texi: Fix some overfull hboxes in "make dvi". + Document --version, -fno-sched-interblock, -fno-sched-spec, + -fsched-spec-load, -fsched-spec-load-dangerous, + -fsched-verbose=n, -fno-branch-count-reg and -fbounds-check. + + 2002-10-23 Ulrich Weigand + + * config/s390/s390.md ("*movdi_64"): Fix op_type attribute. + ("*movdf_64"): Likewise. + ("*lshrdi3_64"): Likewise. + + 2002-10-21 Matthias Klose + + * Backport, without whitespace change: + 2002-06-19 Akim Demaille + * c-parse.in (initelt: identifier ':' initval): Add an empty + action to fix a type clash. + (aliasdecl, classdef): Add the missing closing `;'. + + Sat Oct 19 15:49:14 CEST 2002 Jan Hubicka + + * mmintrin.h (__m64): typedef it to v2si. + (_mm_cvtsi32_si64, _mm_cvtsi32_si64_mm_sll_pi16, + _mm_sll_pi32, _mm_sll_pi64, _mm_slli_pi64, _mm_sra_pi16, + _mm_sra_pi32, _mm_srl_pi16, _mm_srl_pi32, _mm_srl_pi64, + _mm_srli_pi64, _mm_and_si64, _mm_andnot_si64, + _mm_or_si64, _mm_xor_si64): Add neccesary casts. + * xmmintrin.h (_mm_setzero_si64): Likewise. + + PR target/7693 + Patch by Shawn Wagner + * mmintrin.h: Replace pi64 by si64. + + 2002-10-18 Zack Weinberg + + * decl.c (start_decl): Point users of the old initialized- + typedef extension at __typeof__. + + Thu Oct 17 17:14:07 CEST 2002 Jan Hubicka + + PR opt/7630 + * reload.c (reload_inner_reg_of_subreg): New argument output; + (push_reload): Update call. + + PR c++/6419 + * expr.c (expand_expr): Use DECL_RTL_SET_P. + + Wed Apr 24 23:45:37 2002 J"orn Rennecke + + * calls.c (expand_call): Take current_function_pretend_args_size + into account when setting argblock for sibcalls. + + Wed Oct 16 19:43:38 CEST 2002 Jan Hubicka + + PR target/7396 + * i386.c (builtin_description):Drop cmpg[te]s[sd]. + * xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using + swapped alternative. + + 2002-10-16 Jakub Jelinek + + * fold-const.c (fold): Fix a typo. + + 2002-10-15 Ulrich Weigand + + PR target/7370 + * config/s390/s390.md ("*addsi3_inv"): New pattern. + + PR target/8232 + * config/s390/s390.md ("cmpstrsi"): Convert length operand + from SImode to Pmode. + + 2002-10-15 Janis Johnson + + * doc/install.texi: Formatting changes for conformance to HTML 4.01. + + 2002-10-15 Ulrich Weigand + + PR opt/7409 + * loop.c (loop_regs_scan): Mark registers used for function + argument passing as MAY_NOT_OPTIMIZE. + + 2002-10-14 Neil Booth + + PR preprocessor/7862 + PR preprocessor/8190 + * gcc.c (cpp_unique_options): Don't delete .d files. + Remove stray whitespace. + + 2002-10-14 Jakub Jelinek + + * config/i386/i386.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): + Handle TARGET_64BIT. + + 2002-10-14 Mark Mitchell + + PR optimization/6631 + * Makefile.in (function.o): Depend on langhooks.h. + * alias.c (objects_must_conflict_p): Check honor_readonly when + examining TYPE_READONLY. + * function.c (assign_stack_temp_for_type): Likewise. + + 2002-10-12 John David Anglin + + * tree.c (tree_size): Revise expressions using TREE_CODE_LENGTH and + TREE_VEC_LENGTH to ensure values are promoted before doing subtraction. + + 2002-10-11 Janis Johnson + + * doc/compat.texi: Add info about C++ libraries. + + Thu Oct 10 19:47:41 CEST 2002 Jan Hubicka + + PR target/5610 + * invoke.texi (-msse-math): Kill + (-msse): Add note to mfpmath=sse. + + Thu Oct 10 17:38:29 CEST 2002 Jan Hubicka + + PR ice/7951 + * reload1.c (emit_input_reload_insns): Use constrain_operands + instead of constraint_accepts_reg_p to verify optimization. + (constraint_accepts_reg_p): Kill + + Thu Oct 10 17:05:22 CEST 2002 Jan Hubicka + + PR target/7723 + * i386.c (ix86_expand_vector_move): Do not generate const0->mem moves. + + 2002-10-09 Zack Weinberg + + PR c/7353 + * c-decl.c (start_decl): Unconditionally issue error for + 'typedef foo = bar'. + (finish_decl): Remove special case for TYPE_DECL with initializer. + + * doc/extend.texi: Delete "Naming Types" section. Change all + cross-references to that section to refer to "Typeof" instead. + Add the useful safe-max()-macro example from "Naming Types" to + "Typeof", rewritten using that extension. Add some compatibility + notes to "Typeof." + + 2002-10-02 Richard Henderson + + PR opt/7124 + * config/i386/i386.c (ix86_register_move_cost): Increase cost + for secondary_memory_needed pairs. + + Wed Oct 9 19:09:13 CEST 2002 Jan Hubicka + + PR opt/7912 + PR opt/7390 + * i386.c (athlon_cost): Fix the move costs. + + 2002-10-09 Alan Modra + + * libgcc2.c (__floatdisf): Properly cure double rounding. + + 2002-10-09 Gabriel Dos Reis + + PR doc/7484 + * doc/invoke.texi (Option Summary): List + -Wmissing-declarations as a C only option. + + 2002-10-08 Jakub Jelinek + + * config/sparc/t-linux64 (MULTILIB_OPTIONS): Remove + mno-app-regs|mcmodel=medany. + (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Remove alt. + (MULTILIB_EXCEPTIONS, MULTILIB_EXCLUSIONS, MULTILIB_MATCHES): Remove. + (CRTSTUFF_T_CFLAGS): Define. + + 2002-09-25 Eric Botcazou + Volker Reichelt + + PR c/7411 + * expr.c (expand_expr) [PLUS]: Simplify after the operands + have been expanded in EXPAND_NORMAL mode. + + 2002-10-06 Richard Henderson + + * config/rs6000/rs6000.md (load_toc_v4_PIC_2): Fix base constraint. + + 2002-10-06 Roger Sayle + + PR optimization/6627 + * toplev.c (force_align_functions_log): New global variable. + * flags.h (force_align_functions_log): Add extern prototype. + * varasm.c (assemble_start_function): Use it to force minimum + function alignment. + * config/i386/i386.h (FUNCTION_BOUNDARY): Set the correct + minimum function alignment to one byte. + (TARGET_PTRMEMFUNC_VBIT_LOCATION): Store the virtual bit in + the least significant bit of vtable member function pointers. + * tree.h (enum ptrmemfunc_vbit_where_t): Move definition to + here from cp/cp-tree.h. + + 2002-10-06 Neil Booth + + Debian BTS Bug #157416 + * cpplib.c (destringize_and_run): Kludge around getting + tokens from in-progress macros. + (_cpp_do__Pragma): Simplify. + + 2002-10-06 Frank Ch. Eigler + + * cppinit.c (init_standard_includes, parse_option): Use strncmp. + + 2002-10-05 Jakub Jelinek + + * gcc.c (set_multilib_dir): Don't access *end. + Use memcpy instead of strncpy. Don't write beyond malloced buffer. + (print_multilib_info): Don't show paths starting with ".:". + * genmultilib: Add new option, "yes" if multilibs are enabled. + Update comments. If multilibs not enabled, print .:${osdirout} + for each directory. If multilibs are enabled, always print + ${dirout}:${osdirout}, even if the two are the same. + * Makefile.in (s-mlib): Pass @enable_multilib@ to genmultilib. + Pass all MULTILIB_* variables to genmultilib even if + --disable-multilib but MULTILIB_OSDIRNAMES is not empty. + + * gcc.c (print_multi_os_directory): New variable. + (option_map): Support --print-multi-os-directory. + (struct prefix_list): Add os_multilib field. + (multilib_os_dir): New variable. + (static_specs): Add multilib_options. + (find_a_file): Add multilib argument. Search in GCC or OS multilib + subdirs if non-zero. + (read_specs, execute): Update callers. + (find_file): Likewise. Don't prefix name with multilib_dir, instead + pass 1 as multilib option. + (display_help): Include --print-multi-os-directory. + (add_prefix): Add os_multilib argument. Initialize pl->os_multilib. + (process_command): Update callers. Handle --print-multi-os-directory. + (do_spec_1) ['D']: Use multilib_os_directory if pl->os_multilib is + set. + (main): Update find_a_file and add_prefix callers. + Handle print_multi_os_directory. + (struct mdswitchstr): New. + (mdswitches, n_mdswitches): New variables. + (used_arg): Add MULTILIB_DEFAULT switches too if they are not + present on the command line nor their mutually incompatible + switches. + (default_arg): Optimize. + (set_multilib_dir): Compute multilib_os_dir. Initialize mdswitches + array. + (print_multilib_info): Only print GCC multilib dir name, not OS + multilib dirname. + * genmultilib: Add osdirnames parameter. Output multilib_options + variable. If osdirnames is specified, output dirnames as + dirname:osdirname. + * mklibgcc.in: Use MULTILIB_OSDIRNAMES, --print-multi-directory + and --print-multi-os-directory instead of SHLIB_SLIBDIR_SUFFIXES + to compute libgcc_s soname and install path. + * Makefile.in (libgcc.mk): Pass MULTILIB_OSDIRNAMES instead of + SHLIB_SLIBDIR_SUFFIXES to mklibgcc. + (s_mlib): Pass MULTILIB_OSDIRNAMES or nothing as last genmultilib + argument. + + * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Set. + (SHLIB_SLIBDIR_SUFFIXES): Remove. + * config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64, + ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_COMMON): Remove. + (STARTFILE_SPEC, ENDFILE_SPEC): Don't distinguish between -m32 + and -m64. + * config/sparc/t-sol2-64 (MULTILIB_OSDIRNAMES): Set. + (SHLIB_SLIBDIR_SUFFIXES): Remove. + * config/sparc/sol2-bi.h (STARTFILE_SPEC32, STARTFILE_SPEC64): Remove. + (STARTFILE_ARCH_SPEC): Remove. + (STARTFILE_SPEC): Add values-X*.o here. + * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Set. + (SHLIB_SLIBDIR_SUFFIXES): Remove. + * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Remove. + (STARTFILE_SPEC, ENDFILE_SPEC): Don't distinguish between m32 and + !m32. + * config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Set. + (SHLIB_SLIBDIR_SUFFIXES): Remove. + + 2002-10-05 Neil Booth + + PR preprocessor/8120 + * doc/cpp.texi: Update documentation of bad use of ##. + + Thu Oct 3 23:15:15 CEST 2002 Jan Hubicka + + * i386.h (CPP_SPECS): fix defines for -msse, -msse2, -mpentium2,3. + + Thu Oct 3 21:35:36 CEST 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Dump loops before clobbering + the structure. + + * expr.c (force_operand): Use expand_simple_* to handle more + cases. + + * i386.c (q_regs_operand): Use ANY_QI_REG_P. + + * i386.c (override_options): Fix stack alignment. + (classify_argument): Handle variable sized types. + (ix86_expand_int_movcc): Avoid RTL sharing problem. + + * i386.md (prefetch_sse_rex, prefetch_3dnow_rex): New. + (prefetch): Properly handle 64bit case. + + * i386.c (classify_argument): Properly compute word size of the analyzed object. + + * jump.c (reg_or_subregno): New function. + * rtl.h (reg_or_subregno): Declare + * unroll.c (find_splittable_givs): Handle subregs. + + Richard Sandiford : + + * expr.c (force_operand): Fix reversed move. + + Andreas Jaeger : + + * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): New. + + Janis Johnson : + + * loop.c (emit_prefetch_instructions): Several small fixes. + + Thu Sep 5 00:34:33 2002 J"orn Rennecke + + * loop.c (scan_loop): Don't mark separate insns out of a libcall + for moving. + (move_movables): Abort if we see the first insn of a libcall. + + 2002-10-01 David S. Miller + + PR middle-end/7151 + * config/sparc/sparc.md (movdi_insn_sp32_v9): Accept 'e' regs. + (movdi reg/reg split): Match only on sparc32, and v9 when int regs. + + 2002-10-01 David S. Miller + Jan Hubicka + + * reload1.c (gen_reload:SECONDARY_MEMORY_NEEDED): Handle SUBREG. + * reload.c (push_reload:SECONDARY_MEMORY_NEEDED): Likewise. + + 2002-09-30 Bob Wilson + + * config/xtensa/xtensa.h (REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Add new RL_REGS register class. + (PREFERRED_RELOAD_CLASS, PREFERRED_OUTPUT_RELOAD_CLASS): + Call xtensa_preferred_reload_class for both input and output reloads. + * config/xtensa/xtensa.c (xtensa_regno_to_class): Use new RL_REGS class. + (xtensa_preferred_reload_class): Handle output reloads; use RL_REGS + instead of either AR_REGS or GR_REGS classes. + (xtensa_secondary_reload_class): Use new RL_REGS class. + * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class): Update. + + 2002-08-21 John David Anglin + + * cppinit.c (remove_dup_nonsys_dirs): Fix warning and return value. + + 2002-08-20 John David Anglin + + * cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal + at head. + (remove_dup_nonsys_dirs): New function. + (remove_dup_dirs): Change argument head to head_ptr. Remove warnings. + (merge_include_chains): Remove non-system include directories from + quote and bracket include chains when they duplicate equivalent system + directories. + * doc/cpp.texi (-I): Update. + * doc/cppopts.texi (-I): Update. + * doc/install.texi (--with-local-prefix): Further document usage of + this option. + * doc/invoke.texi (-I): Update. + + 2002-09-30 Richard Earnshaw + + * arm.h (BASE_REG_CLASS): Always return LO_REGS for Thumb. + (MODE_BASE_REG_CLASS, case Thumb): Only return BASE_REGS if we know + that we have a SImode access, and only then if reload hasn't completed; + for all other cases, use LO_REGS. + + 2002-09-29 David S. Miller + + * config/sparc/linux64.h (STARTFILE_SPEC32, ENDFILE_SPEC32): Kill + hardcoded paths. + + 2002-09-27 Alexander N. Kabaev + + PR preprocessor/8055 + * cppmacro.c (stringify_arg): Do not overflow the buffer + with the terminating NUL when the argument to be stringified + has no tokens. + + 2002-09-26 David S. Miller + + PR optimization/7335 + * calls.c (emit_library_call_value_1): Passing args by reference + converts a CONST function into a PURE one. + + 2002-09-26 Richard Henderson + + PR c/7160 + * sched-deps.c (sched_analyze_insn): Make clobber insns depend + on call insns. + + 2002-09-27 Alan Modra + + * doloop.c (doloop_modify_runtime ): Adjust + by absolute loop increment, not loop increment. + + 2002-09-25 David S. Miller + + PR target/7842 + * config/sparc/sparc.c (set_extends): SImode ASHIFT does not + extend. + + 2002-09-20 Jeroen Dobbelaere + + * config/arm/arm.md (sign_extract_onebit, not_signextract_onebit): + Add clobber of the condition code register. + + 2002-09-18 Richard Earnshaw (rearnsha@arm.com) + + PR optimization/7967 + * arm.md (ne_zeroextractsi): Add clobber of the condition code + register. + + 2002-09-17 Richard Henderson + + * sibcall.c (optimize_sibling_and_tail_recursive_call): Also remove + RTX_UNCHANGING_P markers for successful tail-recursive replacement. + + 2002-09-16 Richard Henderson + + PR opt/7515 + * c-objc-common.c (c_cannot_inline_tree_fn): Don't auto-inline + functions that don't bind locally. + + 2002-09-17 Alan Modra + + Merge from mainline. + 2002-07-20 Alan Modra + PR optimization/7130 + * loop.h (struct loop_info): Add "preconditioned". + * unroll.c (unroll_loop): Set it. + * doloop.c (doloop_modify_runtime): Correct count for unrolled loops. + + 2002-06-24 Alan Modra + PR optimization/6984 + * doloop.c (doloop_valid_p): Correct comment. + (doloop_modify_runtime ): Simplify. + (doloop_modify_runtime ): Don't emit code when NE. + + 2002-09-16 Jeff Law + + * libgcc2.c: Do not include machmode.h. + + 2002-09-16 Jason Merrill + Danny Smith + + * config/i386/winnt.c (ix86_handle_dll_attribute): Set + DECL_EXTERN and TREE_PUBLIC for dllimported variables here... + (i386_pe_mark_dllimport): Not here. + + 2002-09-14 Stephane Carrez + + * config/m68hc11/m68hc11.md ("movdi_internal"): Allow any offsetable + memory operand when source is 0 (K constraint). + ("movsi_internal"): Likewise. + ("movdf_internal"): Likewise. + ("movsf_internal"): Likewise. + + 2002-09-14 Alan Modra + + Merge from mainline. + 2002-09-14 Alan Modra + * doc/tm.texi (DBX_OUTPUT_NFUN): Describe. + * dbxout.c (dbxout_function_end): Use DBX_OUTPUT_NFUN. + * config/rs6000/linux64.h (DBX_OUTPUT_NFUN): Define. + + 2002-08-27 David Edelsohn + * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Undef before define. + + 2002-08-02 Alan Modra + * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define. + (DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define. + * config/rs6000/rs6000.c (output_toc): Don't use lshift_double when + HOST_BITS_PER_WIDE_INT == 64. + + 2002-07-27 Alan Modra + * config/rs6000/rs6000.c (output_profile_hook): Don't generate profile + label reference when NO_PROFILE_COUNTERS. + + 2002-07-11 Alan Modra + * config/rs6000/linux64.h (ASM_SPEC): Define. + + 2002-09-13 Alan Modra + + Merge from mainline. + 2002-07-24 Alan Modra + PR c/7150, target/7380 + * config/rs6000/rs6000.md: Remove scratch reg on insns using + addze and similar (plus (comparison r1 r2) r3) insns. Add + missing scratch reg in one case. Formatting fixes. + + 2002-07-18 Alan Modra + PR other/7114, target/5967 + * config/rs6000/rs6000.c (first_reg_to_save): Remove bogus + adjustments to first_reg for profiling case. + (output_function_profiler): Correct lr save slot for ABI_AIX_NODESC. + Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC. + Save static chain reg to sp + 12 on ABI_AIX_NODESC. + * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define. + (ASM_OUTPUT_REG_POP): Define. + * config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef. + (ASM_OUTPUT_REG_POP): Undef. + + 2002-06-30 Alan Modra + PR optimization/7120 + * unroll.c (loop_iterations): Handle EQ loops. + + 2002-09-13 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Remove "if" + nesting. Correct test for non-PowerPC64 ELF ABI_AIX. + * config/rs6000/rs6000.md (load_toc_v4_PIC*): Disable when ABI_AIX. + + 2002-09-12 Janis Johnson + + * doc/compat.texi: New file with new chapter, Binary Compatibility. + + 2002-09-12 Jason Merrill + + * calls.c (store_one_arg): Use size_in_bytes to determine the + amount of space to push. + + 2002-09-12 Jakub Jelinek + + * config/sparc/linux64.h (STARTFILE_SPEC32): Fix a typo. + + 2002-09-12 Alan Modra + + * emit-rtl.c (set_mem_size): New function. + * expr.h (set_mem_size): Declare. + * config/rs6000/rs6000.c (expand_block_move_mem): Exterminate. + (expand_block_move): Instead, use adjust_address and + replace_equiv_address to generate proper aliasing info. + Move common code out of conditionals. Localize vars. + + 2002-09-11 Alexander Kabaev + + Wed Apr 24 13:48:25 CEST 2002 Jan Hubicka + * loop.c (canonicalize_condition): Use gen_int_mode. + + 2002-09-11 Janis Johnson + + * Makefile.in (TEXI_GCC_FILES): Add compat.texi. + * doc/gcc.texi (Top): Add new chapter, Binary Compatibility, and + include its file, compat.texi. + * doc/trouble.texi (Interoperation): Update information about C++ ABI + issues. + * doc/invoke.texi (-fshort-wchar): Move to Code Generation Options. + (-fpcc-struct-return, -freg-struct-return, -fshort-enums, + -fshort-double, -fshort-wchar, -fpack-struct, -fleading-underscore): + Warn that these options can break ABI compatibility. + (Many places): Fix overfull hboxes. + + * doc/extend.texi: Fix a broken link; fix overfull hboxes. + * doc/install.texi: Fix a typo, some formatting directives, and + overfull hboxes. + * doc/c-tree.texi: Fix overfull hboxes. + * doc/cppopts.texi: Ditto. + * doc/makefile.texi: Ditto. + * doc/rtl.texi: Ditto. + * doc/standards.texi: Ditto. + * doc/tm.texi: Ditto. + + 2002-09-08 Alan Modra + + * reload.c (find_reloads

    ): Pass operand_mode to + find_reloads_address. + + 2002-09-07 Scott Snyder + + PR target/7374 + * config/alpha/alpha.md (abstf2): Fix typo: 'neg' for 'abs'. + + 2002-09-07 Glen Nakamura + + PR opt/7814 + * sched-deps.c (sched_analyze_insn): Make sure to add insn + to reg_last->sets after flushing the dependency lists to guarantee + that subsequent clobbers will be dependent on it. + + 2002-09-07 Alan Modra + + * config/rs6000/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + + 2002-09-06 Jakub Jelinek + + * configure.in (HAVE_AS_OFFSETABLE_LO10): Use -xarch=v9 + unconditionally when gcc_cv_as_flags64 checks are gone. + * configure: Rebuilt. + + 2002-09-04 Eric Botcazou + + PR c/7102 + * optabs.c (expand_binop): Convert CONST_INTs in all cases. + + 2002-09-04 Jason Thorpe + + * config/sparc/t-netbsd64: Disable multilib for now. + + 2002-09-01 Alexandre Oliva + + * c-tree.h (skip_evaluation): Move declaration... + * c-common.h: ... here. + * c-typeck.c (build_external_ref): Don't assemble_external nor + mark a tree as used if skip_evaluation is set. + * c-parse.in (typeof): New non-terminal to set skip_evaluation + around TYPEOF. + (typespec_nonreserved_nonattr): Use it. + + 2002-09-01 Marek Michalkiewicz + + 2002-08-13 Denis Chertykov + * config/avr/avr.md: Call CC_STATUS_INIT in all peepnoles + which can change CC0. + + 2002-08-29 Rodney Brown + + * doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual + memory exhausted" workarounds. + + 2002-08-29 John David Anglin + + * install.texi (hppa64-hp-hpux11*): Document installation procedure. + + 2002-08-28 Jason Merrill + + * c-common.c (c_expand_expr) [STMT_EXPR]: If the last expression is + a VAR_DECL with RTL that matches the target, just return that RTL. + + 2002-08-28 Daniel Berlin + + * tree-inline.c (expand_call_inline): Make the statement + expression we generate have a COMPOUND_STMT. + + 2002-08-27 Mark Mitchell + + * doc/invoke.texi: Document -Wabi. + + 2002-08-23 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_select_section): Treat + DEFAULT_ABI == ABI_AIX like PIC. Test PIC & reloc for readonly + default. + (rs6000_unique_section): Likewise. + + 2002-08-22 Jason Merrill + + * langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro. + * langhooks.c (lhd_expr_size): Define default. + * langhooks.h (struct lang_hooks): Add expr_size. + * explow.c (expr_size): Call it. + (int_expr_size): New fn. + * expr.h: Declare it. + * expr.c (expand_expr) [CONSTRUCTOR]: Use it to calculate how + much to store. + + 2002-08-23 Alan Modra + + * config/rs6000/rs6000.c (output_mi_thunk): Don't determine insns + for loading delta with num_insns_constant_wide. Calculate + delta_low, delta_high without using a conditional. + + 2002-08-20 Andreas Jaeger + + Merge from trunk: + Wed Jul 17 00:20:48 CEST 2002 Jan Hubicka + + * i386.md (prefetch): Fix for 64bit mode. + (prefetch_sse_rex, prefetch_3dnow_rex): New patterns. + + 2002-08-11 Andreas Jaeger + PR target/7531: + * doc/invoke.texi (i386 and x86-64 Options): Document -mcmodel. + + 2002-06-24 Jeff Law + + * flow.c (propagate_one_insn): When removing an insn + with a REG_LIBCALL note but not the entire libcall sequence, + delete the associated REG_RETVAL note. + + 2002-06-04 Jeff Law + Michael Matz + + * sched-int.h (struct deps): New field libcall_block_tail_insn. + * sched_deps.c (init_deps): Initialize libcall_block_tail_insn. + * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn + is set, then mark the current insn as being part of a libcall + scheduling group. + (sched_analyze): Set and clear libcall_block_tail_insn appropriately. + + * haifa-sched.c (schedule_block): Do not count USE or CLOBBER + insns against the issue rate. + + 2002-05-30 Jeff Law + + * flow.c (propagate_one_insn): Revise yesterday's patch. Delete + a dead insn with a REG_RETVAL note when the entire libcall is not + dead and remove the associated REG_LIBCALL note at the same time. + + 2002-05-29 Jeff Law + + * flow.c (propagate_one_insn): Do not remove a dead insn if it + contains a REG_RETVAL note. + + * haifa-sched (sched_analyze): Remove another useless clearing + of SCHED_GROUP_P I missed yesterday. + + 2002-05-28 David Edelsohn + Jeff Law + + * optabs.c (expand_binop): Fix nwords sign warnings. + generate pseudo for add_optab. + + * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P. + * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used. + + 2002-08-18 Neil Booth + + PR preprocessor/7602 + * cppinit.c (path_include): Treat the system environment + variables as being cxx_aware. + + 2002-08-16 David Edelsohn + + * collect2.c (is_ctor_dtor): Add other possible JOINER values. + + * config/rs6000/rs6000.c (output_mi_thunk): Return to function + section on TARGET_ELF. + + * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning. + (Binaries): Update Bull Freeware URL. + + 2002-08-15 Neil Booth + + PR preprocessor/7358 + PR preprocessor/7357 + PR preprocessor/7526 + * cppfiles.c (stack_include_file): Ignore main file if + appropriate. Correct test of whether a dependency should + be output. + * cppinit.c (init_dependency_output): Ignore main file + for SUNPRO_DEPENDENCIES. + (struct lang_flags): Rename trigraphs std. + (set_lang): Update. + * cpplib.c (run_directive): Kludge so _Pragma dependency works. + * cpplib.h (struct cpp_options): New members. + * cppmacro.c (collect_args): Flag whether to swallow a possible + future comma pasted with varargs. + (replace_args): Use this flag. + * doc/cpp.texi: Update varargs extension documentation. + * doc/cppenv.texi: Update. + 2002-08-14 Release Manager * GCC 3.2 Released. *************** *** 105,111 **** instead of gen_rtx_SUBREG. (arm_reload_out_hi): Use gen_lowpart instead of gen_rtx_SUBREG to access QImode components. ! * config/arm/arm.md: Disable zero_extend split for QImode subregs in BIG_ENDIAN mode. (storehi_bigend): Match use of least significant byte. (storeinthi): Remove extraneous SUBREG. --- 1103,1109 ---- instead of gen_rtx_SUBREG. (arm_reload_out_hi): Use gen_lowpart instead of gen_rtx_SUBREG to access QImode components. ! * config/arm/arm.md: Disable zero_extend split for QImode subregs in BIG_ENDIAN mode. (storehi_bigend): Match use of least significant byte. (storeinthi): Remove extraneous SUBREG. *************** *** 191,197 **** * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating QI mode registers in soft registers. ! ("zero_extendqihi2"): Do not take into account soft registers for register allocation (use '*' constraint). 2002-07-05 Stephane Carrez --- 1189,1195 ---- * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating QI mode registers in soft registers. ! ("zero_extendqihi2"): Do not take into account soft registers for register allocation (use '*' constraint). 2002-07-05 Stephane Carrez *************** *** 212,218 **** * dwarfout.c (output_reg_number): Fix warning message. (output_bound_representation): Check SAVE_EXPR_RTL is not NULL before using it. ! 2002-07-03 Richard Henderson * config/i386/i386.md (prologue_get_pc): Issue pop here ... --- 1210,1216 ---- * dwarfout.c (output_reg_number): Fix warning message. (output_bound_representation): Check SAVE_EXPR_RTL is not NULL before using it. ! 2002-07-03 Richard Henderson * config/i386/i386.md (prologue_get_pc): Issue pop here ... *************** *** 255,261 **** * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to avoid the auto increment addressing modes. ("*subsi3"): Likewise. ! (split for add/sub on address): For 68HC12 push the value on the stack and do the operation with a pop. 2002-06-28 Stephane Carrez --- 1253,1259 ---- * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to avoid the auto increment addressing modes. ("*subsi3"): Likewise. ! (split for add/sub on address): For 68HC12 push the value on the stack and do the operation with a pop. 2002-06-28 Stephane Carrez *************** *** 302,308 **** * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Pass flag_function_sections as new 3rd arg to resolve_unique_section. ! 2002-06-27 Neil Booth PR preprocessor/7070 --- 1300,1306 ---- * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Pass flag_function_sections as new 3rd arg to resolve_unique_section. ! 2002-06-27 Neil Booth PR preprocessor/7070 *************** *** 318,324 **** * doc/install.texi: Change ` bit' to `-bit'. * doc/md.texi: Change `-bits' to `-bit'. * doc/tm.texi: Change `-bits' to ` bits'. ! 2002-06-24 David S. Miller * config/sparc/sparc.h (INIT_TARGET_OPTABS): If ARCH64, set the --- 1316,1322 ---- * doc/install.texi: Change ` bit' to `-bit'. * doc/md.texi: Change `-bits' to `-bit'. * doc/tm.texi: Change `-bits' to ` bits'. ! 2002-06-24 David S. Miller * config/sparc/sparc.h (INIT_TARGET_OPTABS): If ARCH64, set the diff -Nrc3pad gcc-3.2/gcc/Makefile.in gcc-3.2.1/gcc/Makefile.in *** gcc-3.2/gcc/Makefile.in Thu May 23 17:57:21 2002 --- gcc-3.2.1/gcc/Makefile.in Mon Oct 14 21:04:16 2002 *************** libgcc.mk: config.status Makefile mklibg *** 1003,1009 **** SHLIB_MKMAP_OPTS='$(SHLIB_MKMAP_OPTS)' \ SHLIB_MAPFILES='$(SHLIB_MAPFILES)' \ SHLIB_NM_FLAGS='$(SHLIB_NM_FLAGS)' \ ! SHLIB_SLIBDIR_SUFFIXES='$(SHLIB_SLIBDIR_SUFFIXES)' \ mkinstalldirs='$(SHELL) $(srcdir)/mkinstalldirs' \ $(SHELL) mklibgcc > tmp-libgcc.mk mv tmp-libgcc.mk libgcc.mk --- 1003,1009 ---- SHLIB_MKMAP_OPTS='$(SHLIB_MKMAP_OPTS)' \ SHLIB_MAPFILES='$(SHLIB_MAPFILES)' \ SHLIB_NM_FLAGS='$(SHLIB_NM_FLAGS)' \ ! MULTILIB_OSDIRNAMES='$(MULTILIB_OSDIRNAMES)' \ mkinstalldirs='$(SHELL) $(srcdir)/mkinstalldirs' \ $(SHELL) mklibgcc > tmp-libgcc.mk mv tmp-libgcc.mk libgcc.mk *************** libgcc.a: $(LIBGCC_DEPS) *** 1037,1043 **** # switches. multilib.h: s-mlib; @true s-mlib: $(srcdir)/genmultilib Makefile ! if test @enable_multilib@ = yes; then \ $(SHELL) $(srcdir)/genmultilib \ "$(MULTILIB_OPTIONS)" \ "$(MULTILIB_DIRNAMES)" \ --- 1037,1044 ---- # switches. multilib.h: s-mlib; @true s-mlib: $(srcdir)/genmultilib Makefile ! if test @enable_multilib@ = yes \ ! || test -n "$(MULTILIB_OSDIRNAMES)"; then \ $(SHELL) $(srcdir)/genmultilib \ "$(MULTILIB_OPTIONS)" \ "$(MULTILIB_DIRNAMES)" \ *************** s-mlib: $(srcdir)/genmultilib Makefile *** 1045,1053 **** "$(MULTILIB_EXCEPTIONS)" \ "$(MULTILIB_EXTRA_OPTS)" \ "$(MULTILIB_EXCLUSIONS)" \ > tmp-mlib.h; \ else \ ! $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' > tmp-mlib.h; \ fi $(SHELL) $(srcdir)/move-if-change tmp-mlib.h multilib.h $(STAMP) s-mlib --- 1046,1057 ---- "$(MULTILIB_EXCEPTIONS)" \ "$(MULTILIB_EXTRA_OPTS)" \ "$(MULTILIB_EXCLUSIONS)" \ + "$(MULTILIB_OSDIRNAMES)" \ + "@enable_multilib@" \ > tmp-mlib.h; \ else \ ! $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' no \ ! > tmp-mlib.h; \ fi $(SHELL) $(srcdir)/move-if-change tmp-mlib.h multilib.h $(STAMP) s-mlib *************** varasm.o : varasm.c $(CONFIG_H) $(SYSTEM *** 1379,1385 **** $(HASHTAB_H) $(TARGET_H) langhooks.h function.o : function.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ function.h $(EXPR_H) libfuncs.h $(REGS_H) hard-reg-set.h \ ! insn-config.h $(RECOG_H) output.h toplev.h except.h hash.h $(GGC_H) $(TM_P_H) stmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h function.h \ insn-config.h hard-reg-set.h $(EXPR_H) libfuncs.h except.h \ $(LOOP_H) $(RECOG_H) toplev.h output.h varray.h $(GGC_H) $(TM_P_H) --- 1383,1390 ---- $(HASHTAB_H) $(TARGET_H) langhooks.h function.o : function.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ function.h $(EXPR_H) libfuncs.h $(REGS_H) hard-reg-set.h \ ! insn-config.h $(RECOG_H) output.h toplev.h except.h hash.h $(GGC_H) \ ! $(TM_P_H) langhooks.h stmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h function.h \ insn-config.h hard-reg-set.h $(EXPR_H) libfuncs.h except.h \ $(LOOP_H) $(RECOG_H) toplev.h output.h varray.h $(GGC_H) $(TM_P_H) *************** $(docdir)/gcc.info: $(docdir)/gcc.texi $ *** 2273,2279 **** $(docdir)/invoke.texi $(docdir)/extend.texi $(docdir)/md.texi \ $(docdir)/objc.texi $(docdir)/gcov.texi $(docdir)/trouble.texi \ $(docdir)/bugreport.texi $(docdir)/service.texi \ ! $(docdir)/contribute.texi $(docdir)/vms.texi \ $(docdir)/include/funding.texi $(docdir)/gnu.texi \ $(docdir)/include/gpl.texi $(docdir)/include/fdl.texi \ $(docdir)/contrib.texi $(docdir)/cppenv.texi $(docdir)/cppopts.texi --- 2278,2284 ---- $(docdir)/invoke.texi $(docdir)/extend.texi $(docdir)/md.texi \ $(docdir)/objc.texi $(docdir)/gcov.texi $(docdir)/trouble.texi \ $(docdir)/bugreport.texi $(docdir)/service.texi \ ! $(docdir)/contribute.texi $(docdir)/vms.texi $(docdir)/compat.texi \ $(docdir)/include/funding.texi $(docdir)/gnu.texi \ $(docdir)/include/gpl.texi $(docdir)/include/fdl.texi \ $(docdir)/contrib.texi $(docdir)/cppenv.texi $(docdir)/cppopts.texi diff -Nrc3pad gcc-3.2/gcc/NEWS gcc-3.2.1/gcc/NEWS *** gcc-3.2/gcc/NEWS Wed Aug 14 09:31:23 2002 --- gcc-3.2.1/gcc/NEWS Tue Nov 19 18:12:06 2002 *************** http://gcc.gnu.org/gcc-3.2/index.html *** 9,47 **** GCC 3.2 ! August 14, 2002 The [1]GNU project and the GCC developers are pleased to announce the release of GCC 3.2. GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [2]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have ! contributed [3]new features, improvements, bug fixes, and other ! changes as well as test results to GCC. This [4]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [5]GCC ! project web site or contact the [6]GCC development mailing list. ! To obtain GCC please use [7]our mirror sites, one of the [8]GNU mirror ! sites, or [9]our CVS server. _________________________________________________________________ _________________________________________________________________ ! Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There ! are also [11]other ways to contact the FSF. ! These pages are maintained by [12]The GCC team. ! Please send comments on these web pages and GCC to [13]gcc@gnu.org ! or [14]gcc@gcc.gnu.org, send other questions to [15]gnu@gnu.org. Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. --- 9,55 ---- GCC 3.2 ! November 19, 2002 The [1]GNU project and the GCC developers are pleased to announce the + release of GCC 3.2.1. + + The links below still apply to GCC 3.2.1. + + August 14, 2002 + + The [2]GNU project and the GCC developers are pleased to announce the release of GCC 3.2. GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [3]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have ! contributed [4]new features, improvements, bug fixes, and other ! changes as well as test results to GCC. This [5]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [6]GCC ! project web site or contact the [7]GCC development mailing list. ! To obtain GCC please use [8]our mirror sites, one of the [9]GNU mirror ! sites, or [10]our CVS server. _________________________________________________________________ _________________________________________________________________ ! 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 our public ! mailing list at [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. *************** http://gcc.gnu.org/gcc-3.2/index.html *** 49,87 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-08-14 [16]Valid XHTML 1.0 References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-3.2/buildstat.html ! 3. http://gcc.gnu.org/gcc-3.2/changes.html ! 4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 5. http://gcc.gnu.org/index.html ! 6. mailto:gcc@gcc.gnu.org ! 7. http://gcc.gnu.org/mirrors.html ! 8. http://www.gnu.org/order/ftp.html ! 9. http://gcc.gnu.org/cvs.html ! 10. mailto:gnu@gnu.org ! 11. http://www.gnu.org/home.html#ContactInfo ! 12. http://gcc.gnu.org/about.html ! 13. mailto:gcc@gnu.org ! 14. mailto:gcc@gcc.gnu.org ! 15. mailto:gnu@gnu.org ! 16. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/changes.html ! GCC 3.2 Changes, New Features, and Fixes ! Relase Notes ! See [1]this message for a list of bugs fixed in this released. Caveats * This GCC release is based on the GCC 3.1 sourcebase, and thus has ! all the [2]changes in the GCC 3.1 series. In addition, GCC 3.2 has a number of C++ ABI fixes which make its C++ compiler generate binary code which is incompatible with the C++ compilers found in earlier GCC releases, including GCC 3.1 and GCC 3.1.1. --- 57,144 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-18 [17]Valid XHTML 1.0 References 1. http://www.gnu.org/ ! 2. http://www.gnu.org/ ! 3. http://gcc.gnu.org/gcc-3.2/buildstat.html ! 4. http://gcc.gnu.org/gcc-3.2/changes.html ! 5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 6. http://gcc.gnu.org/index.html ! 7. mailto:gcc@gcc.gnu.org ! 8. http://gcc.gnu.org/mirrors.html ! 9. http://www.gnu.org/order/ftp.html ! 10. http://gcc.gnu.org/cvs.html ! 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 ! 17. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/changes.html ! Changes in GCC 3.2.1 ! C/C++/Objective-C ! * The method of constructing the list of directories to be searched ! for header files has been revised. If a directory named by a -I ! option is a standard system include directory, the option is ! ignored to ensure that the default search order for system ! directories and the special treatment of system header files are ! not defeated. ! * The C and Objective-C compilers no longer accept the "Naming ! Types" extension (typedef foo = bar); it was already unavailable ! in C++. Code which uses it will need to be changed to use the ! "typeof" extension instead: typedef typeof(bar) foo. (We have ! removed this extension without a period of deprecation because it ! has caused the compiler to crash since version 3.0 and no one ! noticed until very recently. Thus we conclude it is not in ! widespread use.) ! ! New Targets and Target Specific Improvements ! ! IA-32 ! ! * Fixed a number of bugs in SSE and MMX intrinsics. ! * Fixed common compiler crashes with SSE instruction set enabled ! (implied by -march=pentium3, pentium4, athlon-xp) ! * __m128 and __m128i is not 128bit aligned when used in structures. ! ! x86-64 ! ! * A bug whereby the compiler could generate bad code for bzero has ! been fixed. ! * ABI fixes (implying ABI incompatibilities with previous version in ! some corner cases) ! * Fixed prefetch code generation ! ! Bug Fixes ! ! See [1]this message for a list of bugs fixed in this release. ! ! Changes in GCC 3.2 ! ! Bug Fixes ! ! See [2]this message for a list of bugs fixed in this release. Caveats + * The C++ compiler does not correctly zero-initialize + pointers-to-data members. You must explicitly initialize them. For + example: + int S::*m(0); + + will work, but depending on default-initialization to zero will + not work. This bug cannot be fixed in GCC 3.2 without inducing + unacceptable risks. It will be fixed in GCC 3.3. * This GCC release is based on the GCC 3.1 sourcebase, and thus has ! all the [3]changes in the GCC 3.1 series. In addition, GCC 3.2 has a number of C++ ABI fixes which make its C++ compiler generate binary code which is incompatible with the C++ compilers found in earlier GCC releases, including GCC 3.1 and GCC 3.1.1. *************** New Languages and Language specific impr *** 99,123 **** they are necessary for correct compilation of C++, as opposed to conformance to the ABI documents. * For details on how to build an ABI compliant compiler for ! GNU/Linux systems, check the [3]common C++ ABI page. ! ! New Targets and Target Specific Improvements ! ! x86-64 ! ! * A bug whereby the complier could generated bad code for bzero has ! been fixed. ! * _________________________________________________________________ ! 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. --- 156,173 ---- they are necessary for correct compilation of C++, as opposed to conformance to the ABI documents. * For details on how to build an ABI compliant compiler for ! GNU/Linux systems, check the [4]common C++ ABI page. _________________________________________________________________ ! Please send FSF & GNU inquiries & questions to [5]gnu@gnu.org. There ! are also [6]other ways to contact the FSF. ! These pages are maintained by [7]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [8]gcc@gnu.org or [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. *************** New Targets and Target Specific Improvem *** 125,144 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-08-14 [10]Valid XHTML 1.0 References ! 1. http://gcc.gnu.org/ml/gcc/2002-08/msg00405.html ! 2. http://gcc.gnu.org/gcc-3.1/changes.html ! 3. http://gcc.gnu.org/gcc-3.2/c++-abi.html ! 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 ! 10. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/index.html --- 175,195 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-18 [11]Valid XHTML 1.0 References ! 1. http://gcc.gnu.org/ml/gcc/2002-11/msg00445.html ! 2. http://gcc.gnu.org/ml/gcc/2002-08/msg00405.html ! 3. http://gcc.gnu.org/gcc-3.1/changes.html ! 4. http://gcc.gnu.org/gcc-3.2/c++-abi.html ! 5. mailto:gnu@gnu.org ! 6. http://www.gnu.org/home.html#ContactInfo ! 7. http://gcc.gnu.org/about.html ! 8. mailto:gcc@gnu.org ! 9. mailto:gcc@gcc.gnu.org ! 10. mailto:gnu@gnu.org ! 11. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/index.html *************** http://gcc.gnu.org/gcc-3.1/index.html *** 182,189 **** 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. --- 233,241 ---- These pages are maintained by [13]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/gcc-3.1/index.html *** 191,197 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-28 [17]Valid XHTML 1.0 References --- 243,249 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [17]Valid XHTML 1.0 References *************** Documentation improvements *** 544,551 **** These pages are maintained by [21]The GCC team. ! Please send comments on these web pages and GCC to [22]gcc@gnu.org ! or [23]gcc@gcc.gnu.org, send other questions to [24]gnu@gnu.org. Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. --- 596,604 ---- These pages are maintained by [21]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org, send other ! questions to [24]gnu@gnu.org. Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *************** Documentation improvements *** 553,559 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-26 [25]Valid XHTML 1.0 References --- 606,612 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [25]Valid XHTML 1.0 References *************** References *** 565,571 **** 6. http://www.codesourcery.com/ 7. http://gcc.gnu.org/gcc-3.1/c99status.html 8. http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_1 ! 9. http://gcc.gnu.org/onlinedocs/g77_news.html 10. http://www.gnat.com/ 11. http://www-cs-faculty.stanford.edu/~knuth/mmix.html 12. http://www.axis.com/ --- 618,624 ---- 6. http://www.codesourcery.com/ 7. http://gcc.gnu.org/gcc-3.1/c99status.html 8. http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_1 ! 9. http://gcc.gnu.org/onlinedocs/g77/News.html 10. http://www.gnat.com/ 11. http://www-cs-faculty.stanford.edu/~knuth/mmix.html 12. http://www.axis.com/ *************** Previous 3.0.x Releases *** 632,639 **** 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. --- 685,693 ---- These pages are maintained by [13]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** Previous 3.0.x Releases *** 641,647 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [17]Valid XHTML 1.0 References --- 695,701 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [17]Valid XHTML 1.0 References *************** Other significant improvements *** 832,839 **** 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. --- 886,894 ---- These pages are maintained by [16]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** Other significant improvements *** 841,847 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [20]Valid XHTML 1.0 References --- 896,902 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [20]Valid XHTML 1.0 References *************** References *** 855,861 **** 8. http://gcc.gnu.org/news/inlining.html 9. http://gcc.gnu.org/news/dependencies.html 10. http://gcc.gnu.org/gcc-3.0/c99status.html ! 11. http://gcc.gnu.org/onlinedocs/g77_news.html 12. http://gcc.gnu.org/gcc-3.0/libgcc.html 13. http://gcc.gnu.org/gcc-2.95/features.html 14. mailto:gnu@gnu.org --- 910,916 ---- 8. http://gcc.gnu.org/news/inlining.html 9. http://gcc.gnu.org/news/dependencies.html 10. http://gcc.gnu.org/gcc-3.0/c99status.html ! 11. http://gcc.gnu.org/onlinedocs/g77/News.html 12. http://gcc.gnu.org/gcc-3.0/libgcc.html 13. http://gcc.gnu.org/gcc-2.95/features.html 14. mailto:gnu@gnu.org *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 910,917 **** 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. --- 965,973 ---- These pages are maintained by [6]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 919,925 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-08-14 [10]Valid XHTML 1.0 References --- 975,981 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [10]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-2.95/index.html *** 988,995 **** 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. --- 1044,1052 ---- These pages are maintained by [15]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/gcc-2.95/index.html *** 997,1003 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [19]Valid XHTML 1.0 References --- 1054,1060 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [19]Valid XHTML 1.0 References *************** Additional Changes in GCC 2.95.3 *** 1261,1268 **** 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. --- 1318,1326 ---- These pages are maintained by [20]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** Additional Changes in GCC 2.95.3 *** 1270,1276 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [24]Valid XHTML 1.0 References --- 1328,1334 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [24]Valid XHTML 1.0 References *************** References *** 1283,1289 **** 7. http://gcc.gnu.org/news/alias.html 8. http://gcc.gnu.org/fom_serv/cache/24.html 9. http://gcc.gnu.org/gcc-2.95/c++features.html ! 10. http://gcc.gnu.org/onlinedocs/g77_news.html 11. http://gcc.gnu.org/java/gcj-announce.txt 12. http://gcc.gnu.org/news/javaannounce.html 13. http://gcc.gnu.org/c99status.html --- 1341,1347 ---- 7. http://gcc.gnu.org/news/alias.html 8. http://gcc.gnu.org/fom_serv/cache/24.html 9. http://gcc.gnu.org/gcc-2.95/c++features.html ! 10. http://gcc.gnu.org/onlinedocs/g77/News.html 11. http://gcc.gnu.org/java/gcj-announce.txt 12. http://gcc.gnu.org/news/javaannounce.html 13. http://gcc.gnu.org/c99status.html *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 1350,1357 **** 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. --- 1408,1416 ---- These pages are maintained by [6]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 1359,1365 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [10]Valid XHTML 1.0 References --- 1418,1424 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [10]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/index.html *** 1578,1585 **** 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. --- 1637,1645 ---- These pages are maintained by [13]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.1/index.html *** 1587,1593 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [17]Valid XHTML 1.0 References --- 1647,1653 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [17]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 1684,1691 **** 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. --- 1744,1752 ---- These pages are maintained by [8]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 1693,1703 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References ! 1. http://gcc.gnu.org/onlinedocs/g77_news.html 2. http://gcc.gnu.org/egcs-1.1/c++features.html 3. http://gcc.gnu.org/news/gcse.html 4. http://gcc.gnu.org/news/alias.html --- 1754,1764 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [12]Valid XHTML 1.0 References ! 1. http://gcc.gnu.org/onlinedocs/g77/News.html 2. http://gcc.gnu.org/egcs-1.1/c++features.html 3. http://gcc.gnu.org/news/gcse.html 4. http://gcc.gnu.org/news/alias.html *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 1744,1751 **** 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. --- 1805,1813 ---- These pages are maintained by [4]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 1753,1759 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [8]Valid XHTML 1.0 References --- 1815,1821 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [8]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.h *** 1848,1855 **** 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. --- 1910,1918 ---- These pages are maintained by [8]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.h *** 1857,1863 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References --- 1920,1926 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.h *** 1987,1994 **** 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. --- 2050,2058 ---- These pages are maintained by [8]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.h *** 1996,2002 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References --- 2060,2066 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.h *** 2126,2133 **** 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. --- 2190,2198 ---- These pages are maintained by [8]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.h *** 2135,2141 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References --- 2200,2206 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.htm *** 2222,2229 **** 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. --- 2287,2295 ---- These pages are maintained by [8]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.htm *** 2231,2237 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References --- 2297,2303 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 2295,2302 **** 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. --- 2361,2369 ---- These pages are maintained by [5]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 2304,2310 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [9]Valid XHTML 1.0 References --- 2371,2377 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [9]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 2354,2361 **** 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. --- 2421,2429 ---- These pages are maintained by [4]The GCC team. ! Please send comments on these web pages and GCC to our public ! mailing list at [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. *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 2363,2369 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [8]Valid XHTML 1.0 References --- 2431,2437 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-11-11 [8]Valid XHTML 1.0 References diff -Nrc3pad gcc-3.2/gcc/ada/ChangeLog gcc-3.2.1/gcc/ada/ChangeLog *** gcc-3.2/gcc/ada/ChangeLog Wed Aug 14 08:59:09 2002 --- gcc-3.2.1/gcc/ada/ChangeLog Tue Nov 19 17:48:10 2002 *************** *** 1,3 **** --- 1,20 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-08-25 Andre Leis + David Billinghurst (David.Billinghurst@riotinto.com> + + * sysdep.c (__gnat_ttyname): include on cygwin + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/gcc/ada/gnatvsn.ads gcc-3.2.1/gcc/ada/gnatvsn.ads *** gcc-3.2/gcc/ada/gnatvsn.ads Wed Aug 14 09:01:19 2002 --- gcc-3.2.1/gcc/ada/gnatvsn.ads Tue Nov 19 08:16:36 2002 *************** *** 6,12 **** -- -- -- S p e c -- -- -- ! -- $Revision: 1.2.12.65.2.20 $ -- -- -- Copyright (C) 1992-2002 Free Software Foundation, Inc. -- -- -- --- 6,12 ---- -- -- -- S p e c -- -- -- ! -- $Revision: 1.2.12.65.2.119 $ -- -- -- Copyright (C) 1992-2002 Free Software Foundation, Inc. -- -- -- *************** *** 38,44 **** package Gnatvsn is ! Gnat_Version_String : constant String := "3.2 20020814 (release)"; -- Version output when GNAT (compiler), or its related tools, including -- GNATBIND, GNATCHOP, GNATFIND, GNATLINK, GNATMAKE, GNATXREF, are run -- (with appropriate verbose option switch set). --- 38,44 ---- package Gnatvsn is ! Gnat_Version_String : constant String := "3.2.1 20021119 (release)"; -- Version output when GNAT (compiler), or its related tools, including -- GNATBIND, GNATCHOP, GNATFIND, GNATLINK, GNATMAKE, GNATXREF, are run -- (with appropriate verbose option switch set). diff -Nrc3pad gcc-3.2/gcc/ada/sysdep.c gcc-3.2.1/gcc/ada/sysdep.c *** gcc-3.2/gcc/ada/sysdep.c Sat May 4 03:29:22 2002 --- gcc-3.2.1/gcc/ada/sysdep.c Mon Aug 26 07:11:39 2002 *************** *** 6,12 **** * * * C Implementation File * * * ! * $Revision: 1.5.10.1 $ * * * Copyright (C) 1992-2001 Free Software Foundation, Inc. * * * --- 6,12 ---- * * * C Implementation File * * * ! * $Revision: 1.5.10.1.4.1 $ * * * Copyright (C) 1992-2001 Free Software Foundation, Inc. * * * *************** __gnat_ttyname (filedes) *** 292,298 **** #if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ || (defined (__osf__) && ! defined (__alpha_vxworks)) || defined (WINNT) \ ! || defined (__MACHTEN__) #include #else --- 292,298 ---- #if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ || (defined (__osf__) && ! defined (__alpha_vxworks)) || defined (WINNT) \ ! || defined (__MACHTEN__) || defined (__CYGWIN__) #include #else *************** getc_immediate_common (stream, ch, end_o *** 347,353 **** { #if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ || (defined (__osf__) && ! defined (__alpha_vxworks)) \ ! || defined (__CYGWIN32__) || defined (__MACHTEN__) char c; int nread; int good_one = 0; --- 347,353 ---- { #if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ || (defined (__osf__) && ! defined (__alpha_vxworks)) \ ! || defined (__CYGWIN__) || defined (__MACHTEN__) char c; int nread; int good_one = 0; diff -Nrc3pad gcc-3.2/gcc/alias.c gcc-3.2.1/gcc/alias.c *** gcc-3.2/gcc/alias.c Thu Jun 20 07:35:41 2002 --- gcc-3.2.1/gcc/alias.c Mon Oct 14 21:04:16 2002 *************** *** 1,5 **** /* Alias analysis for GNU C ! Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. Contributed by John Carr (jfc@mit.edu). This file is part of GCC. --- 1,5 ---- /* Alias analysis for GNU C ! Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by John Carr (jfc@mit.edu). This file is part of GCC. *************** objects_must_conflict_p (t1, t2) *** 321,328 **** then they may not conflict. */ if ((t1 != 0 && readonly_fields_p (t1)) || (t2 != 0 && readonly_fields_p (t2)) ! || (t1 != 0 && TYPE_READONLY (t1)) ! || (t2 != 0 && TYPE_READONLY (t2))) return 0; /* If they are the same type, they must conflict. */ --- 321,328 ---- then they may not conflict. */ if ((t1 != 0 && readonly_fields_p (t1)) || (t2 != 0 && readonly_fields_p (t2)) ! || (t1 != 0 && lang_hooks.honor_readonly && TYPE_READONLY (t1)) ! || (t2 != 0 && lang_hooks.honor_readonly && TYPE_READONLY (t2))) return 0; /* If they are the same type, they must conflict. */ diff -Nrc3pad gcc-3.2/gcc/c-common.c gcc-3.2.1/gcc/c-common.c *** gcc-3.2/gcc/c-common.c Thu Jun 20 07:35:43 2002 --- gcc-3.2.1/gcc/c-common.c Wed Aug 28 21:17:12 2002 *************** c_expand_expr (exp, target, tmode, modif *** 3564,3569 **** --- 3564,3570 ---- tree rtl_expr; rtx result; bool preserve_result = false; + bool return_target = false; /* Since expand_expr_stmt calls free_temp_slots after every expression statement, we must call push_temp_slots here. *************** c_expand_expr (exp, target, tmode, modif *** 3591,3598 **** if (TREE_CODE (last) == SCOPE_STMT && TREE_CODE (expr) == EXPR_STMT) { ! TREE_ADDRESSABLE (expr) = 1; ! preserve_result = true; } } --- 3592,3611 ---- if (TREE_CODE (last) == SCOPE_STMT && TREE_CODE (expr) == EXPR_STMT) { ! if (target && TREE_CODE (EXPR_STMT_EXPR (expr)) == VAR_DECL ! && DECL_RTL_IF_SET (EXPR_STMT_EXPR (expr)) == target) ! /* If the last expression is a variable whose RTL is the ! same as our target, just return the target; if it ! isn't valid expanding the decl would produce different ! RTL, and store_expr would try to do a copy. */ ! return_target = true; ! else ! { ! /* Otherwise, note that we want the value from the last ! expression. */ ! TREE_ADDRESSABLE (expr) = 1; ! preserve_result = true; ! } } } *************** c_expand_expr (exp, target, tmode, modif *** 3600,3606 **** expand_end_stmt_expr (rtl_expr); result = expand_expr (rtl_expr, target, tmode, modifier); ! if (preserve_result && GET_CODE (result) == MEM) { if (GET_MODE (result) != BLKmode) result = copy_to_reg (result); --- 3613,3621 ---- expand_end_stmt_expr (rtl_expr); result = expand_expr (rtl_expr, target, tmode, modifier); ! if (return_target) ! result = target; ! else if (preserve_result && GET_CODE (result) == MEM) { if (GET_MODE (result) != BLKmode) result = copy_to_reg (result); diff -Nrc3pad gcc-3.2/gcc/c-common.h gcc-3.2.1/gcc/c-common.h *** gcc-3.2/gcc/c-common.h Wed Apr 17 01:43:56 2002 --- gcc-3.2.1/gcc/c-common.h Sun Sep 1 20:11:06 2002 *************** extern int warn_conversion; *** 464,469 **** --- 464,474 ---- extern int warn_long_long; + /* Nonzero means the expression being parsed will never be evaluated. + This is a count, since unevaluated expressions can nest. */ + + extern int skip_evaluation; + /* C types are partitioned into three subsets: object, function, and incomplete types. */ #define C_TYPE_OBJECT_P(type) \ diff -Nrc3pad gcc-3.2/gcc/c-decl.c gcc-3.2.1/gcc/c-decl.c *** gcc-3.2/gcc/c-decl.c Fri Jul 26 23:23:03 2002 --- gcc-3.2.1/gcc/c-decl.c Sat Oct 19 03:17:39 2002 *************** start_decl (declarator, declspecs, initi *** 3485,3499 **** switch (TREE_CODE (decl)) { case TYPE_DECL: ! /* typedef foo = bar means give foo the same type as bar. ! We haven't parsed bar yet, so `finish_decl' will fix that up. ! Any other case of an initialization in a TYPE_DECL is an error. */ ! if (pedantic || list_length (declspecs) > 1) ! { ! error ("typedef `%s' is initialized", ! IDENTIFIER_POINTER (DECL_NAME (decl))); ! initialized = 0; ! } break; case FUNCTION_DECL: --- 3485,3493 ---- switch (TREE_CODE (decl)) { case TYPE_DECL: ! error ("typedef `%s' is initialized (use __typeof__ instead)", ! IDENTIFIER_POINTER (DECL_NAME (decl))); ! initialized = 0; break; case FUNCTION_DECL: *************** finish_decl (decl, init, asmspec_tree) *** 3642,3657 **** init = 0; if (init) ! { ! if (TREE_CODE (decl) != TYPE_DECL) ! store_init_value (decl, init); ! else ! { ! /* typedef foo = bar; store the type of bar as the type of foo. */ ! TREE_TYPE (decl) = TREE_TYPE (init); ! DECL_INITIAL (decl) = init = 0; ! } ! } /* Deduce size of array from initialization, if not already known */ if (TREE_CODE (type) == ARRAY_TYPE --- 3636,3642 ---- init = 0; if (init) ! store_init_value (decl, init); /* Deduce size of array from initialization, if not already known */ if (TREE_CODE (type) == ARRAY_TYPE diff -Nrc3pad gcc-3.2/gcc/c-objc-common.c gcc-3.2.1/gcc/c-objc-common.c *** gcc-3.2/gcc/c-objc-common.c Thu Mar 28 18:49:58 2002 --- gcc-3.2.1/gcc/c-objc-common.c Fri Oct 25 22:11:08 2002 *************** inline_forbidden_p (nodep, walk_subtrees *** 131,136 **** --- 131,152 ---- break; + case RECORD_TYPE: + case UNION_TYPE: + /* We cannot inline a function of the form + + void F (int i) { struct S { int ar[i]; } s; } + + Attempting to do so produces a catch-22 in tree-inline.c. + If walk_tree examines the TYPE_FIELDS chain of RECORD_TYPE/ + UNION_TYPE nodes, then it goes into infinite recursion on a + structure containing a pointer to its own type. If it doesn't, + then the type node for S doesn't get adjusted properly when + F is inlined, and we abort in find_function_data. */ + for (t = TYPE_FIELDS (node); t; t = TREE_CHAIN (t)) + if (variably_modified_type_p (TREE_TYPE (t))) + return node; + default: break; } *************** c_cannot_inline_tree_fn (fnp) *** 149,154 **** --- 165,178 ---- && lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) == NULL) return 1; + /* Don't auto-inline anything that might not be bound within + this unit of translation. */ + if (!DECL_DECLARED_INLINE_P (fn) && flag_pic && TREE_PUBLIC (fn)) + { + DECL_UNINLINABLE (fn) = 1; + return 1; + } + if (! function_attribute_inlinable_p (fn)) { DECL_UNINLINABLE (fn) = 1; diff -Nrc3pad gcc-3.2/gcc/c-parse.c gcc-3.2.1/gcc/c-parse.c *** gcc-3.2/gcc/c-parse.c Wed Aug 14 09:32:35 2002 --- gcc-3.2.1/gcc/c-parse.c Tue Nov 19 18:13:17 2002 *************** c_parse_init () *** 199,209 **** ! #define YYFINAL 900 #define YYFLAG -32768 #define YYNTBASE 91 ! #define YYTRANSLATE(x) ((unsigned)(x) <= 322 ? yytranslate[x] : 289) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, --- 199,209 ---- ! #define YYFINAL 901 #define YYFLAG -32768 #define YYNTBASE 91 ! #define YYTRANSLATE(x) ((unsigned)(x) <= 322 ? yytranslate[x] : 290) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, *************** static const short yyprhs[] = { 0, *** 248,480 **** 62, 67, 68, 69, 79, 84, 85, 86, 95, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 120, 122, 124, 128, 130, 133, 136, 139, 142, 145, ! 150, 153, 158, 161, 164, 166, 168, 170, 175, 177, ! 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, ! 221, 225, 226, 231, 232, 237, 238, 239, 247, 248, ! 254, 258, 262, 264, 266, 268, 270, 271, 279, 283, ! 287, 291, 295, 300, 307, 316, 323, 328, 332, 336, ! 339, 342, 344, 347, 348, 350, 353, 357, 359, 361, ! 364, 367, 372, 377, 380, 383, 387, 388, 390, 395, ! 400, 404, 408, 411, 414, 416, 419, 422, 425, 428, ! 431, 433, 436, 438, 441, 444, 447, 450, 453, 456, ! 458, 461, 464, 467, 470, 473, 476, 479, 482, 485, ! 488, 491, 494, 497, 500, 503, 506, 508, 511, 514, ! 517, 520, 523, 526, 529, 532, 535, 538, 541, 544, ! 547, 550, 553, 556, 559, 562, 565, 568, 571, 574, ! 577, 580, 583, 586, 589, 592, 595, 598, 601, 604, ! 607, 610, 613, 616, 619, 622, 625, 628, 631, 634, ! 637, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, ! 738, 740, 742, 744, 746, 748, 750, 752, 753, 755, ! 757, 759, 761, 763, 765, 767, 769, 774, 779, 781, ! 786, 788, 793, 794, 799, 800, 807, 811, 812, 819, ! 823, 824, 826, 828, 831, 838, 840, 844, 845, 847, ! 852, 859, 864, 866, 868, 870, 872, 874, 875, 880, ! 882, 883, 886, 888, 892, 896, 899, 900, 905, 907, ! 908, 913, 915, 917, 919, 922, 925, 931, 935, 936, ! 937, 945, 946, 947, 955, 957, 959, 964, 968, 971, ! 975, 977, 979, 981, 985, 988, 990, 994, 997, 1001, ! 1005, 1010, 1014, 1019, 1023, 1026, 1028, 1030, 1033, 1035, ! 1038, 1040, 1043, 1044, 1052, 1058, 1059, 1067, 1073, 1074, ! 1083, 1084, 1092, 1095, 1098, 1101, 1102, 1104, 1105, 1107, ! 1109, 1112, 1113, 1117, 1120, 1124, 1129, 1133, 1135, 1137, ! 1140, 1142, 1147, 1149, 1154, 1159, 1166, 1172, 1177, 1184, ! 1190, 1192, 1196, 1198, 1200, 1204, 1205, 1209, 1210, 1212, ! 1213, 1215, 1218, 1220, 1222, 1224, 1228, 1231, 1235, 1240, ! 1244, 1247, 1250, 1252, 1256, 1261, 1264, 1268, 1272, 1277, ! 1282, 1288, 1294, 1296, 1298, 1300, 1302, 1304, 1307, 1310, ! 1313, 1316, 1318, 1321, 1324, 1327, 1329, 1332, 1335, 1338, ! 1341, 1343, 1346, 1348, 1350, 1352, 1354, 1357, 1358, 1359, ! 1360, 1361, 1362, 1364, 1366, 1369, 1373, 1375, 1378, 1380, ! 1382, 1388, 1390, 1392, 1395, 1398, 1401, 1404, 1405, 1411, ! 1412, 1417, 1418, 1419, 1421, 1424, 1428, 1432, 1436, 1437, ! 1442, 1444, 1448, 1449, 1450, 1458, 1464, 1467, 1468, 1469, ! 1470, 1471, 1484, 1485, 1492, 1495, 1497, 1499, 1502, 1506, ! 1509, 1512, 1515, 1519, 1526, 1535, 1546, 1559, 1563, 1568, ! 1570, 1574, 1580, 1583, 1589, 1590, 1592, 1593, 1595, 1596, ! 1598, 1600, 1604, 1609, 1617, 1619, 1623, 1624, 1628, 1631, ! 1632, 1633, 1640, 1643, 1644, 1646, 1648, 1652, 1654, 1658, ! 1663, 1668, 1672, 1677, 1681, 1686, 1691, 1695, 1700, 1704, ! 1706, 1707, 1711, 1713, 1716, 1718, 1722, 1724, 1728 }; static const short yyrhs[] = { -1, 92, 0, 0, 93, 95, 0, 0, 92, 94, 95, 0, 97, 0, 96, 0, 27, 67, 106, 83, 84, ! 0, 288, 95, 0, 127, 161, 84, 0, 147, 127, ! 161, 84, 0, 146, 127, 160, 84, 0, 153, 84, 0, 1, 84, 0, 1, 85, 0, 84, 0, 0, ! 0, 146, 127, 189, 98, 122, 99, 249, 250, 238, ! 0, 146, 127, 189, 1, 0, 0, 0, 147, 127, ! 194, 100, 122, 101, 249, 250, 238, 0, 147, 127, ! 194, 1, 0, 0, 0, 127, 194, 102, 122, 103, ! 249, 250, 238, 0, 127, 194, 1, 0, 3, 0, 4, 0, 51, 0, 57, 0, 56, 0, 62, 0, 63, 0, 86, 0, 87, 0, 108, 0, 0, 108, ! 0, 113, 0, 108, 88, 113, 0, 119, 0, 58, ! 112, 0, 288, 112, 0, 105, 112, 0, 48, 104, ! 0, 110, 109, 0, 110, 67, 215, 83, 0, 111, ! 109, 0, 111, 67, 215, 83, 0, 33, 112, 0, ! 34, 112, 0, 11, 0, 29, 0, 109, 0, 67, ! 215, 83, 112, 0, 112, 0, 113, 56, 113, 0, ! 113, 57, 113, 0, 113, 58, 113, 0, 113, 59, ! 113, 0, 113, 60, 113, 0, 113, 54, 113, 0, ! 113, 55, 113, 0, 113, 53, 113, 0, 113, 52, ! 113, 0, 113, 51, 113, 0, 113, 49, 113, 0, ! 113, 50, 113, 0, 0, 113, 48, 114, 113, 0, ! 0, 113, 47, 115, 113, 0, 0, 0, 113, 45, ! 116, 106, 46, 117, 113, 0, 0, 113, 45, 118, ! 46, 113, 0, 113, 44, 113, 0, 113, 43, 113, ! 0, 3, 0, 8, 0, 121, 0, 42, 0, 0, ! 67, 215, 83, 89, 120, 175, 85, 0, 67, 106, ! 83, 0, 67, 1, 83, 0, 242, 240, 83, 0, ! 242, 1, 83, 0, 119, 67, 107, 83, 0, 35, ! 67, 113, 88, 215, 83, 0, 36, 67, 113, 88, ! 113, 88, 113, 83, 0, 37, 67, 215, 88, 215, ! 83, 0, 119, 68, 106, 90, 0, 119, 66, 104, ! 0, 119, 65, 104, 0, 119, 62, 0, 119, 63, ! 0, 9, 0, 121, 9, 0, 0, 124, 0, 124, ! 10, 0, 249, 250, 125, 0, 123, 0, 230, 0, ! 124, 123, 0, 123, 230, 0, 148, 127, 160, 84, ! 0, 149, 127, 161, 84, 0, 148, 84, 0, 149, ! 84, 0, 249, 250, 129, 0, 0, 167, 0, 146, ! 127, 160, 84, 0, 147, 127, 161, 84, 0, 146, ! 127, 183, 0, 147, 127, 186, 0, 153, 84, 0, ! 288, 129, 0, 7, 0, 130, 7, 0, 131, 7, ! 0, 130, 168, 0, 132, 7, 0, 133, 7, 0, ! 168, 0, 132, 168, 0, 155, 0, 134, 7, 0, ! 135, 7, 0, 134, 157, 0, 135, 157, 0, 130, ! 155, 0, 131, 155, 0, 156, 0, 134, 168, 0, ! 134, 158, 0, 135, 158, 0, 130, 156, 0, 131, ! 156, 0, 136, 7, 0, 137, 7, 0, 136, 157, ! 0, 137, 157, 0, 132, 155, 0, 133, 155, 0, ! 136, 168, 0, 136, 158, 0, 137, 158, 0, 132, ! 156, 0, 133, 156, 0, 5, 0, 138, 7, 0, ! 139, 7, 0, 130, 5, 0, 131, 5, 0, 138, ! 5, 0, 139, 5, 0, 138, 168, 0, 140, 7, ! 0, 141, 7, 0, 132, 5, 0, 133, 5, 0, ! 140, 5, 0, 141, 5, 0, 140, 168, 0, 142, ! 7, 0, 143, 7, 0, 142, 157, 0, 143, 157, ! 0, 138, 155, 0, 139, 155, 0, 134, 5, 0, ! 135, 5, 0, 142, 5, 0, 143, 5, 0, 142, ! 168, 0, 142, 158, 0, 143, 158, 0, 138, 156, ! 0, 139, 156, 0, 144, 7, 0, 145, 7, 0, ! 144, 157, 0, 145, 157, 0, 140, 155, 0, 141, ! 155, 0, 136, 5, 0, 137, 5, 0, 144, 5, ! 0, 145, 5, 0, 144, 168, 0, 144, 158, 0, ! 145, 158, 0, 140, 156, 0, 141, 156, 0, 134, ! 0, 135, 0, 136, 0, 137, 0, 142, 0, 143, ! 0, 144, 0, 145, 0, 130, 0, 131, 0, 132, ! 0, 133, 0, 138, 0, 139, 0, 140, 0, 141, ! 0, 134, 0, 135, 0, 142, 0, 143, 0, 130, ! 0, 131, 0, 138, 0, 139, 0, 134, 0, 135, ! 0, 136, 0, 137, 0, 130, 0, 131, 0, 132, 0, 133, 0, 134, 0, 135, 0, 136, 0, 137, ! 0, 130, 0, 131, 0, 132, 0, 133, 0, 130, 0, 131, 0, 132, 0, 133, 0, 134, 0, 135, 0, 136, 0, 137, 0, 138, 0, 139, 0, 140, 0, 141, 0, 142, 0, 143, 0, 144, 0, 145, ! 0, 0, 151, 0, 157, 0, 159, 0, 158, 0, ! 6, 0, 203, 0, 198, 0, 4, 0, 28, 67, ! 106, 83, 0, 28, 67, 215, 83, 0, 163, 0, ! 160, 88, 128, 163, 0, 165, 0, 161, 88, 128, ! 165, 0, 0, 27, 67, 121, 83, 0, 0, 189, ! 162, 167, 44, 164, 173, 0, 189, 162, 167, 0, ! 0, 194, 162, 167, 44, 166, 173, 0, 194, 162, ! 167, 0, 0, 168, 0, 169, 0, 168, 169, 0, ! 30, 67, 67, 170, 83, 83, 0, 171, 0, 170, ! 88, 171, 0, 0, 172, 0, 172, 67, 3, 83, ! 0, 172, 67, 3, 88, 108, 83, 0, 172, 67, ! 107, 83, 0, 104, 0, 5, 0, 6, 0, 7, ! 0, 113, 0, 0, 89, 174, 175, 85, 0, 1, ! 0, 0, 176, 204, 0, 177, 0, 176, 88, 177, ! 0, 181, 44, 179, 0, 182, 179, 0, 0, 104, ! 46, 178, 179, 0, 179, 0, 0, 89, 180, 175, ! 85, 0, 113, 0, 1, 0, 182, 0, 181, 182, ! 0, 66, 104, 0, 68, 113, 10, 113, 90, 0, ! 68, 113, 90, 0, 0, 0, 189, 184, 122, 185, ! 249, 250, 243, 0, 0, 0, 194, 187, 122, 188, ! 249, 250, 243, 0, 190, 0, 194, 0, 67, 167, ! 190, 83, 0, 190, 67, 283, 0, 190, 223, 0, ! 58, 154, 190, 0, 4, 0, 192, 0, 193, 0, ! 192, 67, 283, 0, 192, 223, 0, 4, 0, 193, ! 67, 283, 0, 193, 223, 0, 58, 154, 192, 0, ! 58, 154, 193, 0, 67, 167, 193, 83, 0, 194, ! 67, 283, 0, 67, 167, 194, 83, 0, 58, 154, ! 194, 0, 194, 223, 0, 3, 0, 13, 0, 13, ! 168, 0, 14, 0, 14, 168, 0, 12, 0, 12, ! 168, 0, 0, 195, 104, 89, 199, 206, 85, 167, ! 0, 195, 89, 206, 85, 167, 0, 0, 196, 104, ! 89, 200, 206, 85, 167, 0, 196, 89, 206, 85, ! 167, 0, 0, 197, 104, 89, 201, 213, 205, 85, ! 167, 0, 0, 197, 89, 202, 213, 205, 85, 167, ! 0, 195, 104, 0, 196, 104, 0, 197, 104, 0, ! 0, 88, 0, 0, 88, 0, 207, 0, 207, 208, ! 0, 0, 207, 208, 84, 0, 207, 84, 0, 150, ! 127, 209, 0, 150, 127, 249, 250, 0, 151, 127, ! 210, 0, 151, 0, 1, 0, 288, 208, 0, 211, ! 0, 209, 88, 128, 211, 0, 212, 0, 210, 88, ! 128, 212, 0, 249, 250, 189, 167, 0, 249, 250, ! 189, 46, 113, 167, 0, 249, 250, 46, 113, 167, ! 0, 249, 250, 194, 167, 0, 249, 250, 194, 46, ! 113, 167, 0, 249, 250, 46, 113, 167, 0, 214, ! 0, 213, 88, 214, 0, 1, 0, 104, 0, 104, ! 44, 113, 0, 0, 152, 216, 217, 0, 0, 219, ! 0, 0, 219, 0, 220, 168, 0, 221, 0, 220, ! 0, 222, 0, 58, 154, 220, 0, 58, 154, 0, ! 58, 154, 221, 0, 67, 167, 219, 83, 0, 222, ! 67, 273, 0, 222, 223, 0, 67, 273, 0, 223, ! 0, 68, 106, 90, 0, 68, 152, 106, 90, 0, ! 68, 90, 0, 68, 152, 90, 0, 68, 58, 90, ! 0, 68, 152, 58, 90, 0, 68, 5, 106, 90, ! 0, 68, 5, 152, 106, 90, 0, 68, 152, 5, ! 106, 90, 0, 225, 0, 226, 0, 227, 0, 228, ! 0, 253, 0, 225, 253, 0, 226, 253, 0, 227, ! 253, 0, 228, 253, 0, 126, 0, 225, 126, 0, ! 226, 126, 0, 228, 126, 0, 254, 0, 225, 254, ! 0, 226, 254, 0, 227, 254, 0, 228, 254, 0, ! 230, 0, 229, 230, 0, 225, 0, 226, 0, 227, ! 0, 228, 0, 1, 84, 0, 0, 0, 0, 0, ! 0, 236, 0, 237, 0, 236, 237, 0, 32, 287, ! 84, 0, 243, 0, 1, 243, 0, 89, 0, 85, ! 0, 231, 235, 241, 85, 232, 0, 224, 0, 1, ! 0, 67, 89, 0, 239, 240, 0, 245, 252, 0, ! 245, 1, 0, 0, 15, 246, 67, 106, 83, 0, ! 0, 18, 248, 252, 17, 0, 0, 0, 253, 0, ! 254, 251, 0, 233, 251, 234, 0, 249, 250, 265, ! 0, 249, 250, 266, 0, 0, 244, 16, 256, 252, ! 0, 244, 0, 244, 16, 1, 0, 0, 0, 17, ! 257, 67, 106, 83, 258, 252, 0, 247, 67, 106, ! 83, 84, 0, 247, 1, 0, 0, 0, 0, 0, ! 19, 259, 67, 264, 260, 268, 84, 261, 268, 83, ! 262, 252, 0, 0, 20, 67, 106, 83, 263, 252, ! 0, 268, 84, 0, 129, 0, 243, 0, 106, 84, ! 0, 233, 255, 234, 0, 23, 84, 0, 24, 84, ! 0, 25, 84, 0, 25, 106, 84, 0, 27, 267, ! 67, 106, 83, 84, 0, 27, 267, 67, 106, 46, ! 269, 83, 84, 0, 27, 267, 67, 106, 46, 269, ! 46, 269, 83, 84, 0, 27, 267, 67, 106, 46, ! 269, 46, 269, 46, 272, 83, 84, 0, 26, 104, ! 84, 0, 26, 58, 106, 84, 0, 84, 0, 21, ! 113, 46, 0, 21, 113, 10, 113, 46, 0, 22, ! 46, 0, 104, 249, 250, 46, 167, 0, 0, 7, ! 0, 0, 106, 0, 0, 270, 0, 271, 0, 270, ! 88, 271, 0, 9, 67, 106, 83, 0, 68, 104, ! 90, 9, 67, 106, 83, 0, 121, 0, 272, 88, ! 121, 0, 0, 167, 274, 275, 0, 278, 83, 0, ! 0, 0, 279, 84, 276, 167, 277, 275, 0, 1, ! 83, 0, 0, 10, 0, 279, 0, 279, 88, 10, ! 0, 281, 0, 279, 88, 280, 0, 146, 127, 191, ! 167, 0, 146, 127, 194, 167, 0, 146, 127, 218, ! 0, 147, 127, 194, 167, 0, 147, 127, 218, 0, ! 148, 282, 191, 167, 0, 148, 282, 194, 167, 0, ! 148, 282, 218, 0, 149, 282, 194, 167, 0, 149, ! 282, 218, 0, 127, 0, 0, 167, 284, 285, 0, ! 275, 0, 286, 83, 0, 3, 0, 286, 88, 3, ! 0, 104, 0, 287, 88, 104, 0, 31, 0 }; #endif --- 248,481 ---- 62, 67, 68, 69, 79, 84, 85, 86, 95, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 120, 122, 124, 128, 130, 133, 136, 139, 142, 145, ! 150, 153, 158, 161, 164, 166, 168, 170, 172, 177, ! 179, 183, 187, 191, 195, 199, 203, 207, 211, 215, ! 219, 223, 227, 228, 233, 234, 239, 240, 241, 249, ! 250, 256, 260, 264, 266, 268, 270, 272, 273, 281, ! 285, 289, 293, 297, 302, 309, 318, 325, 330, 334, ! 338, 341, 344, 346, 349, 350, 352, 355, 359, 361, ! 363, 366, 369, 374, 379, 382, 385, 389, 390, 392, ! 397, 402, 406, 410, 413, 416, 418, 421, 424, 427, ! 430, 433, 435, 438, 440, 443, 446, 449, 452, 455, ! 458, 460, 463, 466, 469, 472, 475, 478, 481, 484, ! 487, 490, 493, 496, 499, 502, 505, 508, 510, 513, ! 516, 519, 522, 525, 528, 531, 534, 537, 540, 543, ! 546, 549, 552, 555, 558, 561, 564, 567, 570, 573, ! 576, 579, 582, 585, 588, 591, 594, 597, 600, 603, ! 606, 609, 612, 615, 618, 621, 624, 627, 630, 633, ! 636, 639, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, ! 738, 740, 742, 744, 746, 748, 750, 752, 754, 755, ! 757, 759, 761, 763, 765, 767, 769, 771, 776, 781, ! 783, 788, 790, 795, 796, 801, 802, 809, 813, 814, ! 821, 825, 826, 828, 830, 833, 840, 842, 846, 847, ! 849, 854, 861, 866, 868, 870, 872, 874, 876, 877, ! 882, 884, 885, 888, 890, 894, 898, 901, 902, 907, ! 909, 910, 915, 917, 919, 921, 924, 927, 933, 937, ! 938, 939, 947, 948, 949, 957, 959, 961, 966, 970, ! 973, 977, 979, 981, 983, 987, 990, 992, 996, 999, ! 1003, 1007, 1012, 1016, 1021, 1025, 1028, 1030, 1032, 1035, ! 1037, 1040, 1042, 1045, 1046, 1054, 1060, 1061, 1069, 1075, ! 1076, 1085, 1086, 1094, 1097, 1100, 1103, 1104, 1106, 1107, ! 1109, 1111, 1114, 1115, 1119, 1122, 1126, 1131, 1135, 1137, ! 1139, 1142, 1144, 1149, 1151, 1156, 1161, 1168, 1174, 1179, ! 1186, 1192, 1194, 1198, 1200, 1202, 1206, 1207, 1211, 1212, ! 1214, 1215, 1217, 1220, 1222, 1224, 1226, 1230, 1233, 1237, ! 1242, 1246, 1249, 1252, 1254, 1258, 1263, 1266, 1270, 1274, ! 1279, 1284, 1290, 1296, 1298, 1300, 1302, 1304, 1306, 1309, ! 1312, 1315, 1318, 1320, 1323, 1326, 1329, 1331, 1334, 1337, ! 1340, 1343, 1345, 1348, 1350, 1352, 1354, 1356, 1359, 1360, ! 1361, 1362, 1363, 1364, 1366, 1368, 1371, 1375, 1377, 1380, ! 1382, 1384, 1390, 1392, 1394, 1397, 1400, 1403, 1406, 1407, ! 1413, 1414, 1419, 1420, 1421, 1423, 1426, 1430, 1434, 1438, ! 1439, 1444, 1446, 1450, 1451, 1452, 1460, 1466, 1469, 1470, ! 1471, 1472, 1473, 1486, 1487, 1494, 1497, 1499, 1501, 1504, ! 1508, 1511, 1514, 1517, 1521, 1528, 1537, 1548, 1561, 1565, ! 1570, 1572, 1576, 1582, 1585, 1591, 1592, 1594, 1595, 1597, ! 1598, 1600, 1602, 1606, 1611, 1619, 1621, 1625, 1626, 1630, ! 1633, 1634, 1635, 1642, 1645, 1646, 1648, 1650, 1654, 1656, ! 1660, 1665, 1670, 1674, 1679, 1683, 1688, 1693, 1697, 1702, ! 1706, 1708, 1709, 1713, 1715, 1718, 1720, 1724, 1726, 1730 }; static const short yyrhs[] = { -1, 92, 0, 0, 93, 95, 0, 0, 92, 94, 95, 0, 97, 0, 96, 0, 27, 67, 106, 83, 84, ! 0, 289, 95, 0, 128, 162, 84, 0, 148, 128, ! 162, 84, 0, 147, 128, 161, 84, 0, 154, 84, 0, 1, 84, 0, 1, 85, 0, 84, 0, 0, ! 0, 147, 128, 190, 98, 123, 99, 250, 251, 239, ! 0, 147, 128, 190, 1, 0, 0, 0, 148, 128, ! 195, 100, 123, 101, 250, 251, 239, 0, 148, 128, ! 195, 1, 0, 0, 0, 128, 195, 102, 123, 103, ! 250, 251, 239, 0, 128, 195, 1, 0, 3, 0, 4, 0, 51, 0, 57, 0, 56, 0, 62, 0, 63, 0, 86, 0, 87, 0, 108, 0, 0, 108, ! 0, 114, 0, 108, 88, 114, 0, 120, 0, 58, ! 113, 0, 289, 113, 0, 105, 113, 0, 48, 104, ! 0, 110, 109, 0, 110, 67, 216, 83, 0, 111, ! 109, 0, 111, 67, 216, 83, 0, 33, 113, 0, ! 34, 113, 0, 11, 0, 29, 0, 28, 0, 109, ! 0, 67, 216, 83, 113, 0, 113, 0, 114, 56, ! 114, 0, 114, 57, 114, 0, 114, 58, 114, 0, ! 114, 59, 114, 0, 114, 60, 114, 0, 114, 54, ! 114, 0, 114, 55, 114, 0, 114, 53, 114, 0, ! 114, 52, 114, 0, 114, 51, 114, 0, 114, 49, ! 114, 0, 114, 50, 114, 0, 0, 114, 48, 115, ! 114, 0, 0, 114, 47, 116, 114, 0, 0, 0, ! 114, 45, 117, 106, 46, 118, 114, 0, 0, 114, ! 45, 119, 46, 114, 0, 114, 44, 114, 0, 114, ! 43, 114, 0, 3, 0, 8, 0, 122, 0, 42, ! 0, 0, 67, 216, 83, 89, 121, 176, 85, 0, ! 67, 106, 83, 0, 67, 1, 83, 0, 243, 241, ! 83, 0, 243, 1, 83, 0, 120, 67, 107, 83, ! 0, 35, 67, 114, 88, 216, 83, 0, 36, 67, ! 114, 88, 114, 88, 114, 83, 0, 37, 67, 216, ! 88, 216, 83, 0, 120, 68, 106, 90, 0, 120, ! 66, 104, 0, 120, 65, 104, 0, 120, 62, 0, ! 120, 63, 0, 9, 0, 122, 9, 0, 0, 125, ! 0, 125, 10, 0, 250, 251, 126, 0, 124, 0, ! 231, 0, 125, 124, 0, 124, 231, 0, 149, 128, ! 161, 84, 0, 150, 128, 162, 84, 0, 149, 84, ! 0, 150, 84, 0, 250, 251, 130, 0, 0, 168, ! 0, 147, 128, 161, 84, 0, 148, 128, 162, 84, ! 0, 147, 128, 184, 0, 148, 128, 187, 0, 154, ! 84, 0, 289, 130, 0, 7, 0, 131, 7, 0, ! 132, 7, 0, 131, 169, 0, 133, 7, 0, 134, ! 7, 0, 169, 0, 133, 169, 0, 156, 0, 135, ! 7, 0, 136, 7, 0, 135, 158, 0, 136, 158, ! 0, 131, 156, 0, 132, 156, 0, 157, 0, 135, ! 169, 0, 135, 159, 0, 136, 159, 0, 131, 157, ! 0, 132, 157, 0, 137, 7, 0, 138, 7, 0, ! 137, 158, 0, 138, 158, 0, 133, 156, 0, 134, ! 156, 0, 137, 169, 0, 137, 159, 0, 138, 159, ! 0, 133, 157, 0, 134, 157, 0, 5, 0, 139, ! 7, 0, 140, 7, 0, 131, 5, 0, 132, 5, ! 0, 139, 5, 0, 140, 5, 0, 139, 169, 0, ! 141, 7, 0, 142, 7, 0, 133, 5, 0, 134, ! 5, 0, 141, 5, 0, 142, 5, 0, 141, 169, ! 0, 143, 7, 0, 144, 7, 0, 143, 158, 0, ! 144, 158, 0, 139, 156, 0, 140, 156, 0, 135, ! 5, 0, 136, 5, 0, 143, 5, 0, 144, 5, ! 0, 143, 169, 0, 143, 159, 0, 144, 159, 0, ! 139, 157, 0, 140, 157, 0, 145, 7, 0, 146, ! 7, 0, 145, 158, 0, 146, 158, 0, 141, 156, ! 0, 142, 156, 0, 137, 5, 0, 138, 5, 0, ! 145, 5, 0, 146, 5, 0, 145, 169, 0, 145, ! 159, 0, 146, 159, 0, 141, 157, 0, 142, 157, ! 0, 135, 0, 136, 0, 137, 0, 138, 0, 143, ! 0, 144, 0, 145, 0, 146, 0, 131, 0, 132, ! 0, 133, 0, 134, 0, 139, 0, 140, 0, 141, ! 0, 142, 0, 135, 0, 136, 0, 143, 0, 144, ! 0, 131, 0, 132, 0, 139, 0, 140, 0, 135, ! 0, 136, 0, 137, 0, 138, 0, 131, 0, 132, 0, 133, 0, 134, 0, 135, 0, 136, 0, 137, ! 0, 138, 0, 131, 0, 132, 0, 133, 0, 134, 0, 131, 0, 132, 0, 133, 0, 134, 0, 135, 0, 136, 0, 137, 0, 138, 0, 139, 0, 140, 0, 141, 0, 142, 0, 143, 0, 144, 0, 145, ! 0, 146, 0, 0, 152, 0, 158, 0, 160, 0, ! 159, 0, 6, 0, 204, 0, 199, 0, 4, 0, ! 112, 67, 106, 83, 0, 112, 67, 216, 83, 0, ! 164, 0, 161, 88, 129, 164, 0, 166, 0, 162, ! 88, 129, 166, 0, 0, 27, 67, 122, 83, 0, ! 0, 190, 163, 168, 44, 165, 174, 0, 190, 163, ! 168, 0, 0, 195, 163, 168, 44, 167, 174, 0, ! 195, 163, 168, 0, 0, 169, 0, 170, 0, 169, ! 170, 0, 30, 67, 67, 171, 83, 83, 0, 172, ! 0, 171, 88, 172, 0, 0, 173, 0, 173, 67, ! 3, 83, 0, 173, 67, 3, 88, 108, 83, 0, ! 173, 67, 107, 83, 0, 104, 0, 5, 0, 6, ! 0, 7, 0, 114, 0, 0, 89, 175, 176, 85, ! 0, 1, 0, 0, 177, 205, 0, 178, 0, 177, ! 88, 178, 0, 182, 44, 180, 0, 183, 180, 0, ! 0, 104, 46, 179, 180, 0, 180, 0, 0, 89, ! 181, 176, 85, 0, 114, 0, 1, 0, 183, 0, ! 182, 183, 0, 66, 104, 0, 68, 114, 10, 114, ! 90, 0, 68, 114, 90, 0, 0, 0, 190, 185, ! 123, 186, 250, 251, 244, 0, 0, 0, 195, 188, ! 123, 189, 250, 251, 244, 0, 191, 0, 195, 0, ! 67, 168, 191, 83, 0, 191, 67, 284, 0, 191, ! 224, 0, 58, 155, 191, 0, 4, 0, 193, 0, ! 194, 0, 193, 67, 284, 0, 193, 224, 0, 4, ! 0, 194, 67, 284, 0, 194, 224, 0, 58, 155, ! 193, 0, 58, 155, 194, 0, 67, 168, 194, 83, ! 0, 195, 67, 284, 0, 67, 168, 195, 83, 0, ! 58, 155, 195, 0, 195, 224, 0, 3, 0, 13, ! 0, 13, 169, 0, 14, 0, 14, 169, 0, 12, ! 0, 12, 169, 0, 0, 196, 104, 89, 200, 207, ! 85, 168, 0, 196, 89, 207, 85, 168, 0, 0, ! 197, 104, 89, 201, 207, 85, 168, 0, 197, 89, ! 207, 85, 168, 0, 0, 198, 104, 89, 202, 214, ! 206, 85, 168, 0, 0, 198, 89, 203, 214, 206, ! 85, 168, 0, 196, 104, 0, 197, 104, 0, 198, ! 104, 0, 0, 88, 0, 0, 88, 0, 208, 0, ! 208, 209, 0, 0, 208, 209, 84, 0, 208, 84, ! 0, 151, 128, 210, 0, 151, 128, 250, 251, 0, ! 152, 128, 211, 0, 152, 0, 1, 0, 289, 209, ! 0, 212, 0, 210, 88, 129, 212, 0, 213, 0, ! 211, 88, 129, 213, 0, 250, 251, 190, 168, 0, ! 250, 251, 190, 46, 114, 168, 0, 250, 251, 46, ! 114, 168, 0, 250, 251, 195, 168, 0, 250, 251, ! 195, 46, 114, 168, 0, 250, 251, 46, 114, 168, ! 0, 215, 0, 214, 88, 215, 0, 1, 0, 104, ! 0, 104, 44, 114, 0, 0, 153, 217, 218, 0, ! 0, 220, 0, 0, 220, 0, 221, 169, 0, 222, ! 0, 221, 0, 223, 0, 58, 155, 221, 0, 58, ! 155, 0, 58, 155, 222, 0, 67, 168, 220, 83, ! 0, 223, 67, 274, 0, 223, 224, 0, 67, 274, ! 0, 224, 0, 68, 106, 90, 0, 68, 153, 106, ! 90, 0, 68, 90, 0, 68, 153, 90, 0, 68, ! 58, 90, 0, 68, 153, 58, 90, 0, 68, 5, ! 106, 90, 0, 68, 5, 153, 106, 90, 0, 68, ! 153, 5, 106, 90, 0, 226, 0, 227, 0, 228, ! 0, 229, 0, 254, 0, 226, 254, 0, 227, 254, ! 0, 228, 254, 0, 229, 254, 0, 127, 0, 226, ! 127, 0, 227, 127, 0, 229, 127, 0, 255, 0, ! 226, 255, 0, 227, 255, 0, 228, 255, 0, 229, ! 255, 0, 231, 0, 230, 231, 0, 226, 0, 227, ! 0, 228, 0, 229, 0, 1, 84, 0, 0, 0, ! 0, 0, 0, 237, 0, 238, 0, 237, 238, 0, ! 32, 288, 84, 0, 244, 0, 1, 244, 0, 89, ! 0, 85, 0, 232, 236, 242, 85, 233, 0, 225, ! 0, 1, 0, 67, 89, 0, 240, 241, 0, 246, ! 253, 0, 246, 1, 0, 0, 15, 247, 67, 106, ! 83, 0, 0, 18, 249, 253, 17, 0, 0, 0, ! 254, 0, 255, 252, 0, 234, 252, 235, 0, 250, ! 251, 266, 0, 250, 251, 267, 0, 0, 245, 16, ! 257, 253, 0, 245, 0, 245, 16, 1, 0, 0, ! 0, 17, 258, 67, 106, 83, 259, 253, 0, 248, ! 67, 106, 83, 84, 0, 248, 1, 0, 0, 0, ! 0, 0, 19, 260, 67, 265, 261, 269, 84, 262, ! 269, 83, 263, 253, 0, 0, 20, 67, 106, 83, ! 264, 253, 0, 269, 84, 0, 130, 0, 244, 0, ! 106, 84, 0, 234, 256, 235, 0, 23, 84, 0, ! 24, 84, 0, 25, 84, 0, 25, 106, 84, 0, ! 27, 268, 67, 106, 83, 84, 0, 27, 268, 67, ! 106, 46, 270, 83, 84, 0, 27, 268, 67, 106, ! 46, 270, 46, 270, 83, 84, 0, 27, 268, 67, ! 106, 46, 270, 46, 270, 46, 273, 83, 84, 0, ! 26, 104, 84, 0, 26, 58, 106, 84, 0, 84, ! 0, 21, 114, 46, 0, 21, 114, 10, 114, 46, ! 0, 22, 46, 0, 104, 250, 251, 46, 168, 0, ! 0, 7, 0, 0, 106, 0, 0, 271, 0, 272, ! 0, 271, 88, 272, 0, 9, 67, 106, 83, 0, ! 68, 104, 90, 9, 67, 106, 83, 0, 122, 0, ! 273, 88, 122, 0, 0, 168, 275, 276, 0, 279, ! 83, 0, 0, 0, 280, 84, 277, 168, 278, 276, ! 0, 1, 83, 0, 0, 10, 0, 280, 0, 280, ! 88, 10, 0, 282, 0, 280, 88, 281, 0, 147, ! 128, 192, 168, 0, 147, 128, 195, 168, 0, 147, ! 128, 219, 0, 148, 128, 195, 168, 0, 148, 128, ! 219, 0, 149, 283, 192, 168, 0, 149, 283, 195, ! 168, 0, 149, 283, 219, 0, 150, 283, 195, 168, ! 0, 150, 283, 219, 0, 128, 0, 0, 168, 285, ! 286, 0, 276, 0, 287, 83, 0, 3, 0, 287, ! 88, 3, 0, 104, 0, 288, 88, 104, 0, 31, ! 0 }; #endif *************** static const short yyrline[] = { 0, *** 486,542 **** 360, 362, 368, 369, 374, 376, 382, 383, 388, 392, 394, 397, 399, 401, 406, 408, 410, 412, 416, 420, 423, 426, 429, 433, 435, 438, 441, 445, 462, 468, ! 471, 474, 477, 479, 483, 487, 491, 493, 497, 499, ! 501, 503, 505, 507, 509, 511, 513, 515, 517, 519, ! 521, 523, 527, 529, 533, 535, 538, 542, 544, 551, ! 554, 561, 571, 578, 579, 581, 583, 587, 596, 601, ! 603, 619, 626, 628, 631, 641, 651, 653, 657, 663, ! 665, 670, 672, 689, 691, 692, 702, 707, 709, 710, ! 711, 718, 721, 723, 726, 734, 743, 753, 758, 761, ! 763, 765, 767, 769, 825, 829, 832, 837, 843, 847, ! 852, 856, 861, 865, 868, 871, 874, 877, 880, 885, ! 889, 892, 895, 898, 901, 906, 910, 913, 916, 919, ! 922, 927, 931, 934, 937, 940, 945, 949, 952, 955, ! 961, 967, 973, 981, 987, 991, 994, 1000, 1006, 1012, ! 1020, 1026, 1030, 1033, 1036, 1039, 1042, 1045, 1051, 1057, ! 1063, 1071, 1075, 1078, 1081, 1084, 1089, 1093, 1096, 1099, ! 1102, 1105, 1108, 1114, 1120, 1126, 1134, 1138, 1141, 1144, ! 1147, 1153, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1164, ! 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1175, 1177, 1178, ! 1179, 1182, 1184, 1185, 1186, 1189, 1191, 1192, 1193, 1196, ! 1198, 1199, 1200, 1203, 1205, 1206, 1207, 1208, 1209, 1210, ! 1211, 1214, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, ! 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1234, 1237, 1262, ! 1264, 1267, 1271, 1274, 1277, 1281, 1286, 1288, 1294, 1296, ! 1299, 1301, 1304, 1307, 1313, 1320, 1322, 1329, 1336, 1338, ! 1345, 1348, 1352, 1355, 1359, 1364, 1367, 1371, 1374, 1376, ! 1378, 1380, 1387, 1389, 1390, 1391, 1396, 1398, 1400, 1402, ! 1407, 1411, 1414, 1416, 1421, 1425, 1428, 1433, 1433, 1436, ! 1439, 1441, 1443, 1446, 1448, 1451, 1457, 1461, 1465, 1479, ! 1486, 1495, 1509, 1516, 1528, 1530, 1535, 1538, 1543, 1545, ! 1547, 1554, 1556, 1559, 1565, 1567, 1570, 1576, 1578, 1580, ! 1582, 1589, 1595, 1597, 1599, 1601, 1604, 1607, 1611, 1614, ! 1618, 1621, 1631, 1636, 1638, 1642, 1644, 1646, 1650, 1652, ! 1655, 1657, 1662, 1665, 1667, 1675, 1677, 1680, 1682, 1687, ! 1690, 1695, 1697, 1699, 1704, 1708, 1718, 1721, 1726, 1728, ! 1733, 1735, 1739, 1741, 1745, 1749, 1753, 1758, 1762, 1766, ! 1776, 1778, 1783, 1788, 1791, 1795, 1800, 1803, 1806, 1809, ! 1814, 1818, 1824, 1826, 1829, 1831, 1835, 1838, 1842, 1845, ! 1847, 1849, 1851, 1857, 1860, 1862, 1864, 1866, 1868, 1870, ! 1874, 1878, 1890, 1892, 1893, 1897, 1900, 1902, 1903, 1904, ! 1905, 1908, 1910, 1913, 1914, 1917, 1919, 1920, 1921, 1922, ! 1925, 1927, 1930, 1932, 1933, 1934, 1937, 1940, 1947, 1952, ! 1968, 1983, 1985, 1990, 1992, 1995, 2009, 2012, 2015, 2019, ! 2021, 2028, 2030, 2033, 2051, 2058, 2064, 2067, 2078, 2089, ! 2101, 2109, 2115, 2121, 2123, 2127, 2133, 2147, 2156, 2161, ! 2165, 2177, 2187, 2190, 2196, 2197, 2200, 2202, 2206, 2209, ! 2212, 2215, 2216, 2220, 2223, 2226, 2231, 2234, 2237, 2241, ! 2244, 2247, 2250, 2253, 2257, 2261, 2266, 2270, 2282, 2288, ! 2296, 2299, 2302, 2305, 2320, 2324, 2328, 2331, 2336, 2338, ! 2341, 2343, 2347, 2350, 2354, 2357, 2366, 2372, 2377, 2379, ! 2388, 2391, 2392, 2398, 2400, 2410, 2412, 2416, 2419, 2425, ! 2431, 2436, 2439, 2445, 2452, 2458, 2463, 2466, 2472, 2477, ! 2486, 2492, 2497, 2499, 2516, 2519, 2524, 2527, 2531 }; #endif --- 487,543 ---- 360, 362, 368, 369, 374, 376, 382, 383, 388, 392, 394, 397, 399, 401, 406, 408, 410, 412, 416, 420, 423, 426, 429, 433, 435, 438, 441, 445, 462, 468, ! 471, 474, 477, 479, 483, 487, 491, 495, 497, 501, ! 503, 505, 507, 509, 511, 513, 515, 517, 519, 521, ! 523, 525, 527, 531, 533, 537, 539, 542, 546, 548, ! 555, 558, 565, 575, 582, 583, 585, 587, 591, 600, ! 605, 607, 623, 630, 632, 635, 645, 655, 657, 661, ! 667, 669, 674, 676, 693, 695, 696, 706, 711, 713, ! 714, 715, 722, 725, 727, 730, 738, 747, 757, 762, ! 765, 767, 769, 771, 773, 829, 833, 836, 841, 847, ! 851, 856, 860, 865, 869, 872, 875, 878, 881, 884, ! 889, 893, 896, 899, 902, 905, 910, 914, 917, 920, ! 923, 926, 931, 935, 938, 941, 944, 949, 953, 956, ! 959, 965, 971, 977, 985, 991, 995, 998, 1004, 1010, ! 1016, 1024, 1030, 1034, 1037, 1040, 1043, 1046, 1049, 1055, ! 1061, 1067, 1075, 1079, 1082, 1085, 1088, 1093, 1097, 1100, ! 1103, 1106, 1109, 1112, 1118, 1124, 1130, 1138, 1142, 1145, ! 1148, 1151, 1157, 1159, 1160, 1161, 1162, 1163, 1164, 1165, ! 1168, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1179, 1181, ! 1182, 1183, 1186, 1188, 1189, 1190, 1193, 1195, 1196, 1197, ! 1200, 1202, 1203, 1204, 1207, 1209, 1210, 1211, 1212, 1213, ! 1214, 1215, 1218, 1220, 1221, 1222, 1223, 1224, 1225, 1226, ! 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1238, 1241, ! 1266, 1268, 1271, 1275, 1278, 1281, 1285, 1290, 1292, 1298, ! 1300, 1303, 1305, 1308, 1311, 1317, 1324, 1326, 1333, 1340, ! 1342, 1349, 1352, 1356, 1359, 1363, 1368, 1371, 1375, 1378, ! 1380, 1382, 1384, 1391, 1393, 1394, 1395, 1400, 1402, 1404, ! 1406, 1411, 1415, 1418, 1420, 1425, 1429, 1432, 1437, 1438, ! 1441, 1444, 1446, 1448, 1451, 1453, 1456, 1462, 1466, 1470, ! 1484, 1491, 1500, 1514, 1521, 1533, 1535, 1540, 1543, 1548, ! 1550, 1552, 1559, 1561, 1564, 1570, 1572, 1575, 1581, 1583, ! 1585, 1587, 1594, 1600, 1602, 1604, 1606, 1609, 1612, 1616, ! 1619, 1623, 1626, 1636, 1641, 1643, 1647, 1649, 1651, 1655, ! 1657, 1660, 1662, 1667, 1670, 1672, 1680, 1682, 1685, 1687, ! 1692, 1695, 1700, 1702, 1704, 1709, 1713, 1723, 1726, 1731, ! 1733, 1738, 1740, 1744, 1746, 1750, 1754, 1758, 1763, 1767, ! 1771, 1781, 1783, 1788, 1793, 1796, 1800, 1805, 1808, 1811, ! 1814, 1819, 1823, 1829, 1831, 1834, 1836, 1840, 1843, 1847, ! 1850, 1852, 1854, 1856, 1862, 1865, 1867, 1869, 1871, 1873, ! 1875, 1879, 1883, 1895, 1897, 1898, 1902, 1905, 1907, 1908, ! 1909, 1910, 1913, 1915, 1918, 1919, 1922, 1924, 1925, 1926, ! 1927, 1930, 1932, 1935, 1937, 1938, 1939, 1942, 1945, 1952, ! 1957, 1973, 1988, 1990, 1995, 1997, 2000, 2014, 2017, 2020, ! 2024, 2026, 2033, 2035, 2038, 2056, 2063, 2069, 2072, 2083, ! 2094, 2106, 2114, 2120, 2126, 2128, 2132, 2138, 2152, 2161, ! 2166, 2170, 2182, 2192, 2195, 2201, 2202, 2205, 2207, 2211, ! 2214, 2217, 2220, 2221, 2225, 2228, 2231, 2236, 2239, 2242, ! 2246, 2249, 2252, 2255, 2258, 2262, 2266, 2271, 2275, 2287, ! 2293, 2301, 2304, 2307, 2310, 2325, 2329, 2333, 2336, 2341, ! 2343, 2346, 2348, 2352, 2355, 2359, 2362, 2371, 2377, 2382, ! 2384, 2393, 2396, 2397, 2403, 2405, 2415, 2417, 2421, 2424, ! 2430, 2436, 2441, 2444, 2450, 2457, 2463, 2468, 2471, 2477, ! 2482, 2491, 2497, 2502, 2504, 2521, 2524, 2529, 2532, 2536 }; #endif *************** static const char * const yytname[] = { *** 556,563 **** "OBJECTNAME","CLASS","ALIAS","')'","';'","'}'","'~'","'!'","','","'{'","']'", "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6", "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr", ! "sizeof","alignof","cast_expr","expr_no_commas","@9","@10","@11","@12","@13", ! "primary","@14","string","old_style_parm_decls","lineno_datadecl","datadecls", "datadecl","lineno_decl","setspecs","maybe_resetattrs","decl","declspecs_nosc_nots_nosa_noea", "declspecs_nosc_nots_nosa_ea","declspecs_nosc_nots_sa_noea","declspecs_nosc_nots_sa_ea", "declspecs_nosc_ts_nosa_noea","declspecs_nosc_ts_nosa_ea","declspecs_nosc_ts_sa_noea", --- 557,564 ---- "OBJECTNAME","CLASS","ALIAS","')'","';'","'}'","'~'","'!'","','","'{'","']'", "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6", "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr", ! "sizeof","alignof","typeof","cast_expr","expr_no_commas","@9","@10","@11","@12", ! "@13","primary","@14","string","old_style_parm_decls","lineno_datadecl","datadecls", "datadecl","lineno_decl","setspecs","maybe_resetattrs","decl","declspecs_nosc_nots_nosa_noea", "declspecs_nosc_nots_nosa_ea","declspecs_nosc_nots_sa_noea","declspecs_nosc_nots_sa_ea", "declspecs_nosc_ts_nosa_noea","declspecs_nosc_ts_nosa_ea","declspecs_nosc_ts_sa_noea", *************** static const short yyr1[] = { 0, *** 600,656 **** 97, 100, 101, 97, 97, 102, 103, 97, 97, 104, 104, 105, 105, 105, 105, 105, 105, 105, 106, 107, 107, 108, 108, 109, 109, 109, 109, 109, 109, 109, ! 109, 109, 109, 109, 110, 111, 112, 112, 113, 113, ! 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, ! 113, 114, 113, 115, 113, 116, 117, 113, 118, 113, ! 113, 113, 119, 119, 119, 119, 120, 119, 119, 119, ! 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, ! 119, 121, 121, 122, 122, 122, 123, 124, 124, 124, ! 124, 125, 125, 125, 125, 126, 127, 128, 129, 129, ! 129, 129, 129, 129, 130, 130, 130, 131, 132, 132, ! 133, 133, 134, 134, 134, 134, 134, 134, 134, 135, ! 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, ! 136, 137, 137, 137, 137, 137, 138, 138, 138, 138, ! 138, 138, 138, 139, 140, 140, 140, 140, 140, 140, ! 141, 142, 142, 142, 142, 142, 142, 142, 142, 142, ! 142, 143, 143, 143, 143, 143, 144, 144, 144, 144, ! 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, ! 145, 146, 146, 146, 146, 146, 146, 146, 146, 147, ! 147, 147, 147, 147, 147, 147, 147, 148, 148, 148, ! 148, 149, 149, 149, 149, 150, 150, 150, 150, 151, ! 151, 151, 151, 152, 152, 152, 152, 152, 152, 152, ! 152, 153, 153, 153, 153, 153, 153, 153, 153, 153, ! 153, 153, 153, 153, 153, 153, 153, 154, 154, 155, ! 155, 156, 157, 157, 158, 159, 159, 159, 160, 160, ! 161, 161, 162, 162, 164, 163, 163, 166, 165, 165, ! 167, 167, 168, 168, 169, 170, 170, 171, 171, 171, ! 171, 171, 172, 172, 172, 172, 173, 174, 173, 173, ! 175, 175, 176, 176, 177, 177, 178, 177, 177, 180, ! 179, 179, 179, 181, 181, 182, 182, 182, 184, 185, ! 183, 187, 188, 186, 189, 189, 190, 190, 190, 190, ! 190, 191, 191, 192, 192, 192, 193, 193, 193, 193, ! 193, 194, 194, 194, 194, 194, 195, 195, 196, 196, ! 197, 197, 199, 198, 198, 200, 198, 198, 201, 198, ! 202, 198, 203, 203, 203, 204, 204, 205, 205, 206, ! 206, 207, 207, 207, 208, 208, 208, 208, 208, 208, ! 209, 209, 210, 210, 211, 211, 211, 212, 212, 212, ! 213, 213, 213, 214, 214, 216, 215, 217, 217, 218, ! 218, 218, 219, 219, 220, 220, 221, 221, 222, 222, ! 222, 222, 222, 223, 223, 223, 223, 223, 223, 223, ! 223, 223, 224, 224, 224, 224, 225, 225, 225, 225, ! 225, 226, 226, 226, 226, 227, 227, 227, 227, 227, ! 228, 228, 229, 229, 229, 229, 230, 231, 232, 233, ! 234, 235, 235, 236, 236, 237, 238, 238, 239, 240, ! 240, 241, 241, 242, 243, 244, 244, 246, 245, 248, ! 247, 249, 250, 251, 251, 252, 253, 254, 256, 255, ! 255, 255, 257, 258, 255, 255, 255, 259, 260, 261, ! 262, 255, 263, 255, 264, 264, 265, 265, 265, 265, ! 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, ! 266, 266, 266, 266, 267, 267, 268, 268, 269, 269, ! 270, 270, 271, 271, 272, 272, 274, 273, 275, 276, ! 277, 275, 275, 278, 278, 278, 278, 279, 279, 280, ! 280, 280, 280, 280, 281, 281, 281, 281, 281, 282, ! 284, 283, 285, 285, 286, 286, 287, 287, 288 }; static const short yyr2[] = { 0, --- 601,657 ---- 97, 100, 101, 97, 97, 102, 103, 97, 97, 104, 104, 105, 105, 105, 105, 105, 105, 105, 106, 107, 107, 108, 108, 109, 109, 109, 109, 109, 109, 109, ! 109, 109, 109, 109, 110, 111, 112, 113, 113, 114, ! 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, ! 114, 114, 115, 114, 116, 114, 117, 118, 114, 119, ! 114, 114, 114, 120, 120, 120, 120, 121, 120, 120, ! 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, ! 120, 120, 122, 122, 123, 123, 123, 124, 125, 125, ! 125, 125, 126, 126, 126, 126, 127, 128, 129, 130, ! 130, 130, 130, 130, 130, 131, 131, 131, 132, 133, ! 133, 134, 134, 135, 135, 135, 135, 135, 135, 135, ! 136, 136, 136, 136, 136, 136, 137, 137, 137, 137, ! 137, 137, 138, 138, 138, 138, 138, 139, 139, 139, ! 139, 139, 139, 139, 140, 141, 141, 141, 141, 141, ! 141, 142, 143, 143, 143, 143, 143, 143, 143, 143, ! 143, 143, 144, 144, 144, 144, 144, 145, 145, 145, ! 145, 145, 145, 145, 145, 145, 145, 146, 146, 146, ! 146, 146, 147, 147, 147, 147, 147, 147, 147, 147, ! 148, 148, 148, 148, 148, 148, 148, 148, 149, 149, ! 149, 149, 150, 150, 150, 150, 151, 151, 151, 151, ! 152, 152, 152, 152, 153, 153, 153, 153, 153, 153, ! 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, ! 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, ! 156, 156, 157, 158, 158, 159, 160, 160, 160, 161, ! 161, 162, 162, 163, 163, 165, 164, 164, 167, 166, ! 166, 168, 168, 169, 169, 170, 171, 171, 172, 172, ! 172, 172, 172, 173, 173, 173, 173, 174, 175, 174, ! 174, 176, 176, 177, 177, 178, 178, 179, 178, 178, ! 181, 180, 180, 180, 182, 182, 183, 183, 183, 185, ! 186, 184, 188, 189, 187, 190, 190, 191, 191, 191, ! 191, 191, 192, 192, 193, 193, 193, 194, 194, 194, ! 194, 194, 195, 195, 195, 195, 195, 196, 196, 197, ! 197, 198, 198, 200, 199, 199, 201, 199, 199, 202, ! 199, 203, 199, 204, 204, 204, 205, 205, 206, 206, ! 207, 207, 208, 208, 208, 209, 209, 209, 209, 209, ! 209, 210, 210, 211, 211, 212, 212, 212, 213, 213, ! 213, 214, 214, 214, 215, 215, 217, 216, 218, 218, ! 219, 219, 219, 220, 220, 221, 221, 222, 222, 223, ! 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, ! 224, 224, 224, 225, 225, 225, 225, 226, 226, 226, ! 226, 226, 227, 227, 227, 227, 228, 228, 228, 228, ! 228, 229, 229, 230, 230, 230, 230, 231, 232, 233, ! 234, 235, 236, 236, 237, 237, 238, 239, 239, 240, ! 241, 241, 242, 242, 243, 244, 245, 245, 247, 246, ! 249, 248, 250, 251, 252, 252, 253, 254, 255, 257, ! 256, 256, 256, 258, 259, 256, 256, 256, 260, 261, ! 262, 263, 256, 264, 256, 265, 265, 266, 266, 266, ! 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, ! 266, 267, 267, 267, 267, 268, 268, 269, 269, 270, ! 270, 271, 271, 272, 272, 273, 273, 275, 274, 276, ! 277, 278, 276, 276, 279, 279, 279, 279, 280, 280, ! 281, 281, 281, 281, 281, 282, 282, 282, 282, 282, ! 283, 285, 284, 286, 286, 287, 287, 288, 288, 289 }; static const short yyr2[] = { 0, *************** static const short yyr2[] = { 0, *** 659,1552 **** 4, 0, 0, 9, 4, 0, 0, 8, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, ! 2, 4, 2, 2, 1, 1, 1, 4, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 0, 4, 0, 4, 0, 0, 7, 0, 5, ! 3, 3, 1, 1, 1, 1, 0, 7, 3, 3, ! 3, 3, 4, 6, 8, 6, 4, 3, 3, 2, ! 2, 1, 2, 0, 1, 2, 3, 1, 1, 2, ! 2, 4, 4, 2, 2, 3, 0, 1, 4, 4, ! 3, 3, 2, 2, 1, 2, 2, 2, 2, 2, ! 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, ! 1, 1, 1, 1, 1, 1, 4, 4, 1, 4, ! 1, 4, 0, 4, 0, 6, 3, 0, 6, 3, ! 0, 1, 1, 2, 6, 1, 3, 0, 1, 4, ! 6, 4, 1, 1, 1, 1, 1, 0, 4, 1, ! 0, 2, 1, 3, 3, 2, 0, 4, 1, 0, ! 4, 1, 1, 1, 2, 2, 5, 3, 0, 0, ! 7, 0, 0, 7, 1, 1, 4, 3, 2, 3, ! 1, 1, 1, 3, 2, 1, 3, 2, 3, 3, ! 4, 3, 4, 3, 2, 1, 1, 2, 1, 2, ! 1, 2, 0, 7, 5, 0, 7, 5, 0, 8, ! 0, 7, 2, 2, 2, 0, 1, 0, 1, 1, ! 2, 0, 3, 2, 3, 4, 3, 1, 1, 2, ! 1, 4, 1, 4, 4, 6, 5, 4, 6, 5, ! 1, 3, 1, 1, 3, 0, 3, 0, 1, 0, ! 1, 2, 1, 1, 1, 3, 2, 3, 4, 3, ! 2, 2, 1, 3, 4, 2, 3, 3, 4, 4, ! 5, 5, 1, 1, 1, 1, 1, 2, 2, 2, ! 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, ! 1, 2, 1, 1, 1, 1, 2, 0, 0, 0, ! 0, 0, 1, 1, 2, 3, 1, 2, 1, 1, ! 5, 1, 1, 2, 2, 2, 2, 0, 5, 0, ! 4, 0, 0, 1, 2, 3, 3, 3, 0, 4, ! 1, 3, 0, 0, 7, 5, 2, 0, 0, 0, ! 0, 12, 0, 6, 2, 1, 1, 2, 3, 2, ! 2, 2, 3, 6, 8, 10, 12, 3, 4, 1, ! 3, 5, 2, 5, 0, 1, 0, 1, 0, 1, ! 1, 3, 4, 7, 1, 3, 0, 3, 2, 0, ! 0, 6, 2, 0, 1, 1, 3, 1, 3, 4, ! 4, 3, 4, 3, 4, 4, 3, 4, 3, 1, ! 0, 3, 1, 2, 1, 3, 1, 3, 1 }; static const short yydefact[] = { 3, ! 5, 0, 0, 0, 266, 157, 263, 125, 351, 347, ! 349, 0, 0, 0, 559, 17, 4, 8, 7, 0, ! 210, 211, 212, 213, 202, 203, 204, 205, 214, 215, ! 216, 217, 206, 207, 208, 209, 117, 117, 0, 133, ! 140, 260, 262, 261, 131, 283, 0, 0, 0, 265, ! 264, 0, 6, 15, 16, 352, 348, 350, 0, 0, ! 0, 346, 258, 281, 0, 271, 0, 160, 126, 138, ! 144, 128, 161, 127, 139, 145, 167, 129, 150, 155, ! 132, 168, 130, 151, 156, 178, 134, 136, 142, 141, ! 179, 135, 137, 143, 193, 146, 148, 153, 152, 194, ! 147, 149, 154, 162, 158, 176, 185, 164, 163, 159, ! 177, 186, 169, 165, 191, 200, 171, 170, 166, 192, ! 201, 180, 172, 174, 183, 182, 181, 173, 175, 184, ! 195, 187, 189, 198, 197, 196, 188, 190, 199, 0, ! 0, 14, 284, 30, 31, 372, 363, 372, 364, 361, ! 365, 10, 83, 84, 102, 55, 56, 0, 0, 0, ! 0, 0, 86, 0, 32, 34, 33, 0, 35, 36, ! 0, 37, 38, 0, 0, 39, 57, 0, 0, 59, ! 42, 44, 85, 0, 0, 0, 238, 239, 240, 241, ! 234, 235, 236, 237, 396, 0, 288, 230, 231, 232, ! 233, 259, 0, 0, 282, 11, 281, 29, 0, 281, ! 0, 0, 281, 345, 331, 258, 281, 0, 269, 0, ! 325, 326, 0, 0, 0, 0, 353, 0, 356, 0, ! 359, 53, 54, 0, 0, 0, 48, 45, 0, 464, ! 0, 0, 47, 0, 0, 0, 49, 0, 51, 0, ! 0, 76, 74, 72, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 100, 101, 0, 0, ! 40, 0, 103, 0, 460, 452, 0, 46, 267, 398, ! 268, 294, 295, 296, 293, 0, 286, 289, 344, 0, ! 0, 118, 0, 551, 342, 0, 0, 416, 0, 0, ! 0, 27, 0, 472, 109, 473, 280, 0, 0, 13, ! 281, 21, 0, 281, 281, 329, 12, 25, 0, 281, ! 379, 374, 230, 231, 232, 233, 226, 227, 228, 229, ! 117, 117, 371, 0, 372, 281, 372, 393, 394, 368, ! 391, 0, 0, 0, 0, 90, 89, 0, 9, 43, ! 0, 0, 82, 81, 0, 0, 0, 0, 70, 71, ! 69, 68, 67, 65, 66, 60, 61, 62, 63, 64, ! 99, 98, 0, 41, 0, 92, 0, 0, 453, 454, ! 91, 258, 281, 397, 399, 404, 403, 405, 413, 0, ! 288, 40, 343, 272, 273, 0, 0, 0, 0, 418, ! 414, 0, 0, 417, 0, 447, 472, 111, 106, 110, ! 0, 278, 330, 0, 0, 19, 277, 328, 23, 355, ! 472, 472, 373, 380, 0, 358, 0, 0, 369, 0, ! 368, 0, 0, 0, 87, 58, 50, 52, 0, 0, ! 75, 73, 93, 97, 557, 0, 463, 432, 462, 472, ! 472, 472, 472, 0, 441, 0, 473, 427, 436, 455, ! 407, 527, 412, 281, 411, 285, 287, 83, 0, 274, ! 0, 555, 535, 222, 223, 218, 219, 224, 225, 220, ! 221, 117, 117, 553, 0, 536, 538, 552, 0, 420, ! 0, 0, 419, 415, 473, 107, 117, 117, 0, 327, ! 270, 273, 472, 275, 472, 375, 381, 473, 377, 383, ! 473, 281, 281, 395, 392, 281, 0, 0, 0, 0, ! 0, 77, 80, 456, 0, 433, 428, 437, 434, 429, ! 438, 473, 430, 439, 435, 431, 440, 442, 449, 450, ! 406, 408, 0, 0, 527, 410, 290, 0, 292, 533, ! 550, 400, 400, 529, 530, 0, 554, 0, 421, 422, ! 0, 114, 0, 115, 0, 300, 298, 297, 279, 473, ! 0, 473, 281, 376, 281, 0, 354, 357, 362, 281, ! 94, 0, 96, 313, 83, 0, 0, 310, 0, 312, ! 0, 366, 303, 309, 0, 0, 0, 558, 450, 461, ! 266, 0, 0, 0, 0, 0, 0, 515, 510, 459, ! 472, 0, 116, 117, 117, 0, 0, 448, 497, 477, ! 478, 0, 409, 528, 0, 336, 258, 281, 281, 332, ! 333, 281, 547, 401, 404, 258, 281, 281, 549, 281, ! 537, 210, 211, 212, 213, 202, 203, 204, 205, 214, ! 215, 216, 217, 206, 207, 208, 209, 117, 117, 539, ! 556, 0, 28, 457, 0, 0, 0, 0, 276, 0, ! 472, 0, 281, 472, 0, 281, 360, 0, 316, 0, ! 0, 307, 88, 0, 302, 0, 315, 306, 78, 0, ! 513, 500, 501, 502, 0, 0, 0, 516, 0, 473, ! 498, 0, 0, 123, 468, 483, 470, 488, 0, 481, ! 0, 0, 451, 465, 124, 291, 407, 527, 545, 281, ! 335, 281, 338, 546, 402, 407, 527, 548, 531, 400, ! 400, 458, 112, 113, 0, 20, 24, 382, 473, 281, ! 0, 385, 384, 281, 0, 388, 95, 0, 318, 0, ! 0, 304, 305, 0, 511, 503, 0, 508, 0, 0, ! 0, 121, 319, 0, 122, 322, 0, 0, 450, 0, ! 0, 0, 467, 472, 466, 487, 0, 499, 339, 340, ! 0, 334, 337, 0, 281, 281, 542, 281, 544, 299, ! 0, 387, 281, 390, 281, 0, 311, 308, 0, 509, ! 0, 281, 119, 0, 120, 0, 0, 0, 0, 517, ! 0, 482, 450, 451, 474, 472, 0, 341, 532, 540, ! 541, 543, 386, 389, 317, 512, 519, 0, 514, 320, ! 323, 0, 0, 471, 518, 496, 489, 0, 493, 480, ! 476, 475, 0, 0, 0, 0, 520, 521, 504, 472, ! 472, 469, 484, 517, 495, 450, 486, 0, 0, 519, ! 0, 0, 473, 473, 450, 0, 494, 0, 0, 0, ! 505, 522, 0, 0, 485, 490, 523, 0, 0, 0, ! 321, 324, 517, 0, 525, 0, 506, 0, 0, 0, ! 0, 491, 524, 507, 526, 450, 492, 0, 0, 0 }; ! static const short yydefgoto[] = { 898, ! 1, 2, 3, 17, 18, 19, 313, 503, 319, 505, ! 212, 407, 589, 174, 241, 373, 176, 177, 178, 179, ! 180, 181, 358, 357, 355, 597, 356, 182, 521, 183, ! 302, 303, 304, 496, 448, 20, 291, 613, 187, 188, ! 189, 190, 191, 192, 193, 194, 29, 30, 31, 32, ! 33, 34, 35, 36, 37, 38, 482, 483, 331, 202, ! 195, 39, 203, 40, 41, 42, 43, 44, 218, 65, ! 213, 219, 571, 66, 499, 292, 205, 46, 286, 287, ! 288, 569, 667, 591, 592, 593, 751, 594, 681, 595, ! 596, 762, 804, 850, 765, 806, 851, 502, 221, 629, ! 630, 631, 222, 47, 48, 49, 50, 335, 337, 342, ! 230, 51, 685, 430, 225, 226, 333, 506, 509, 507, ! 510, 340, 341, 196, 280, 384, 633, 634, 386, 387, ! 388, 214, 449, 450, 451, 452, 453, 454, 305, 276, ! 600, 774, 778, 378, 379, 380, 663, 618, 277, 456, ! 184, 664, 710, 711, 767, 712, 769, 306, 411, 814, ! 775, 815, 816, 713, 813, 768, 865, 770, 854, 883, ! 896, 856, 837, 620, 621, 699, 838, 846, 847, 848, ! 886, 463, 544, 484, 640, 784, 485, 486, 660, 487, ! 552, 295, 397, 488, 489, 446, 185 }; ! static const short yypact[] = { 131, ! 137, 2099, 2099, 229,-32768,-32768,-32768,-32768, 129, 129, ! 129, 101, 123, 147,-32768,-32768,-32768,-32768,-32768, 263, ! 1218, 731, 1314, 941, 390, 303, 525, 827, 1631, 1037, ! 2396, 1360, 696, 917, 716, 1008,-32768,-32768, 138,-32768, ! -32768,-32768,-32768,-32768, 129,-32768, 83, 85, 107,-32768, ! -32768, 2099,-32768,-32768,-32768, 129, 129, 129, 2695, 2613, ! 165,-32768, 112, 129, 170,-32768, 914,-32768,-32768,-32768, ! -32768, 129,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 129,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 129, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 129,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, 129,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 129,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 129,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 129,-32768,-32768,-32768,-32768, 290, ! 263,-32768,-32768,-32768,-32768,-32768, 146,-32768, 149,-32768, ! 159,-32768,-32768,-32768,-32768,-32768,-32768, 2695, 2695, 205, ! 212, 214,-32768, 377,-32768,-32768,-32768, 2695,-32768,-32768, ! 1719,-32768,-32768, 2695, 204, 235,-32768, 2736, 2777,-32768, ! 3116, 1771, 317, 1480, 2695, 224, 1413, 859, 3041, 1050, ! 1230, 784, 1694, 1227,-32768, 249, 684, 136, 328, 219, ! 358,-32768, 263, 263, 129,-32768, 129,-32768, 307, 129, ! 2142, 357, 129,-32768,-32768, 112, 129, 257,-32768, 2080, ! 401, 454, 284, 2052, 293, 855,-32768, 306,-32768, 298, ! -32768,-32768,-32768, 2695, 2695, 3066,-32768,-32768, 305,-32768, ! 323, 346,-32768, 316, 2695, 1719,-32768, 1719,-32768, 2695, ! 2695, 393,-32768,-32768, 2695, 2695, 2695, 2695, 2695, 2695, ! 2695, 2695, 2695, 2695, 2695, 2695,-32768,-32768, 377, 377, ! 2695, 2695,-32768, 366,-32768, 409, 372,-32768,-32768, 425, ! -32768,-32768,-32768,-32768,-32768, 197,-32768, 399, 454, 215, ! 263,-32768, 470,-32768,-32768, 2613, 2245,-32768, 398, 2183, ! 445,-32768, 759, 65,-32768,-32768, 497, 290, 290,-32768, ! 129,-32768, 357, 129, 129,-32768,-32768,-32768, 357, 129, ! -32768,-32768, 1413, 859, 3041, 1050, 1230, 784, 1694, 1227, ! -32768, 330, 459, 1417,-32768, 129,-32768,-32768, 529, 488, ! -32768, 298, 2883, 2901, 490,-32768,-32768, 2486,-32768, 3116, ! 501, 503, 3116, 3116, 2695, 534, 2695, 2695, 2448, 3077, ! 2576, 2961, 1820, 818, 818, 452, 452,-32768,-32768,-32768, ! -32768,-32768, 515, 235, 513,-32768, 377, 1567, 409,-32768, ! -32768, 112, 129,-32768,-32768,-32768,-32768, 456,-32768, 522, ! 684, 2818,-32768,-32768, 209, 87, 1090, 516, 2695,-32768, ! -32768, 2695, 2286,-32768, 517,-32768,-32768,-32768,-32768,-32768, ! 2465,-32768, 401, 251, 290,-32768, 564,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 527,-32768, 528, 2695, 377, 530, ! 488, 3066, 2695, 3066,-32768,-32768, 532, 532, 576, 2695, ! 3145, 2208,-32768,-32768,-32768, 324, 445,-32768,-32768, 78, ! 116, 121, 134, 624,-32768, 542,-32768,-32768,-32768,-32768, ! 425, 425,-32768, 129,-32768,-32768,-32768, 339, 545,-32768, ! 549,-32768,-32768, 1797, 3070, 1146, 1600, 1998, 3095, 1185, ! 1614,-32768,-32768,-32768, 553, 347,-32768,-32768, 374,-32768, ! 552, 555,-32768,-32768,-32768,-32768, 563, 565, 1348,-32768, ! -32768, 626,-32768,-32768,-32768, 567,-32768,-32768, 569,-32768, ! -32768, 129, 129, 3116,-32768, 129, 566, 579, 2925, 581, ! 1784,-32768, 3132,-32768, 377,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2356, ! -32768,-32768, 586, 1207,-32768,-32768,-32768, 2695,-32768,-32768, ! -32768, 175, 325,-32768,-32768, 1520,-32768, 673,-32768,-32768, ! 76,-32768, 290,-32768, 263,-32768,-32768, 3116,-32768,-32768, ! 1348,-32768, 129, 343, 129, 431,-32768,-32768,-32768, 129, ! -32768, 2695,-32768,-32768, 632, 377, 2695,-32768, 633, 3116, ! 595, 593,-32768,-32768, 185, 1920, 2695,-32768, 2425,-32768, ! 646, 2695, 649, 612, 614, 2654, 158, 699,-32768,-32768, ! -32768, 623,-32768,-32768,-32768, 627, 482, 628,-32768,-32768, ! -32768, 2551,-32768,-32768, 407,-32768, 112, 129, 129, 468, ! 483, 238,-32768,-32768, 129, 112, 129, 238,-32768, 129, ! -32768, 1797, 3070, 2564, 3099, 1146, 1600, 1547, 1752, 1998, ! 3095, 3037, 3112, 1185, 1614, 1634, 1766,-32768,-32768,-32768, ! -32768, 625,-32768,-32768, 478, 479, 1784, 76,-32768, 76, ! -32768, 2695, 109,-32768, 2695, 418,-32768, 2943,-32768, 1406, ! 1784,-32768,-32768, 1852,-32768, 1988,-32768,-32768, 3132, 2863, ! -32768,-32768,-32768,-32768, 640, 2695, 641,-32768, 650,-32768, ! -32768, 290, 263,-32768,-32768,-32768,-32768,-32768, 660, 700, ! 1250, 97,-32768,-32768,-32768,-32768, 175, 349,-32768, 129, ! -32768, 129,-32768,-32768, 129, 325, 325,-32768,-32768, 175, ! 325,-32768,-32768,-32768, 662,-32768,-32768,-32768,-32768, 2980, ! 2695,-32768,-32768, 2980, 2695,-32768,-32768, 2695,-32768, 665, ! 1988,-32768,-32768, 2695,-32768,-32768, 674,-32768, 2695, 711, ! 484,-32768, 403, 487,-32768, 1087, 701, 703,-32768, 707, ! 2695, 1654,-32768,-32768,-32768,-32768, 2695,-32768, 468, 483, ! 466,-32768,-32768, 1207, 129, 238,-32768, 238,-32768,-32768, ! 343,-32768, 2980,-32768, 2980, 2839,-32768,-32768, 3098,-32768, ! 62, 129,-32768, 357,-32768, 357, 2695, 2695, 750, 2551, ! 694,-32768,-32768,-32768,-32768,-32768, 695,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 31, 697,-32768,-32768, ! -32768, 718, 719,-32768,-32768,-32768,-32768, 698,-32768,-32768, ! -32768,-32768, 710, 712, 377, 127, 715,-32768,-32768,-32768, ! -32768,-32768,-32768, 2695,-32768,-32768,-32768, 2695, 693, 31, ! 720, 31,-32768,-32768,-32768, 722,-32768, 730, 802, 163, ! -32768,-32768, 625, 625,-32768,-32768,-32768, 749, 470, 733, ! -32768,-32768, 2695, 2695, 317, 421,-32768, 740, 743, 744, ! 470,-32768,-32768,-32768, 317,-32768,-32768, 829, 830,-32768 }; static const short yypgoto[] = {-32768, ! -32768,-32768,-32768, 98,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 34,-32768, -59, 443, -259, 378,-32768,-32768, ! -53, 728,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -277, ! -310, 538,-32768,-32768, -97, 222, -283, -565, 2, 8, ! 39, 41, 21, 43, 45, 48, -375, -339, 288, 289, ! -317, -281, 291, 294, -488, -466, 427, 435,-32768, -177, ! -119, -519, -199, 429, 496, 480, 706,-32768, -510, -121, ! -218, 437,-32768, 591,-32768, 379, 4, 68,-32768, 463, ! -32768, 286,-32768, -411,-32768, 176,-32768, -526,-32768,-32768, ! 299,-32768,-32768,-32768,-32768,-32768,-32768, -132, 282, 154, ! 171, -124, 58,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768, 462, -114,-32768, 562,-32768,-32768, 230, ! 228, 568, 477, -95,-32768,-32768, -523, -262, -406, -429, ! -32768, 476,-32768,-32768,-32768,-32768,-32768,-32768, -242,-32768, ! -32768, -481, 91,-32768,-32768, 533, -541,-32768, 295,-32768, ! -32768, -514,-32768,-32768,-32768,-32768,-32768, 617, -388, 93, ! -685, -264, 20,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, -745, 54,-32768, 55, ! -32768, 461,-32768, -506,-32768,-32768,-32768,-32768,-32768,-32768, ! 433, -296,-32768,-32768,-32768,-32768, 60 }; ! #define YYLAST 3205 ! static const short yytable[] = { 175, ! 186, 314, 416, 21, 21, 45, 45, 220, 419, 22, ! 22, 374, 56, 57, 58, 396, 308, 385, 418, 223, ! 616, 478, 25, 25, 72, 619, 81, 415, 90, 639, ! 99, 542, 108, 228, 117, 478, 126, 624, 135, 844, ! 23, 23, 24, 24, 26, 26, 27, 27, 332, 28, ! 28, 614, 665, 21, 541, 45, 715, 479, 617, 22, ! 408, 52, 52, 45, 198, -105, 45, 658, 540, 688, ! 199, 479, 25, 615, 409, 242, 662, 67, -443, 480, ! 147, 149, 151, 809, 619, 144, 145, 144, 145, 659, ! 23, 300, 24, 480, 26, 273, 27, 776, 845, 28, ! 53, 200, 616, 201, 232, 233, 561, 827, 866, 144, ! 145, 52, 143, 458, 238, 481, -444, 617, 8, 574, ! 243, -445, 576, 143, 143, 143, 736, 840, 737, 481, ! -1, 278, 374, 614, -446, 455, -2, 888, 14, 143, ! 345, 14, 69, 599, 828, 635, 635, 732, 143, 152, ! 351, 299, 352, -105, 741, 615, 332, 143, 14, 753, ! 144, 145, -423, 777, 610, 14, 143, 59, 478, 470, ! 867, 146, 860, 148, 45, 143, 399, 62, 626, 875, ! 650, 668, 461, 670, 143, 527, 530, 533, 536, 60, ! 72, 761, 81, 143, 90, 150, 99, 237, 224, 543, ! -424, 72, 143, 81, 479, -425, 787, 789, 879, 861, ! 897, 538, 375, 61, 45, 696, 651, 198, -426, 45, ! 425, 142, 427, 199, 798, 78, 480, 323, 686, 45, ! 285, 197, 627, 324, 227, 209, 398, 229, 654, 45, ! 405, 628, 211, 238, 836, 880, 327, 231, 14, 45, ! 586, 45, 587, 206, 200, 735, 201, 207, 140, 141, ! 289, 290, 481, 339, 325, 62, 326, 14, 328, 750, ! 329, 234, 143, 330, 655, 210, 211, 819, 235, 390, ! 236, 210, 211, 314, 391, 334, 244, 542, 625, 671, ! 616, 674, 62, 215, 436, 439, 542, 393, 338, 45, ! 144, 145, 371, 372, 210, 211, 279, 91, 7, 92, ! 541, 760, 54, 55, 9, 10, 11, 315, 211, 541, ! 63, 614, 245, 635, 635, 273, 72, 62, 81, 64, ! 90, 281, 99, 500, 74, 323, 518, 45, 520, 491, ! 310, 324, 492, 615, 311, 62, 215, 216, 395, 238, ! 791, 62, 526, 529, 327, 535, 217, 301, 881, 882, ! -472, -472, -472, -472, 83, 289, 290, 317, -472, -472, ! -472, 207, 325, 293, 326, 339, 328, 320, 329, 144, ! 145, 330, 636, 198, -472, 45, -247, 346, 672, 199, ! 336, 637, 211, 334, 86, 7, 87, 459, 474, 349, ! 216, 9, 10, 11, 475, 347, 627, 524, 478, 217, ! 445, 525, 474, -378, -378, 628, 211, 476, 475, 14, ! 200, 547, 201, 782, 285, 783, 548, 717, 348, 209, ! 555, 476, -273, 62, 556, 45, 726, 45, -79, 477, ! 377, 673, 204, 666, 479, -104, -273, 14, 376, 70, ! 75, 79, 84, 477, 381, 543, 557, 106, 111, 115, ! 120, 558, 339, 745, 543, 392, 480, 315, 211, 528, ! 531, 534, 537, -246, 873, 874, 675, 72, 155, 90, ! 612, 108, 382, 126, 210, 211, -273, 401, 63, 716, ! -273, 383, 211, 830, 245, 831, 705, 64, 706, 707, ! 708, 709, 481, 890, 88, 93, 97, 102, 891, 264, ! 265, 266, 124, 129, 133, 138, 71, 76, 80, 85, ! 210, 211, 464, 211, 107, 112, 116, 121, 406, 95, ! 7, 96, 722, 211, 720, 211, 9, 10, 11, 612, ! 412, 21, 423, 45, 314, 474, 695, 22, 818, 722, ! 211, 475, 421, 422, 14, 247, 249, 642, 598, 45, ! 25, 733, 734, 643, 476, 311, 207, 803, 278, 763, ! 805, 311, 428, 611, 207, 429, 646, 434, 23, 440, ! 24, 764, 26, 437, 27, 438, 477, 28, 294, 413, ! 414, 307, 780, 781, 644, 309, 645, 443, 647, 622, ! 648, 885, 444, 649, 466, 490, 494, 504, -248, 632, ! 638, 512, 513, 895, 516, 70, 75, 79, 84, 679, ! 435, 522, 395, 21, 301, 45, 539, 549, 198, 22, ! 45, 550, 611, 676, 199, 554, 757, 198, 725, 45, ! 697, 559, 25, 199, 560, 72, 562, 81, 564, 90, ! 580, 99, 209, 108, 573, 117, 575, 126, 673, 135, ! 23, 581, 24, 583, 26, 200, 27, 201, 623, 28, ! 88, 93, 97, 102, 200, 661, 201, -30, 682, 683, ! 684, 622, 71, 76, 80, 85, 144, 145, 282, 283, ! 284, -31, 417, 294, 691, 692, 316, 693, 420, 801, ! 122, 7, 123, 551, 551, 698, 701, 9, 10, 11, ! 704, 811, 275, 610, 426, 772, 759, 817, 563, 565, ! 131, 7, 132, 756, 758, 14, 771, 9, 10, 11, ! 89, 94, 98, 103, 5, 73, 7, 74, 125, 130, ! 134, 139, 9, 10, 11, 14, 790, 832, 833, 797, ! 835, 70, 75, 79, 84, 389, 802, 800, 13, 301, ! 766, 462, -108, -108, -108, -108, 834, 807, -108, 808, ! -108, -108, -108, 810, 289, 290, 839, 843, 858, -254, ! 849, 855, 869, 289, 290, 474, -108, 786, 788, 7, ! 92, 475, 143, 857, 835, 9, 10, 11, 868, -256, ! 852, 853, 862, 871, 476, 876, 88, 93, 97, 102, ! 878, 21, 877, 45, -243, 884, 887, 22, 71, 76, ! 80, 85, 892, 835, 889, 893, 477, 894, 899, 900, ! 25, 100, 7, 101, 469, 702, 703, 497, 9, 10, ! 11, 410, 545, 652, 653, 498, 656, -108, 23, 657, ! 24, 501, 26, 467, 27, 321, 669, 28, 5, 752, ! 7, 8, 5, 465, 7, 74, 9, 10, 11, 622, ! 9, 10, 11, 262, 263, 264, 265, 266, 859, 730, ! 731, 394, 13, 785, 14, 15, 13, 779, 316, 316, ! 577, 578, 517, 687, 579, 424, 89, 94, 98, 103, ! 738, 743, 70, 75, 841, 515, 106, 111, 842, 431, ! -249, 460, 714, 870, 208, 553, 872, -26, -26, -26, ! -26, 127, 7, 128, 546, -26, -26, -26, 9, 10, ! 11, 0, 0, 0, 0, 0, 389, 389, 322, -370, ! 209, -26, 0, -273, 5, 82, 7, 83, 0, 0, ! 0, 0, 9, 10, 11, 88, 93, -273, 677, 124, ! 129, 343, 344, 0, 0, 0, 0, 0, 13, 71, ! 76, 0, 350, 107, 112, 0, 0, 353, 354, 0, ! 210, 211, 359, 360, 361, 362, 363, 364, 365, 366, ! 367, 368, 369, 370, 457, 0, 0, -273, 0, 0, ! -255, -273, -26, 0, 0, 0, 718, 719, 0, 0, ! 724, 0, 136, 7, 137, 727, 728, 0, 729, 9, ! 10, 11, 0, 495, -245, 0, 0, 389, 389, 0, ! 0, 0, 89, 94, 98, 103, 0, 508, 511, 0, ! 5, 109, 7, 110, 0, 0, 0, 0, 9, 10, ! 11, 742, 0, 5, 746, 7, 83, 0, 0, 0, ! 0, 9, 10, 11, 13, 0, 457, 457, 532, 457, ! 70, 75, 79, 84, 0, 0, 0, 13, 106, 111, ! 115, 120, 0, 0, 441, 442, 0, 0, 0, 0, ! 471, -257, 472, 5, 6, 7, 8, 0, 294, 473, ! 294, 9, 10, 11, 0, 721, 723, 0, 0, 0, ! 0, 0, 0, 209, 0, 0, -273, 13, 792, 570, ! -251, 572, 794, 0, 0, 88, 93, 97, 102, 0, ! -273, 0, 0, 124, 129, 133, 138, 71, 76, 80, ! 85, 0, 0, 0, 0, 107, 112, 116, 121, 0, ! 86, 7, 87, 210, 211, 514, 0, 9, 10, 11, ! 519, 0, 0, 820, 821, 0, 822, 523, 0, 0, ! -273, 823, -534, 824, -273, 14, 0, 0, 0, 0, ! 829, 89, 94, 0, 0, 125, 130, 0, 0, 122, ! 7, 123, 389, 389, 0, 0, 9, 10, 11, 0, ! 0, 389, 389, 0, 0, 389, 389, 471, 0, 0, ! 5, 6, 7, 8, 14, 0, 473, 0, 9, 10, ! 11, 5, 68, 7, 69, 0, 568, 700, 0, 9, ! 10, 11, 7, 101, 13, 7, 87, 0, 9, 10, ! 11, 9, 10, 11, 0, 13, 0, 14, 590, 0, ! 773, 0, -450, -450, 721, 723, 723, -450, -450, 14, ! -450, 0, 0, 0, -450, 0, -450, -450, -450, -450, ! -450, -450, -450, -450, -450, -450, -450, 0, -450, 0, ! -450, 0, -450, -450, -450, -450, -450, 739, 0, -534, ! 511, -450, 0, 0, 0, 0, 0, -450, 568, 0, ! -450, -242, 0, 0, 0, -450, -450, -450, 0, 678, ! 0, -450, -450, 0, 680, 0, -450, 5, 77, 7, ! 78, 0, 0, 590, 689, 9, 10, 11, 0, 690, ! 0, 0, 0, -450, 0, -450, -450, 0, -450, 0, ! 0, 13, 0, 14, 0, 0, 0, 0, 566, 0, ! 153, 89, 94, 98, 103, 154, 155, 0, 156, 125, ! 130, 134, 139, 5, 118, 7, 119, 0, 0, 0, ! 0, 9, 10, 11, 0, 0, 157, 0, 15, 0, ! 158, 159, 160, 161, 162, 0, 0, 13, 0, 163, ! 532, 0, 0, 0, 590, 164, 0, -244, 165, 740, ! 0, 0, 744, 166, 167, 168, 0, 0, 590, 169, ! 170, 590, 0, 590, 171, 748, 5, 321, 7, 69, ! 5, 0, 7, 8, 9, 10, 11, 0, 9, 10, ! 11, 0, 532, 172, 173, 0, 567, 0, 0, 0, ! 13, 0, 14, -253, 13, 0, 14, 15, 250, 251, ! 252, 0, 253, 254, 255, 256, 257, 258, 259, 260, ! 261, 262, 263, 264, 265, 266, 863, 864, 793, 0, ! 0, 0, 795, 0, 0, 796, 0, 0, 590, 0, ! 274, 799, -448, -448, -448, -448, -448, -448, -448, 0, ! -448, -448, -448, -448, -448, 749, -448, -448, -448, -448, ! -448, -448, -448, -448, -448, -448, -448, -448, -448, -448, ! -448, -448, -448, -448, -448, -448, -448, 0, 0, 0, ! 0, -448, 0, 5, 6, 7, 8, -448, 0, 641, ! -448, 9, 10, 11, 0, -448, -448, -448, 0, 0, ! 0, -448, -448, 0, 0, 0, -448, 13, 0, 14, ! 0, 95, 7, 96, 0, 0, 0, 0, 9, 10, ! 11, 0, 0, -448, 275, -448, -448, 447, -448, -472, ! -472, -472, -472, -472, -472, -472, 14, -472, -472, -472, ! -472, -472, 0, -472, -472, -472, -472, -472, -472, -472, ! -472, -472, -472, -472, -472, -472, -472, -472, 0, -472, ! -472, -472, -472, -472, 91, 7, 92, 0, -472, 0, ! 0, 9, 10, 11, -472, 0, 0, -472, 127, 7, ! 128, 0, -472, -472, -472, 9, 10, 11, -472, -472, ! 0, 0, 0, -472, 5, 104, 7, 105, 131, 7, ! 132, 0, 9, 10, 11, 9, 10, 11, 0, 0, ! -472, 0, -472, -472, 812, -472, -479, -479, 13, 0, ! 14, -479, -479, 14, -479, 0, 0, 0, -479, 0, ! -479, -479, -479, -479, -479, -479, -479, -479, -479, -479, ! -479, 0, -479, 0, -479, 0, -479, -479, -479, -479, ! -479, 0, 0, 0, 0, -479, 0, 0, 0, 7, ! 96, -479, 0, 0, -479, 9, 10, 11, 0, -479, ! -479, -479, 0, 0, -250, -479, -479, 0, 0, 239, ! -479, 153, 5, 14, 7, 8, 154, 155, 0, 156, ! 9, 10, 11, 0, 0, 0, 0, -479, 0, -479, ! -479, 0, -479, 0, 0, 0, 13, 157, 14, 15, ! 0, 158, 159, 160, 161, 162, 100, 7, 101, 0, ! 163, 0, 0, 9, 10, 11, 164, 0, 0, 165, ! 136, 7, 137, 0, 166, 167, 168, 9, 10, 11, ! 169, 170, 0, 0, 584, 171, 585, 145, 0, 0, ! 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, ! 5, 68, 7, 69, 172, 173, 0, 240, 9, 10, ! 11, 0, 157, 0, 15, 0, 158, 159, 160, 161, ! 162, 0, 0, 0, 13, 163, 14, 0, 0, 0, ! 0, 164, 267, 268, 165, 269, 270, 271, 272, 166, ! 167, 168, 0, 0, 0, 169, 170, 0, 0, 586, ! 171, 587, 584, 0, 585, 145, 0, 0, 0, 154, ! 155, 0, 156, 0, 0, 0, 0, 0, -301, 172, ! 173, 0, 588, 260, 261, 262, 263, 264, 265, 266, ! 157, 0, 15, 0, 158, 159, 160, 161, 162, 0, ! 0, 0, 0, 163, 0, 0, 0, 0, 0, 164, ! 0, 0, 165, 0, 0, 0, 0, 166, 167, 168, ! 0, 0, 0, 169, 170, 0, 0, 586, 171, 587, ! 584, 0, 153, 0, 0, 0, 0, 154, 155, 0, ! 156, 0, 0, 0, 0, 0, -367, 172, 173, 0, ! 588, 0, 0, 0, 0, 0, 0, 0, 157, 0, ! 15, 0, 158, 159, 160, 161, 162, 0, 0, 0, ! 0, 163, 0, -314, 0, 0, 0, 164, 0, 0, ! 165, 0, 0, 0, 0, 166, 167, 168, 0, 0, ! 0, 169, 170, 0, 0, -314, 171, -314, 584, 0, ! 153, 0, 0, 0, 0, 154, 155, 0, 156, 0, ! 0, 5, 104, 7, 105, 172, 173, 0, 588, 9, ! 10, 11, 0, 0, 0, 0, 157, 0, 15, 0, ! 158, 159, 160, 161, 162, 13, 0, 14, 0, 163, ! 0, 0, 0, 0, 0, 164, 0, 0, 165, 0, ! 0, 0, 0, 166, 167, 168, 0, 0, 0, 169, ! 170, 0, 318, 0, 171, -22, -22, -22, -22, 0, ! 0, 0, 0, -22, -22, -22, 0, 0, 0, 0, ! 0, 0, 0, 172, 173, 0, 588, 0, 209, -22, ! 312, -273, 0, -18, -18, -18, -18, 0, 0, 0, ! 0, -18, -18, -18, 0, -273, 0, 0, 0, 4, ! 0, -117, 5, 6, 7, 8, 209, -18, 0, -273, ! 9, 10, 11, 0, 0, 0, 0, 0, 210, 211, ! 0, 0, 0, -273, 0, 12, 13, 0, 14, 15, ! 0, 0, 0, 0, 0, -273, 0, 0, 0, -273, ! -22, 0, 0, 0, 153, 5, 296, 7, 8, 154, ! 155, 0, 156, 9, 10, 11, -117, 0, 0, 0, ! 0, 0, 0, -273, 0, -117, 0, -273, -18, 13, ! 157, 14, 15, 0, 158, 159, 160, 161, 162, 0, ! 0, 0, 16, 163, 0, 153, 0, 402, 0, 164, ! 154, 155, 165, 156, 0, 0, 0, 166, 167, 297, ! 0, 0, 0, 169, 170, 0, 0, 0, 171, 0, ! 0, 157, 0, 15, 0, 158, 159, 160, 161, 162, ! 0, 0, 0, 0, 163, 0, 0, 172, 173, 0, ! 164, 298, 0, 165, 0, 0, 0, 0, 166, 167, ! 403, 0, 0, 0, 169, 170, 0, 153, 0, 171, ! 0, 0, 154, 155, 0, 156, 255, 256, 257, 258, ! 259, 260, 261, 262, 263, 264, 265, 266, 172, 173, ! 0, 0, 404, 157, 0, 15, 0, 158, 159, 160, ! 161, 162, 0, 0, 0, 0, 163, 0, 153, 0, ! 0, 0, 164, 154, 155, 165, 156, 0, 0, 0, ! 166, 167, 168, 0, 0, 0, 169, 170, 0, 0, ! 0, 171, 0, 0, 157, 0, 15, 0, 158, 159, ! 160, 161, 162, 0, 0, 0, 0, 163, 0, 0, ! 172, 173, 0, 164, 400, 0, 165, 0, 0, 0, ! 0, 166, 167, 168, 0, 0, 0, 169, 170, 0, ! 0, 0, 171, 0, 0, 0, 0, 0, 585, 601, ! 6, 7, 8, 154, 155, 0, 156, 9, 10, 11, ! 0, 172, 173, 0, 0, 493, 602, 603, 604, 605, ! 606, 607, 608, 13, 157, 14, 15, 0, 158, 159, ! 160, 161, 162, 0, 0, 0, 0, 163, 0, 5, ! 113, 7, 114, 164, 0, 0, 165, 9, 10, 11, ! 0, 166, 167, 168, 0, 0, 0, 169, 170, 0, ! 0, 0, 171, 13, 0, 14, 0, 585, 145, 0, ! 0, 0, 154, 155, 0, 156, 0, 0, 0, 609, ! 0, 172, 173, 0, 610, 602, 603, 604, 605, 606, ! 607, 608, 0, 157, 0, 15, 0, 158, 159, 160, ! 161, 162, 0, 0, 0, 0, 163, 0, 5, 6, ! 7, 8, 164, 0, 0, 165, 9, 10, 11, -252, ! 166, 167, 168, 0, 0, 0, 169, 170, 153, 0, ! 0, 171, 13, 154, 155, 0, 156, 256, 257, 258, ! 259, 260, 261, 262, 263, 264, 265, 266, 609, 0, ! 172, 173, 0, 610, 157, 0, 15, 0, 158, 159, ! 160, 161, 162, 0, 0, 0, 0, 163, 0, 0, ! 0, 0, 0, 164, 0, 0, 165, 0, 0, 0, ! 0, 166, 167, 168, 0, 0, 0, 169, 170, 0, ! 0, 0, 171, 153, 5, 6, 7, 8, 154, 155, ! 0, 156, 9, 10, 11, 0, 0, 5, 77, 7, ! 78, 172, 173, 0, 435, 9, 10, 11, 13, 157, ! 14, 15, 0, 158, 159, 160, 161, 162, 0, 0, ! 0, 13, 163, 14, 0, 0, 0, 0, 164, 0, ! 0, 165, 0, 0, 0, 0, 166, 167, 168, 0, ! 0, 0, 169, 170, 0, 153, 5, 171, 7, 8, ! 154, 155, 0, 156, 9, 10, 11, 258, 259, 260, ! 261, 262, 263, 264, 265, 266, 172, 173, 0, 0, ! 13, 157, 14, 15, 0, 158, 159, 160, 161, 162, ! 0, 0, 0, 0, 163, 0, 153, 0, 0, 0, ! 164, 154, 155, 165, 156, 0, 0, 0, 166, 167, ! 168, 0, 0, 0, 169, 170, 0, 0, 0, 171, ! 0, 0, 157, 0, 15, 0, 158, 159, 160, 161, ! 162, 0, 0, 0, 0, 163, 0, 153, 172, 173, ! 0, 164, 154, 155, 165, 156, 0, 0, 0, 166, ! 167, 168, 0, 0, 0, 169, 170, 0, 0, 0, ! 171, 0, 0, 157, 0, 15, 0, 158, 159, 160, ! 161, 162, 0, 0, 0, 0, 163, 694, 153, 172, ! 173, 0, 164, 154, 155, 165, 156, 0, 0, 0, ! 166, 167, 168, 0, 0, 0, 169, 170, 0, 0, ! 0, 171, 0, 0, 157, 0, 15, 0, 158, 159, ! 160, 161, 162, 0, 0, 0, 0, 163, 0, 153, ! 172, 173, 0, 164, 154, 155, 165, 156, 0, 0, ! 0, 166, 167, 168, 0, 0, 0, 169, 170, 0, ! 0, 0, 246, 0, 0, 157, 0, 15, 0, 158, ! 159, 160, 161, 162, 0, 0, 0, 0, 163, 0, ! 468, 172, 173, 0, 164, 154, 155, 165, 156, 0, ! 0, 0, 166, 167, 168, 0, 0, 0, 169, 170, ! 0, 0, 0, 248, 0, 0, 157, 0, 15, 0, ! 158, 159, 160, 161, 162, 0, 0, 0, 0, 163, ! 0, 0, 172, 173, 0, 164, 0, 0, 165, 0, ! 0, 0, 754, 166, 167, 168, 0, 0, 0, 169, ! 170, 250, 251, 252, 171, 253, 254, 255, 256, 257, ! 258, 259, 260, 261, 262, 263, 264, 265, 266, 0, ! 0, 0, 0, 172, 173, 250, 251, 252, 755, 253, ! 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, ! 264, 265, 266, 0, 0, 250, 251, 252, 825, 253, ! 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, ! 264, 265, 266, 250, 251, 252, 0, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, ! 266, 0, 0, 0, 0, 0, 0, 250, 251, 252, ! 432, 253, 254, 255, 256, 257, 258, 259, 260, 261, ! 262, 263, 264, 265, 266, 250, 251, 252, 433, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, ! 264, 265, 266, 0, 0, 0, 0, 0, 0, 14, ! 0, 0, 582, 259, 260, 261, 262, 263, 264, 265, ! 266, 0, 250, 251, 252, 747, 253, 254, 255, 256, ! 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, ! 5, 113, 7, 114, 5, 0, 7, 78, 9, 10, ! 11, 0, 9, 10, 11, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 13, 0, 14, 0, 13, 5, ! 14, 7, 8, 5, 73, 7, 74, 9, 10, 11, 0, 9, 10, 11, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 13, 0, 14, 0, 13, 5, 109, ! 7, 110, 5, 82, 7, 83, 9, 10, 11, 0, ! 9, 10, 11, 0, 0, 5, 118, 7, 119, 0, ! 0, 0, 13, 9, 10, 11, 13, 257, 258, 259, ! 260, 261, 262, 263, 264, 265, 266, 0, 0, 13, ! 250, 251, 252, 826, 253, 254, 255, 256, 257, 258, ! 259, 260, 261, 262, 263, 264, 265, 266, 250, 251, ! 252, 0, 253, 254, 255, 256, 257, 258, 259, 260, ! 261, 262, 263, 264, 265, 266, 252, 0, 253, 254, ! 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, ! 265, 266, 254, 255, 256, 257, 258, 259, 260, 261, ! 262, 263, 264, 265, 266 }; ! static const short yycheck[] = { 59, ! 60, 220, 313, 2, 3, 2, 3, 140, 319, 2, ! 3, 271, 9, 10, 11, 293, 216, 280, 315, 141, ! 540, 397, 2, 3, 21, 540, 23, 311, 25, 553, ! 27, 461, 29, 148, 31, 411, 33, 544, 35, 9, ! 2, 3, 2, 3, 2, 3, 2, 3, 226, 2, ! 3, 540, 563, 52, 461, 52, 622, 397, 540, 52, ! 303, 2, 3, 60, 63, 1, 63, 556, 457, 596, ! 63, 411, 52, 540, 10, 171, 1, 20, 1, 397, ! 47, 48, 49, 769, 599, 3, 4, 3, 4, 556, ! 52, 211, 52, 411, 52, 9, 52, 1, 68, 52, ! 3, 63, 622, 63, 158, 159, 495, 46, 854, 3, ! 4, 52, 45, 378, 168, 397, 1, 599, 7, 508, ! 174, 1, 511, 56, 57, 58, 668, 813, 670, 411, ! 0, 185, 392, 622, 1, 378, 0, 883, 30, 72, ! 236, 30, 7, 532, 83, 552, 553, 662, 81, 52, ! 246, 211, 248, 89, 46, 622, 334, 90, 30, 686, ! 3, 4, 85, 67, 89, 30, 99, 67, 544, 83, ! 856, 89, 46, 89, 171, 108, 296, 3, 4, 865, ! 556, 570, 382, 572, 117, 450, 451, 452, 453, 67, ! 187, 702, 189, 126, 191, 89, 193, 164, 141, 462, ! 85, 198, 135, 200, 544, 85, 730, 731, 46, 83, ! 896, 454, 272, 67, 211, 58, 556, 216, 85, 216, ! 335, 84, 337, 216, 751, 7, 544, 226, 44, 226, ! 197, 67, 58, 226, 89, 27, 296, 89, 556, 236, ! 300, 67, 68, 297, 810, 83, 226, 89, 30, 246, ! 66, 248, 68, 84, 216, 667, 216, 88, 37, 38, ! 203, 204, 544, 230, 226, 3, 226, 30, 226, 681, ! 226, 67, 205, 226, 556, 67, 68, 784, 67, 83, ! 67, 67, 68, 502, 88, 226, 83, 717, 548, 573, ! 810, 575, 3, 4, 348, 355, 726, 83, 1, 296, ! 3, 4, 269, 270, 67, 68, 83, 5, 6, 7, ! 717, 700, 84, 85, 12, 13, 14, 67, 68, 726, ! 58, 810, 88, 730, 731, 9, 323, 3, 325, 67, ! 327, 83, 329, 83, 7, 334, 432, 334, 434, 399, ! 84, 334, 402, 810, 88, 3, 4, 58, 291, 403, ! 739, 3, 450, 451, 334, 453, 67, 1, 873, 874, ! 4, 5, 6, 7, 7, 308, 309, 84, 12, 13, ! 14, 88, 334, 67, 334, 342, 334, 85, 334, 3, ! 4, 334, 58, 382, 28, 382, 84, 83, 46, 382, ! 85, 67, 68, 334, 5, 6, 7, 378, 397, 84, ! 58, 12, 13, 14, 397, 83, 58, 84, 784, 67, ! 377, 88, 411, 84, 85, 67, 68, 397, 411, 30, ! 382, 83, 382, 720, 391, 722, 88, 627, 83, 27, ! 84, 411, 30, 3, 88, 432, 636, 434, 46, 397, ! 32, 574, 64, 565, 784, 89, 44, 30, 83, 21, ! 22, 23, 24, 411, 83, 718, 83, 29, 30, 31, ! 32, 88, 429, 46, 727, 67, 784, 67, 68, 450, ! 451, 452, 453, 84, 863, 864, 46, 474, 9, 476, ! 540, 478, 58, 480, 67, 68, 84, 90, 58, 83, ! 88, 67, 68, 804, 88, 806, 15, 67, 17, 18, ! 19, 20, 784, 83, 25, 26, 27, 28, 88, 58, ! 59, 60, 33, 34, 35, 36, 21, 22, 23, 24, ! 67, 68, 67, 68, 29, 30, 31, 32, 84, 5, ! 6, 7, 67, 68, 67, 68, 12, 13, 14, 599, ! 44, 540, 84, 540, 763, 544, 606, 540, 83, 67, ! 68, 544, 331, 332, 30, 178, 179, 556, 525, 556, ! 540, 84, 84, 556, 544, 88, 88, 84, 622, 702, ! 84, 88, 44, 540, 88, 88, 556, 88, 540, 46, ! 540, 703, 540, 83, 540, 83, 544, 540, 210, 308, ! 309, 213, 717, 718, 556, 217, 556, 83, 556, 540, ! 556, 879, 90, 556, 83, 90, 90, 44, 84, 552, ! 553, 85, 85, 891, 85, 187, 188, 189, 190, 586, ! 89, 46, 565, 622, 1, 622, 85, 83, 627, 622, ! 627, 83, 599, 576, 627, 83, 696, 636, 635, 636, ! 607, 90, 622, 636, 90, 642, 84, 644, 84, 646, ! 85, 648, 27, 650, 88, 652, 88, 654, 791, 656, ! 622, 83, 622, 83, 622, 627, 622, 627, 83, 622, ! 191, 192, 193, 194, 636, 3, 636, 46, 46, 85, ! 88, 622, 187, 188, 189, 190, 3, 4, 5, 6, ! 7, 46, 314, 315, 46, 84, 221, 84, 320, 759, ! 5, 6, 7, 482, 483, 7, 84, 12, 13, 14, ! 84, 771, 85, 89, 336, 16, 67, 777, 497, 498, ! 5, 6, 7, 84, 84, 30, 67, 12, 13, 14, ! 25, 26, 27, 28, 4, 5, 6, 7, 33, 34, ! 35, 36, 12, 13, 14, 30, 85, 807, 808, 85, ! 810, 323, 324, 325, 326, 280, 46, 84, 28, 1, ! 703, 383, 4, 5, 6, 7, 17, 67, 10, 67, ! 12, 13, 14, 67, 717, 718, 83, 83, 67, 84, ! 84, 84, 90, 726, 727, 784, 28, 730, 731, 6, ! 7, 784, 725, 84, 854, 12, 13, 14, 858, 84, ! 83, 83, 88, 84, 784, 84, 327, 328, 329, 330, ! 9, 810, 83, 810, 84, 67, 84, 810, 323, 324, ! 325, 326, 83, 883, 884, 83, 784, 84, 0, 0, ! 810, 5, 6, 7, 392, 614, 615, 411, 12, 13, ! 14, 304, 464, 556, 556, 411, 556, 89, 810, 556, ! 810, 415, 810, 391, 810, 1, 571, 810, 4, 684, ! 6, 7, 4, 388, 6, 7, 12, 13, 14, 810, ! 12, 13, 14, 56, 57, 58, 59, 60, 845, 658, ! 659, 291, 28, 730, 30, 31, 28, 717, 413, 414, ! 512, 513, 431, 595, 516, 334, 191, 192, 193, 194, ! 671, 674, 474, 475, 814, 429, 478, 479, 816, 342, ! 84, 379, 618, 860, 1, 483, 862, 4, 5, 6, ! 7, 5, 6, 7, 464, 12, 13, 14, 12, 13, ! 14, -1, -1, -1, -1, -1, 461, 462, 84, 85, ! 27, 28, -1, 30, 4, 5, 6, 7, -1, -1, ! -1, -1, 12, 13, 14, 476, 477, 44, 580, 480, ! 481, 234, 235, -1, -1, -1, -1, -1, 28, 474, ! 475, -1, 245, 478, 479, -1, -1, 250, 251, -1, ! 67, 68, 255, 256, 257, 258, 259, 260, 261, 262, ! 263, 264, 265, 266, 378, -1, -1, 84, -1, -1, ! 84, 88, 89, -1, -1, -1, 628, 629, -1, -1, ! 632, -1, 5, 6, 7, 637, 638, -1, 640, 12, ! 13, 14, -1, 407, 84, -1, -1, 552, 553, -1, ! -1, -1, 327, 328, 329, 330, -1, 421, 422, -1, ! 4, 5, 6, 7, -1, -1, -1, -1, 12, 13, ! 14, 673, -1, 4, 676, 6, 7, -1, -1, -1, ! -1, 12, 13, 14, 28, -1, 450, 451, 452, 453, ! 642, 643, 644, 645, -1, -1, -1, 28, 650, 651, ! 652, 653, -1, -1, 357, 358, -1, -1, -1, -1, ! 1, 84, 3, 4, 5, 6, 7, -1, 720, 10, ! 722, 12, 13, 14, -1, 630, 631, -1, -1, -1, ! -1, -1, -1, 27, -1, -1, 30, 28, 740, 503, ! 84, 505, 744, -1, -1, 646, 647, 648, 649, -1, ! 44, -1, -1, 654, 655, 656, 657, 642, 643, 644, ! 645, -1, -1, -1, -1, 650, 651, 652, 653, -1, ! 5, 6, 7, 67, 68, 428, -1, 12, 13, 14, ! 433, -1, -1, 785, 786, -1, 788, 440, -1, -1, ! 84, 793, 83, 795, 88, 30, -1, -1, -1, -1, ! 802, 476, 477, -1, -1, 480, 481, -1, -1, 5, ! 6, 7, 717, 718, -1, -1, 12, 13, 14, -1, ! -1, 726, 727, -1, -1, 730, 731, 1, -1, -1, ! 4, 5, 6, 7, 30, -1, 10, -1, 12, 13, ! 14, 4, 5, 6, 7, -1, 499, 611, -1, 12, ! 13, 14, 6, 7, 28, 6, 7, -1, 12, 13, ! 14, 12, 13, 14, -1, 28, -1, 30, 521, -1, ! 1, -1, 3, 4, 779, 780, 781, 8, 9, 30, ! 11, -1, -1, -1, 15, -1, 17, 18, 19, 20, ! 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, ! 31, -1, 33, 34, 35, 36, 37, 671, -1, 83, ! 674, 42, -1, -1, -1, -1, -1, 48, 571, -1, ! 51, 84, -1, -1, -1, 56, 57, 58, -1, 582, ! -1, 62, 63, -1, 587, -1, 67, 4, 5, 6, ! 7, -1, -1, 596, 597, 12, 13, 14, -1, 602, ! -1, -1, -1, 84, -1, 86, 87, -1, 89, -1, ! -1, 28, -1, 30, -1, -1, -1, -1, 1, -1, ! 3, 646, 647, 648, 649, 8, 9, -1, 11, 654, ! 655, 656, 657, 4, 5, 6, 7, -1, -1, -1, ! -1, 12, 13, 14, -1, -1, 29, -1, 31, -1, ! 33, 34, 35, 36, 37, -1, -1, 28, -1, 42, ! 774, -1, -1, -1, 667, 48, -1, 84, 51, 672, ! -1, -1, 675, 56, 57, 58, -1, -1, 681, 62, ! 63, 684, -1, 686, 67, 10, 4, 1, 6, 7, ! 4, -1, 6, 7, 12, 13, 14, -1, 12, 13, ! 14, -1, 816, 86, 87, -1, 89, -1, -1, -1, ! 28, -1, 30, 84, 28, -1, 30, 31, 43, 44, ! 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, ! 55, 56, 57, 58, 59, 60, 850, 851, 741, -1, ! -1, -1, 745, -1, -1, 748, -1, -1, 751, -1, ! 1, 754, 3, 4, 5, 6, 7, 8, 9, -1, ! 11, 12, 13, 14, 15, 90, 17, 18, 19, 20, ! 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, ! 31, 32, 33, 34, 35, 36, 37, -1, -1, -1, ! -1, 42, -1, 4, 5, 6, 7, 48, -1, 10, ! 51, 12, 13, 14, -1, 56, 57, 58, -1, -1, ! -1, 62, 63, -1, -1, -1, 67, 28, -1, 30, ! -1, 5, 6, 7, -1, -1, -1, -1, 12, 13, ! 14, -1, -1, 84, 85, 86, 87, 1, 89, 3, ! 4, 5, 6, 7, 8, 9, 30, 11, 12, 13, ! 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, ! 24, 25, 26, 27, 28, 29, 30, 31, -1, 33, ! 34, 35, 36, 37, 5, 6, 7, -1, 42, -1, ! -1, 12, 13, 14, 48, -1, -1, 51, 5, 6, ! 7, -1, 56, 57, 58, 12, 13, 14, 62, 63, ! -1, -1, -1, 67, 4, 5, 6, 7, 5, 6, ! 7, -1, 12, 13, 14, 12, 13, 14, -1, -1, ! 84, -1, 86, 87, 1, 89, 3, 4, 28, -1, ! 30, 8, 9, 30, 11, -1, -1, -1, 15, -1, ! 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ! 27, -1, 29, -1, 31, -1, 33, 34, 35, 36, ! 37, -1, -1, -1, -1, 42, -1, -1, -1, 6, ! 7, 48, -1, -1, 51, 12, 13, 14, -1, 56, ! 57, 58, -1, -1, 84, 62, 63, -1, -1, 1, ! 67, 3, 4, 30, 6, 7, 8, 9, -1, 11, ! 12, 13, 14, -1, -1, -1, -1, 84, -1, 86, ! 87, -1, 89, -1, -1, -1, 28, 29, 30, 31, ! -1, 33, 34, 35, 36, 37, 5, 6, 7, -1, ! 42, -1, -1, 12, 13, 14, 48, -1, -1, 51, ! 5, 6, 7, -1, 56, 57, 58, 12, 13, 14, ! 62, 63, -1, -1, 1, 67, 3, 4, -1, -1, ! -1, 8, 9, -1, 11, -1, -1, -1, -1, -1, ! 4, 5, 6, 7, 86, 87, -1, 89, 12, 13, ! 14, -1, 29, -1, 31, -1, 33, 34, 35, 36, ! 37, -1, -1, -1, 28, 42, 30, -1, -1, -1, ! -1, 48, 62, 63, 51, 65, 66, 67, 68, 56, ! 57, 58, -1, -1, -1, 62, 63, -1, -1, 66, ! 67, 68, 1, -1, 3, 4, -1, -1, -1, 8, ! 9, -1, 11, -1, -1, -1, -1, -1, 85, 86, ! 87, -1, 89, 54, 55, 56, 57, 58, 59, 60, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, 66, 67, 68, ! 1, -1, 3, -1, -1, -1, -1, 8, 9, -1, 11, -1, -1, -1, -1, -1, 85, 86, 87, -1, 89, -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, ! -1, 42, -1, 44, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, 66, 67, 68, 1, -1, 3, -1, -1, -1, -1, 8, 9, -1, 11, -1, ! -1, 4, 5, 6, 7, 86, 87, -1, 89, 12, ! 13, 14, -1, -1, -1, -1, 29, -1, 31, -1, ! 33, 34, 35, 36, 37, 28, -1, 30, -1, 42, ! -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, ! 63, -1, 1, -1, 67, 4, 5, 6, 7, -1, ! -1, -1, -1, 12, 13, 14, -1, -1, -1, -1, ! -1, -1, -1, 86, 87, -1, 89, -1, 27, 28, ! 1, 30, -1, 4, 5, 6, 7, -1, -1, -1, ! -1, 12, 13, 14, -1, 44, -1, -1, -1, 1, ! -1, 3, 4, 5, 6, 7, 27, 28, -1, 30, ! 12, 13, 14, -1, -1, -1, -1, -1, 67, 68, ! -1, -1, -1, 44, -1, 27, 28, -1, 30, 31, ! -1, -1, -1, -1, -1, 84, -1, -1, -1, 88, ! 89, -1, -1, -1, 3, 4, 5, 6, 7, 8, ! 9, -1, 11, 12, 13, 14, 58, -1, -1, -1, ! -1, -1, -1, 84, -1, 67, -1, 88, 89, 28, ! 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, 84, 42, -1, 3, -1, 5, -1, 48, ! 8, 9, 51, 11, -1, -1, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, ! -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, ! -1, -1, -1, -1, 42, -1, -1, 86, 87, -1, ! 48, 90, -1, 51, -1, -1, -1, -1, 56, 57, ! 58, -1, -1, -1, 62, 63, -1, 3, -1, 67, ! -1, -1, 8, 9, -1, 11, 49, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, 86, 87, ! -1, -1, 90, 29, -1, 31, -1, 33, 34, 35, ! 36, 37, -1, -1, -1, -1, 42, -1, 3, -1, ! -1, -1, 48, 8, 9, 51, 11, -1, -1, -1, ! 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, ! -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, ! 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, ! 86, 87, -1, 48, 90, -1, 51, -1, -1, -1, ! -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, ! -1, -1, 67, -1, -1, -1, -1, -1, 3, 4, ! 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, ! -1, 86, 87, -1, -1, 90, 21, 22, 23, 24, ! 25, 26, 27, 28, 29, 30, 31, -1, 33, 34, ! 35, 36, 37, -1, -1, -1, -1, 42, -1, 4, ! 5, 6, 7, 48, -1, -1, 51, 12, 13, 14, ! -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, ! -1, -1, 67, 28, -1, 30, -1, 3, 4, -1, ! -1, -1, 8, 9, -1, 11, -1, -1, -1, 84, ! -1, 86, 87, -1, 89, 21, 22, 23, 24, 25, ! 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, ! 36, 37, -1, -1, -1, -1, 42, -1, 4, 5, ! 6, 7, 48, -1, -1, 51, 12, 13, 14, 84, ! 56, 57, 58, -1, -1, -1, 62, 63, 3, -1, ! -1, 67, 28, 8, 9, -1, 11, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, 84, -1, ! 86, 87, -1, 89, 29, -1, 31, -1, 33, 34, ! 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 3, 4, 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, -1, -1, 4, 5, 6, 7, 86, 87, -1, 89, 12, 13, 14, 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, ! -1, 28, 42, 30, -1, -1, -1, -1, 48, -1, ! -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, ! -1, -1, 62, 63, -1, 3, 4, 67, 6, 7, ! 8, 9, -1, 11, 12, 13, 14, 52, 53, 54, ! 55, 56, 57, 58, 59, 60, 86, 87, -1, -1, ! 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, ! -1, -1, -1, -1, 42, -1, 3, -1, -1, -1, 48, 8, 9, 51, 11, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, ! 37, -1, -1, -1, -1, 42, -1, 3, 86, 87, -1, 48, 8, 9, 51, 11, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, 35, ! 36, 37, -1, -1, -1, -1, 42, 84, 3, 86, 87, -1, 48, 8, 9, 51, 11, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, --- 660,1556 ---- 4, 0, 0, 9, 4, 0, 0, 8, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, ! 2, 4, 2, 2, 1, 1, 1, 1, 4, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 0, 4, 0, 4, 0, 0, 7, 0, ! 5, 3, 3, 1, 1, 1, 1, 0, 7, 3, ! 3, 3, 3, 4, 6, 8, 6, 4, 3, 3, ! 2, 2, 1, 2, 0, 1, 2, 3, 1, 1, ! 2, 2, 4, 4, 2, 2, 3, 0, 1, 4, ! 4, 3, 3, 2, 2, 1, 2, 2, 2, 2, ! 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, ! 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, ! 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, ! 4, 1, 4, 0, 4, 0, 6, 3, 0, 6, ! 3, 0, 1, 1, 2, 6, 1, 3, 0, 1, ! 4, 6, 4, 1, 1, 1, 1, 1, 0, 4, ! 1, 0, 2, 1, 3, 3, 2, 0, 4, 1, ! 0, 4, 1, 1, 1, 2, 2, 5, 3, 0, ! 0, 7, 0, 0, 7, 1, 1, 4, 3, 2, ! 3, 1, 1, 1, 3, 2, 1, 3, 2, 3, ! 3, 4, 3, 4, 3, 2, 1, 1, 2, 1, ! 2, 1, 2, 0, 7, 5, 0, 7, 5, 0, ! 8, 0, 7, 2, 2, 2, 0, 1, 0, 1, ! 1, 2, 0, 3, 2, 3, 4, 3, 1, 1, ! 2, 1, 4, 1, 4, 4, 6, 5, 4, 6, ! 5, 1, 3, 1, 1, 3, 0, 3, 0, 1, ! 0, 1, 2, 1, 1, 1, 3, 2, 3, 4, ! 3, 2, 2, 1, 3, 4, 2, 3, 3, 4, ! 4, 5, 5, 1, 1, 1, 1, 1, 2, 2, ! 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, ! 2, 1, 2, 1, 1, 1, 1, 2, 0, 0, ! 0, 0, 0, 1, 1, 2, 3, 1, 2, 1, ! 1, 5, 1, 1, 2, 2, 2, 2, 0, 5, ! 0, 4, 0, 0, 1, 2, 3, 3, 3, 0, ! 4, 1, 3, 0, 0, 7, 5, 2, 0, 0, ! 0, 0, 12, 0, 6, 2, 1, 1, 2, 3, ! 2, 2, 2, 3, 6, 8, 10, 12, 3, 4, ! 1, 3, 5, 2, 5, 0, 1, 0, 1, 0, ! 1, 1, 3, 4, 7, 1, 3, 0, 3, 2, ! 0, 0, 6, 2, 0, 1, 1, 3, 1, 3, ! 4, 4, 3, 4, 3, 4, 4, 3, 4, 3, ! 1, 0, 3, 1, 2, 1, 3, 1, 3, 1 }; static const short yydefact[] = { 3, ! 5, 0, 0, 0, 267, 158, 264, 126, 352, 348, ! 350, 0, 57, 0, 560, 17, 4, 8, 7, 0, ! 0, 211, 212, 213, 214, 203, 204, 205, 206, 215, ! 216, 217, 218, 207, 208, 209, 210, 118, 118, 0, ! 134, 141, 261, 263, 262, 132, 284, 0, 0, 0, ! 266, 265, 0, 6, 15, 16, 353, 349, 351, 0, ! 0, 0, 347, 259, 282, 0, 272, 0, 161, 127, ! 139, 145, 129, 162, 128, 140, 146, 168, 130, 151, ! 156, 133, 169, 131, 152, 157, 179, 135, 137, 143, ! 142, 180, 136, 138, 144, 194, 147, 149, 154, 153, ! 195, 148, 150, 155, 163, 159, 177, 186, 165, 164, ! 160, 178, 187, 170, 166, 192, 201, 172, 171, 167, ! 193, 202, 181, 173, 175, 184, 183, 182, 174, 176, ! 185, 196, 188, 190, 199, 198, 197, 189, 191, 200, ! 0, 0, 14, 285, 30, 31, 373, 364, 373, 365, ! 362, 366, 10, 84, 85, 103, 55, 56, 0, 0, ! 0, 0, 0, 87, 0, 32, 34, 33, 0, 35, ! 36, 0, 37, 38, 0, 0, 39, 58, 0, 0, ! 60, 42, 44, 86, 0, 0, 289, 0, 239, 240, ! 241, 242, 235, 236, 237, 238, 397, 0, 231, 232, ! 233, 234, 260, 0, 0, 283, 11, 282, 29, 0, ! 282, 0, 0, 282, 346, 332, 259, 282, 0, 270, ! 0, 326, 327, 0, 0, 0, 0, 354, 0, 357, ! 0, 360, 53, 54, 0, 0, 0, 48, 45, 0, ! 465, 0, 0, 47, 0, 0, 0, 49, 0, 51, ! 0, 0, 77, 75, 73, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 101, 102, 0, ! 0, 40, 0, 104, 0, 461, 453, 0, 46, 295, ! 296, 297, 294, 0, 287, 290, 268, 399, 269, 345, ! 0, 0, 119, 0, 552, 343, 0, 0, 417, 0, ! 0, 0, 27, 0, 473, 110, 474, 281, 0, 0, ! 13, 282, 21, 0, 282, 282, 330, 12, 25, 0, ! 282, 380, 375, 231, 232, 233, 234, 227, 228, 229, ! 230, 118, 118, 372, 0, 373, 282, 373, 394, 395, ! 369, 392, 0, 0, 0, 0, 91, 90, 0, 9, ! 43, 0, 0, 83, 82, 0, 0, 0, 0, 71, ! 72, 70, 69, 68, 66, 67, 61, 62, 63, 64, ! 65, 100, 99, 0, 41, 0, 93, 0, 0, 454, ! 455, 92, 0, 289, 40, 259, 282, 398, 400, 405, ! 404, 406, 414, 344, 273, 274, 0, 0, 0, 0, ! 419, 415, 0, 0, 418, 0, 448, 473, 112, 107, ! 111, 0, 279, 331, 0, 0, 19, 278, 329, 23, ! 356, 473, 473, 374, 381, 0, 359, 0, 0, 370, ! 0, 369, 0, 0, 0, 88, 59, 50, 52, 0, ! 0, 76, 74, 94, 98, 558, 0, 464, 433, 463, ! 473, 473, 473, 473, 0, 442, 0, 474, 428, 437, ! 456, 286, 288, 84, 0, 408, 528, 413, 282, 412, ! 275, 0, 556, 536, 223, 224, 219, 220, 225, 226, ! 221, 222, 118, 118, 554, 0, 537, 539, 553, 0, ! 421, 0, 0, 420, 416, 474, 108, 118, 118, 0, ! 328, 271, 274, 473, 276, 473, 376, 382, 474, 378, ! 384, 474, 282, 282, 396, 393, 282, 0, 0, 0, ! 0, 0, 78, 81, 457, 0, 434, 429, 438, 435, ! 430, 439, 474, 431, 440, 436, 432, 441, 443, 450, ! 451, 291, 0, 293, 407, 409, 0, 0, 528, 411, ! 534, 551, 401, 401, 530, 531, 0, 555, 0, 422, ! 423, 0, 115, 0, 116, 0, 301, 299, 298, 280, ! 474, 0, 474, 282, 377, 282, 0, 355, 358, 363, ! 282, 95, 0, 97, 314, 84, 0, 0, 311, 0, ! 313, 0, 367, 304, 310, 0, 0, 0, 559, 451, ! 462, 267, 0, 0, 0, 0, 0, 0, 516, 511, ! 460, 473, 0, 117, 118, 118, 0, 0, 449, 498, ! 478, 479, 0, 0, 410, 529, 337, 259, 282, 282, ! 333, 334, 282, 548, 402, 405, 259, 282, 282, 550, ! 282, 538, 211, 212, 213, 214, 203, 204, 205, 206, ! 215, 216, 217, 218, 207, 208, 209, 210, 118, 118, ! 540, 557, 0, 28, 458, 0, 0, 0, 0, 277, ! 0, 473, 0, 282, 473, 0, 282, 361, 0, 317, ! 0, 0, 308, 89, 0, 303, 0, 316, 307, 79, ! 0, 514, 501, 502, 503, 0, 0, 0, 517, 0, ! 474, 499, 0, 0, 124, 469, 484, 471, 489, 0, ! 482, 0, 0, 452, 466, 125, 292, 408, 528, 546, ! 282, 336, 282, 339, 547, 403, 408, 528, 549, 532, ! 401, 401, 459, 113, 114, 0, 20, 24, 383, 474, ! 282, 0, 386, 385, 282, 0, 389, 96, 0, 319, ! 0, 0, 305, 306, 0, 512, 504, 0, 509, 0, ! 0, 0, 122, 320, 0, 123, 323, 0, 0, 451, ! 0, 0, 0, 468, 473, 467, 488, 0, 500, 340, ! 341, 0, 335, 338, 0, 282, 282, 543, 282, 545, ! 300, 0, 388, 282, 391, 282, 0, 312, 309, 0, ! 510, 0, 282, 120, 0, 121, 0, 0, 0, 0, ! 518, 0, 483, 451, 452, 475, 473, 0, 342, 533, ! 541, 542, 544, 387, 390, 318, 513, 520, 0, 515, ! 321, 324, 0, 0, 472, 519, 497, 490, 0, 494, ! 481, 477, 476, 0, 0, 0, 0, 521, 522, 505, ! 473, 473, 470, 485, 518, 496, 451, 487, 0, 0, ! 520, 0, 0, 474, 474, 451, 0, 495, 0, 0, ! 0, 506, 523, 0, 0, 486, 491, 524, 0, 0, ! 0, 322, 325, 518, 0, 526, 0, 507, 0, 0, ! 0, 0, 492, 525, 508, 527, 451, 493, 0, 0, ! 0 }; ! static const short yydefgoto[] = { 899, ! 1, 2, 3, 17, 18, 19, 314, 504, 320, 506, ! 213, 408, 590, 175, 242, 374, 177, 178, 179, 180, ! 20, 181, 182, 359, 358, 356, 598, 357, 183, 522, ! 184, 303, 304, 305, 497, 449, 21, 292, 614, 189, ! 190, 191, 192, 193, 194, 195, 196, 30, 31, 32, ! 33, 34, 35, 36, 37, 38, 39, 483, 484, 332, ! 203, 197, 40, 204, 41, 42, 43, 44, 45, 219, ! 66, 214, 220, 572, 67, 500, 293, 206, 47, 284, ! 285, 286, 570, 668, 592, 593, 594, 752, 595, 682, ! 596, 597, 763, 805, 851, 766, 807, 852, 503, 222, ! 630, 631, 632, 223, 48, 49, 50, 51, 336, 338, ! 343, 231, 52, 686, 431, 226, 227, 334, 507, 510, ! 508, 511, 341, 342, 198, 288, 388, 634, 635, 390, ! 391, 392, 215, 450, 451, 452, 453, 454, 455, 306, ! 277, 601, 775, 779, 379, 380, 381, 664, 619, 278, ! 457, 185, 665, 711, 712, 768, 713, 770, 307, 412, ! 815, 776, 816, 817, 714, 814, 769, 866, 771, 855, ! 884, 897, 857, 838, 621, 622, 700, 839, 847, 848, ! 849, 887, 468, 548, 485, 641, 785, 486, 487, 661, ! 488, 553, 296, 398, 489, 490, 447, 186 }; ! static const short yypact[] = { 57, ! 92, 986, 986, 379,-32768,-32768,-32768,-32768, 109, 109, ! 109, 105,-32768, 123,-32768,-32768,-32768,-32768,-32768, 165, ! 316, 509, 1138, 1295, 1166, 311, 1055, 833, 1206, 1326, ! 1453, 1379, 1540, 1605, 1298, 1625, 1591,-32768,-32768, 63, ! -32768,-32768,-32768,-32768,-32768, 109,-32768, 71, 80, 125, ! -32768,-32768, 986,-32768,-32768,-32768, 109, 109, 109, 2684, ! 176, 2602,-32768, 129, 109, 203,-32768, 896,-32768,-32768, ! -32768,-32768, 109,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 109,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 109,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 109, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 109,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, 109,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 109,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 109,-32768,-32768,-32768,-32768, ! 206, 316,-32768,-32768,-32768,-32768,-32768, 42,-32768, 162, ! -32768, 189,-32768,-32768,-32768,-32768,-32768,-32768, 2684, 2684, ! 230, 238, 246,-32768, 483,-32768,-32768,-32768, 2684,-32768, ! -32768, 1797,-32768,-32768, 2684, 254, 270,-32768, 2725, 2766, ! -32768, 3099, 1053, 355, 1471, 2684, 908, 284, 2385, 3084, ! 2553, 3095, 690, 485, 732, 605,-32768, 295, 242, 373, ! 279, 409,-32768, 316, 316, 109,-32768, 109,-32768, 323, ! 109, 2131, 461, 109,-32768,-32768, 129, 109, 293,-32768, ! 1080, 504, 513, 304, 1045, 349, 489,-32768, 358,-32768, ! 542,-32768,-32768,-32768, 2684, 2684, 3026,-32768,-32768, 363, ! -32768, 369, 371,-32768, 387, 2684, 1797,-32768, 1797,-32768, ! 2684, 2684, 464,-32768,-32768, 2684, 2684, 2684, 2684, 2684, ! 2684, 2684, 2684, 2684, 2684, 2684, 2684,-32768,-32768, 483, ! 483, 2684, 2684,-32768, 405,-32768, 486, 424,-32768,-32768, ! -32768,-32768,-32768, 201,-32768, 457,-32768, 390,-32768, 513, ! 186, 316,-32768, 529,-32768,-32768, 2602, 2234,-32768, 466, ! 2172, 478,-32768, 356, 114,-32768,-32768, 532, 206, 206, ! -32768, 109,-32768, 461, 109, 109,-32768,-32768,-32768, 461, ! 109,-32768,-32768, 2385, 3084, 2553, 3095, 690, 485, 732, ! 605,-32768, 499, 502, 1413,-32768, 109,-32768,-32768, 546, ! 506,-32768, 542, 2872, 2890, 508,-32768,-32768, 2475,-32768, ! 3099, 517, 525, 3099, 3099, 2684, 568, 2684, 2684, 2437, ! 3062, 1208, 2564, 983, 879, 879, 288, 288,-32768,-32768, ! -32768,-32768,-32768, 555, 270, 551,-32768, 483, 1558, 486, ! -32768,-32768, 562, 908, 2807, 129, 109,-32768,-32768,-32768, ! -32768, 535,-32768,-32768,-32768, 99, 33, 1230, 557, 2684, ! -32768,-32768, 2684, 2275,-32768, 559,-32768,-32768,-32768,-32768, ! -32768, 2454,-32768, 504, 192, 206,-32768, 581,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 566,-32768, 570, 2684, 483, ! 572, 506, 3026, 2684, 3026,-32768,-32768, 564, 564, 616, ! 2684, 3128, 2197,-32768,-32768,-32768, 314, 478,-32768,-32768, ! 94, 98, 112, 132, 662,-32768, 580,-32768,-32768,-32768, ! -32768,-32768,-32768, 326, 585, 390, 390,-32768, 109,-32768, ! -32768, 588,-32768,-32768, 1709, 3030, 1194, 864, 1875, 3055, ! 1712, 989,-32768,-32768,-32768, 591, 338,-32768,-32768, 327, ! -32768, 586, 590,-32768,-32768,-32768,-32768, 598, 601, 1313, ! -32768,-32768, 659,-32768,-32768,-32768, 602,-32768,-32768, 603, ! -32768,-32768, 109, 109, 3099,-32768, 109, 604, 615, 2914, ! 627, 1862,-32768, 3115,-32768, 483,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 2345,-32768, 2684,-32768,-32768,-32768, 628, 753,-32768,-32768, ! -32768,-32768, 383, 178,-32768,-32768, 945,-32768, 696,-32768, ! -32768, 69,-32768, 206,-32768, 316,-32768,-32768, 3099,-32768, ! -32768, 1313,-32768, 109, 253, 109, 362,-32768,-32768,-32768, ! 109,-32768, 2684,-32768,-32768, 671, 483, 2684,-32768, 684, ! 3099, 646, 644,-32768,-32768, 167, 1998, 2684,-32768, 2414, ! -32768, 687, 2684, 694, 652, 657, 2643, 141, 735,-32768, ! -32768,-32768, 663,-32768,-32768,-32768, 666, 704, 658,-32768, ! -32768,-32768, 2540, 352,-32768,-32768,-32768, 129, 109, 109, ! 538, 553, 158,-32768,-32768, 109, 129, 109, 158,-32768, ! 109,-32768, 1709, 3030, 2076, 3059, 1194, 864, 1772, 1536, ! 1875, 3055, 2144, 3072, 1712, 989, 1837, 1678,-32768,-32768, ! -32768,-32768, 672,-32768,-32768, 416, 421, 1862, 69,-32768, ! 69,-32768, 2684, 88,-32768, 2684, 329,-32768, 2932,-32768, ! 1228, 1862,-32768,-32768, 1930,-32768, 2066,-32768,-32768, 3115, ! 2852,-32768,-32768,-32768,-32768, 668, 2684, 680,-32768, 702, ! -32768,-32768, 206, 316,-32768,-32768,-32768,-32768,-32768, 705, ! 755, 1645, 118,-32768,-32768,-32768,-32768, 383, 336,-32768, ! 109,-32768, 109,-32768,-32768, 109, 178, 178,-32768,-32768, ! 383, 178,-32768,-32768,-32768, 693,-32768,-32768,-32768,-32768, ! 2969, 2684,-32768,-32768, 2969, 2684,-32768,-32768, 2684,-32768, ! 695, 2066,-32768,-32768, 2684,-32768,-32768, 703,-32768, 2684, ! 742, 469,-32768, 268, 475,-32768, 548, 722, 724,-32768, ! 726, 2684, 1732,-32768,-32768,-32768,-32768, 2684,-32768, 538, ! 553, 393,-32768,-32768, 753, 109, 158,-32768, 158,-32768, ! -32768, 253,-32768, 2969,-32768, 2969, 2828,-32768,-32768, 3081, ! -32768, 52, 109,-32768, 461,-32768, 461, 2684, 2684, 777, ! 2540, 713,-32768,-32768,-32768,-32768,-32768, 714,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, 121, 720,-32768, ! -32768,-32768, 715, 723,-32768,-32768,-32768,-32768, 729,-32768, ! -32768,-32768,-32768, 731, 740, 483, 97, 728,-32768,-32768, ! -32768,-32768,-32768,-32768, 2684,-32768,-32768,-32768, 2684, 730, ! 121, 738, 121,-32768,-32768,-32768, 739,-32768, 749, 824, ! 155,-32768,-32768, 672, 672,-32768,-32768,-32768, 767, 529, ! 751,-32768,-32768, 2684, 2684, 355, 389,-32768, 759, 760, ! 764, 529,-32768,-32768,-32768, 355,-32768,-32768, 844, 851, ! -32768 }; static const short yypgoto[] = {-32768, ! -32768,-32768,-32768, 87,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 101,-32768, -60, 468, -253, 443,-32768,-32768, ! -32768, -82, 769,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -293, -299, 549,-32768,-32768, 78, 68, -282, -572, 7, ! 41, 38, 44, 1, 20, 47, 50, -364, -336, 299, ! 302, -330, -326, 303, 305, -496, -461, 454, 456,-32768, ! -161, -127, -503, -200, 503, 683, 748, 774,-32768, -532, ! -135, -210, 470,-32768, 589,-32768, 96, 3, 64,-32768, ! 500,-32768, 315,-32768, -420,-32768, 204,-32768, -533,-32768, ! -32768, 292,-32768,-32768,-32768,-32768,-32768,-32768, -133, 319, ! 160, 180, -85, 202,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 472, -94,-32768, 583,-32768,-32768, ! 233, 232, 573, 492, -84,-32768,-32768, -526, -272, -397, ! -442,-32768, 465,-32768,-32768,-32768,-32768,-32768,-32768, -268, ! -32768,-32768, -452, 104,-32768,-32768, 545, -343,-32768, 308, ! -32768,-32768, -521,-32768,-32768,-32768,-32768,-32768, 442, -395, ! 111, -689, -172, -150,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, -743, 84,-32768, ! 90,-32768, 487,-32768, -522,-32768,-32768,-32768,-32768,-32768, ! -32768, 476, -298,-32768,-32768,-32768,-32768, 56 }; ! #define YYLAST 3188 ! static const short yytable[] = { 176, ! 397, 188, 26, 26, 46, 46, 224, 221, 22, 22, ! 315, 57, 58, 59, 417, 389, 309, 419, 375, 620, ! 420, 27, 27, 546, 73, 626, 82, 640, 91, 416, ! 100, 666, 109, 479, 118, 409, 127, 617, 136, 24, ! 24, 274, 23, 23, 615, 25, 25, 479, 28, 28, ! 716, 29, 29, 26, 229, 46, -1, 53, 53, 22, ! 659, 480, 541, 689, 46, 333, 46, 481, 545, 663, ! 199, 482, 27, 145, 146, 480, 233, 234, 620, 616, ! 810, 481, 145, 146, 301, 482, 239, 243, 618, 54, ! 24, -2, 244, 23, -444, 660, 25, 828, -445, 28, ! 562, 201, 29, 279, 200, 141, 142, 202, 53, 144, ! 456, 867, -446, 575, -106, 471, 577, 14, 777, 617, ! 144, 144, 144, 410, 841, 210, 615, 145, 146, 845, ! 228, 375, -447, 742, 829, 8, 144, 600, 14, 153, ! 889, 733, 861, 145, 146, 144, 143, 618, 148, 150, ! 152, 300, 346, 754, 144, 636, 636, 611, 14, 147, ! 205, 616, 352, 144, 353, 211, 212, 868, 149, 400, ! 762, 60, 144, 333, 46, 669, 876, 671, -424, 862, ! 63, 144, -425, 479, 778, 466, 539, 14, 846, 61, ! 144, 73, 651, 82, 547, 91, -426, 100, 697, 144, ! 880, 73, -106, 82, 788, 790, 459, 898, 63, 216, ! 687, 480, 376, 151, 46, 239, -427, 481, 799, 46, ! 652, 482, 68, 199, 211, 212, 655, 328, 460, 46, ! 656, 62, 587, 324, 588, 637, 399, 881, 837, 46, ! 406, 426, 187, 428, 638, 212, 329, 736, 70, 46, ! 230, 46, 211, 212, 201, 63, 216, 200, 316, 212, ! 202, 751, 820, 217, 326, 238, 437, 325, 394, 144, ! 327, 14, 218, 330, 501, 546, 331, 232, 528, 531, ! 534, 537, 335, 383, 546, 79, 207, 283, 384, 624, ! 208, 672, 315, 675, 210, 440, 235, -274, 673, 46, ! 529, 532, 535, 538, 236, 761, 295, 617, 14, 308, ! 217, -274, 237, 310, 615, 87, 7, 88, 63, 218, ! 545, 239, 9, 10, 11, 737, 73, 738, 82, 545, ! 91, 340, 100, 636, 636, 328, 245, 46, 63, 492, ! 14, 324, 493, 225, 792, 265, 266, 267, 519, 616, ! 521, -274, 882, 883, 329, -274, 302, 246, 14, -109, ! -109, -109, -109, 274, 63, -109, 287, -109, -109, -109, ! 372, 373, 326, 64, 746, 325, 311, 289, 327, 75, ! 312, 330, 65, -109, 331, 63, 627, 318, 46, 294, ! 335, 208, 199, 628, -247, 211, 212, 525, 477, 422, ! 423, 526, 629, 212, 475, 290, 291, 676, 542, 558, ! 418, 295, 477, 543, 559, 84, 421, 478, 475, 64, ! 479, 556, 783, 201, 784, 557, 200, 718, 65, 202, ! 667, 478, 427, 321, 717, 46, 727, 46, 476, 246, ! 628, 674, 337, 340, -109, 347, 547, 386, 480, 629, ! 212, 348, 476, 349, 481, 547, 387, 212, 482, 723, ! 212, 302, 55, 56, -473, -473, -473, -473, 874, 875, ! 350, 891, -473, -473, -473, 819, 892, 73, 446, 91, ! 613, 109, 467, 127, 283, 145, 146, 377, -473, 322, ! 7, 93, 5, 396, 7, 8, 9, 10, 11, 734, ! 9, 10, 11, 312, 735, 831, 382, 832, 208, -80, ! 290, 291, 5, 69, 7, 70, 13, 378, 14, 15, ! 9, 10, 11, 385, 71, 76, 80, 85, 527, 530, ! 340, 536, 107, 112, 116, 121, 13, 156, 14, 613, ! 279, 26, 339, 46, 145, 146, 696, 22, 477, -105, ! 552, 552, 804, 315, 475, 402, 312, 647, 806, 46, ! 27, 407, 208, 643, 549, 564, 566, 478, 765, 764, ! 316, 212, 323, -371, 210, 413, 648, -274, 24, 211, ! 212, 23, -379, -379, 25, 424, 886, 28, 476, 429, ! 29, -274, -243, 430, 645, 435, 623, 644, 896, 438, ! 646, 469, 212, 649, 721, 212, 650, 439, 578, 579, ! 7, 102, 580, 441, 211, 212, 9, 10, 11, 723, ! 212, 248, 250, 26, 505, 46, 599, 414, 415, 22, ! 46, -274, 781, 782, 199, -274, 758, 444, 726, 46, ! 445, 612, 27, 199, 462, 73, 491, 82, 495, 91, ! 513, 100, 436, 109, 514, 118, 517, 127, 674, 136, ! 24, 523, 302, 23, 540, 201, 25, 544, 200, 28, ! 551, 202, 29, 555, 201, 560, 678, 200, 623, 561, ! 202, 563, 703, 704, 565, 210, 317, 680, 581, 574, ! 576, 71, 76, 80, 85, 7, 88, 582, 662, 802, ! 612, 9, 10, 11, 72, 77, 81, 86, 698, 584, ! 625, 812, 108, 113, 117, 122, -30, 818, 706, 14, ! 707, 708, 709, 710, 719, 720, 731, 732, 725, 683, ! 684, 685, -31, 728, 729, 693, 730, 7, 97, 692, ! 694, 699, 276, 9, 10, 11, 702, 833, 834, 705, ! 836, 757, 393, 472, 633, 639, 5, 6, 7, 8, ! 611, 14, 474, 759, 9, 10, 11, 396, 760, 743, ! 773, 772, 747, 89, 94, 98, 103, 791, 677, 798, ! 13, 125, 130, 134, 139, 477, 801, 803, 808, 144, ! 809, 475, 811, 835, 836, 840, 844, 853, 869, 90, ! 95, 99, 104, 850, 478, 854, 859, 126, 131, 135, ! 140, 26, 856, 46, 858, 863, 295, 22, 295, 870, ! 458, 872, 877, 836, 890, 476, 71, 76, 80, 85, ! 27, 878, 879, 885, 888, -535, 793, 96, 7, 97, ! 795, 893, 894, 900, 9, 10, 11, 895, 24, 496, ! 901, 23, 465, 411, 25, 653, 470, 28, 654, 657, ! 29, 658, 14, 509, 512, 498, 623, 499, 92, 7, ! 93, 72, 77, 81, 86, 9, 10, 11, 317, 317, ! 395, 821, 822, 463, 823, 502, 670, 688, 753, 824, ! 786, 825, 458, 458, 533, 458, 209, 780, 830, -26, ! -26, -26, -26, 518, 739, 767, 744, -26, -26, -26, ! 145, 146, 280, 281, 282, 432, -249, 425, 842, 290, ! 291, 516, 210, -26, 461, -274, 715, 843, 290, 291, ! 393, 393, 787, 789, 263, 264, 265, 266, 267, -274, ! 89, 94, 98, 103, 871, 571, 860, 573, 5, 6, ! 7, 8, 873, 0, 642, 550, 9, 10, 11, 554, ! 0, 0, 211, 212, 0, 0, 90, 95, 99, 104, ! 0, 0, 13, 0, 14, 0, 0, 71, 76, -274, ! 0, 107, 112, -274, -26, 0, 4, 0, -118, 5, ! 6, 7, 8, 128, 7, 129, 0, 9, 10, 11, ! 9, 10, 11, 344, 345, 0, 72, 77, 81, 86, ! 0, 0, 12, 13, 351, 14, 15, 393, 393, 354, ! 355, 0, 0, 0, 360, 361, 362, 363, 364, 365, ! 366, 367, 368, 369, 370, 371, 261, 262, 263, 264, ! 265, 266, 267, -118, 0, 319, 0, 0, -22, -22, ! -22, -22, -118, 701, 0, 0, -22, -22, -22, 92, ! 7, 93, 0, 0, 0, 0, 9, 10, 11, 16, ! 0, 210, -22, 0, -274, 89, 94, 98, 103, 0, ! 313, 0, 0, -18, -18, -18, -18, 0, -274, 0, ! 0, -18, -18, -18, 0, 722, 724, 0, 0, 0, ! 0, 90, 95, 99, 104, 0, 210, -18, 0, -274, ! 0, 211, 212, 740, 268, 269, 512, 270, 271, 272, ! 273, 0, 0, -274, 0, 0, 442, 443, -274, 0, ! 0, 0, -274, -22, 0, 0, 0, 0, -248, 0, ! 0, 5, 74, 7, 75, 71, 76, 80, 85, 9, ! 10, 11, 0, 107, 112, 116, 121, 72, 77, 0, ! 0, 108, 113, -274, 0, 13, 0, -274, -18, 5, ! 83, 7, 84, 0, 0, 0, 0, 9, 10, 11, ! 0, 0, 393, 393, 0, 0, 0, 0, 0, 0, ! 0, 393, 393, 13, 0, 393, 393, 515, 87, 7, ! 88, 0, 520, 0, 0, 9, 10, 11, 0, 524, ! 101, 7, 102, 0, 0, 0, 533, 9, 10, 11, ! 0, -244, 0, 14, 89, 94, 0, 0, 125, 130, ! 472, 0, 473, 5, 6, 7, 8, 749, 0, 474, ! 0, 9, 10, 11, 722, 724, 724, 0, 0, -246, ! 90, 95, 0, 0, 126, 131, 0, 13, 533, 259, ! 260, 261, 262, 263, 264, 265, 266, 267, 569, 0, ! 251, 252, 253, 0, 254, 255, 256, 257, 258, 259, ! 260, 261, 262, 263, 264, 265, 266, 267, 0, -250, ! 591, 0, 864, 865, 0, 0, 0, 0, 5, 78, ! 7, 79, 128, 7, 129, 0, 9, 10, 11, 9, ! 10, 11, -535, 567, 0, 154, 0, 750, 0, 0, ! 155, 156, 13, 157, 14, 72, 77, 81, 86, 5, ! 105, 7, 106, 108, 113, 117, 122, 9, 10, 11, ! 569, 158, 0, 15, 0, 159, 160, 161, 162, 163, ! 0, 679, 0, 13, 164, 14, 681, 0, 0, 0, ! 165, 0, 0, 166, 0, 591, 690, 0, 167, 168, ! 169, 691, 0, 0, 170, 171, 0, 0, -245, 172, ! 0, -256, 5, 114, 7, 115, 0, 0, 0, 0, ! 9, 10, 11, 0, 89, 94, 98, 103, 173, 174, ! 0, 568, 125, 130, 134, 139, 13, 0, 14, -251, ! 0, 0, 0, 322, 0, 0, 5, 0, 7, 8, ! 90, 95, 99, 104, 9, 10, 11, 0, 126, 131, ! 135, 140, 0, 0, 0, 0, 591, 0, 0, 0, ! 13, 741, 14, 15, 745, 0, 0, 0, 0, 0, ! 591, 0, 0, 591, 0, 591, 5, 110, 7, 111, ! 0, 0, -253, 0, 9, 10, 11, 0, 0, 0, ! 0, 275, 0, -449, -449, -449, -449, -449, -449, -449, ! 13, -449, -449, -449, -449, -449, 0, -449, -449, -449, ! -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, ! -449, -449, -449, -449, -449, -449, -449, -449, 0, 0, ! 794, 0, -449, 0, 796, 0, 0, 797, -449, 0, ! 591, -449, 0, 800, 0, 0, -449, -449, -449, 0, ! 0, 0, -449, -449, 0, 0, -252, -449, 0, 0, ! 101, 7, 102, 5, 119, 7, 120, 9, 10, 11, ! 0, 9, 10, 11, -449, 276, -449, -449, 448, -449, ! -473, -473, -473, -473, -473, -473, -473, 13, -473, -473, ! -473, -473, -473, 0, -473, -473, -473, -473, -473, -473, ! -473, -473, -473, -473, -473, -473, -473, -473, -473, 0, ! -473, -473, -473, -473, -473, 137, 7, 138, 0, -473, ! 0, 0, 9, 10, 11, -473, 0, 0, -473, 123, ! 7, 124, 0, -473, -473, -473, 9, 10, 11, -473, ! -473, 0, 0, -254, -473, 0, 0, 0, 0, 132, ! 7, 133, 0, 0, 14, 0, 9, 10, 11, 0, ! 0, -473, 0, -473, -473, 774, -473, -451, -451, 0, ! 0, 0, -451, -451, 14, -451, 0, 0, 0, -451, ! 0, -451, -451, -451, -451, -451, -451, -451, -451, -451, ! -451, -451, 0, -451, -258, -451, 0, -451, -451, -451, ! -451, -451, 137, 7, 138, 0, -451, 0, -255, 9, ! 10, 11, -451, 0, 0, -451, 0, 0, 0, 0, ! -451, -451, -451, 0, 0, 0, -451, -451, -257, 0, ! 0, -451, 5, 69, 7, 70, 123, 7, 124, 0, ! 9, 10, 11, 9, 10, 11, 0, 0, -451, 0, ! -451, -451, 813, -451, -480, -480, 13, 0, 14, -480, ! -480, 14, -480, 0, 0, 0, -480, 0, -480, -480, ! -480, -480, -480, -480, -480, -480, -480, -480, -480, 0, ! -480, 0, -480, 0, -480, -480, -480, -480, -480, 0, ! 0, 0, 0, -480, 0, 0, 96, 7, 97, -480, ! 0, 0, -480, 9, 10, 11, 0, -480, -480, -480, ! 0, 0, 0, -480, -480, 0, 0, 240, -480, 154, ! 5, 14, 7, 8, 155, 156, 0, 157, 9, 10, ! 11, 0, 0, 0, 0, -480, 0, -480, -480, 0, ! -480, 0, 0, 0, 13, 158, 14, 15, 0, 159, ! 160, 161, 162, 163, 0, 0, 0, 0, 164, 0, ! 0, 132, 7, 133, 165, 0, 0, 166, 9, 10, ! 11, 0, 167, 168, 169, 0, 0, 0, 170, 171, ! 0, 0, 585, 172, 586, 146, 14, 0, 0, 155, ! 156, 0, 157, 0, 0, 0, 0, 0, 5, 105, ! 7, 106, 173, 174, 0, 241, 9, 10, 11, 0, ! 158, 0, 15, 0, 159, 160, 161, 162, 163, 0, ! 0, 0, 13, 164, 14, 0, 0, 0, 0, 165, ! 0, 0, 166, 0, 0, 0, 0, 167, 168, 169, ! 0, 0, 0, 170, 171, 0, 0, 587, 172, 588, ! 585, 0, 586, 146, 0, 0, 0, 155, 156, 0, ! 157, 0, 0, 0, 0, 0, -302, 173, 174, 0, ! 589, 0, 0, 0, 0, 0, 0, 0, 158, 0, ! 15, 0, 159, 160, 161, 162, 163, 0, 0, 0, ! 0, 164, 0, 0, 0, 0, 0, 165, 0, 0, ! 166, 0, 0, 0, 0, 167, 168, 169, 0, 0, ! 0, 170, 171, 0, 0, 587, 172, 588, 585, 0, ! 154, 0, 0, 0, 0, 155, 156, 0, 157, 0, ! 0, 0, 0, 0, -368, 173, 174, 0, 589, 0, ! 0, 0, 0, 0, 0, 0, 158, 0, 15, 0, ! 159, 160, 161, 162, 163, 0, 0, 0, 0, 164, ! 0, -315, 0, 0, 0, 165, 0, 0, 166, 0, ! 0, 0, 0, 167, 168, 169, 0, 0, 0, 170, ! 171, 0, 0, -315, 172, -315, 585, 0, 154, 0, ! 0, 0, 0, 155, 156, 0, 157, 0, 0, 5, ! 78, 7, 79, 173, 174, 0, 589, 9, 10, 11, ! 0, 0, 0, 0, 158, 0, 15, 0, 159, 160, ! 161, 162, 163, 13, 0, 14, 0, 164, 0, 0, ! 0, 0, 0, 165, 0, 0, 166, 0, 0, 0, ! 0, 167, 168, 169, 0, 0, 0, 170, 171, 0, ! 0, 0, 172, 154, 5, 297, 7, 8, 155, 156, ! 0, 157, 9, 10, 11, 0, 0, 5, 114, 7, ! 115, 173, 174, 0, 589, 9, 10, 11, 13, 158, ! 14, 15, 0, 159, 160, 161, 162, 163, 0, 0, ! 0, 13, 164, 14, 154, 0, 403, 0, 165, 155, ! 156, 166, 157, 0, 0, 0, 167, 168, 298, 0, ! 0, 0, 170, 171, 0, 0, 0, 172, 0, 0, ! 158, 0, 15, 0, 159, 160, 161, 162, 163, 0, ! 0, 0, 0, 164, 0, 0, 173, 174, 0, 165, ! 299, 0, 166, 0, 0, 0, 0, 167, 168, 404, ! 0, 0, 0, 170, 171, 0, 154, 0, 172, 0, ! 0, 155, 156, 0, 157, 256, 257, 258, 259, 260, ! 261, 262, 263, 264, 265, 266, 267, 173, 174, 0, ! 0, 405, 158, 0, 15, 0, 159, 160, 161, 162, ! 163, 0, 0, 0, 0, 164, 0, 154, 0, 0, ! 0, 165, 155, 156, 166, 157, 0, 0, 0, 167, ! 168, 169, 0, 0, 0, 170, 171, 0, 0, 0, ! 172, 0, 0, 158, 0, 15, 0, 159, 160, 161, ! 162, 163, 0, 0, 0, 0, 164, 0, 0, 173, ! 174, 0, 165, 401, 0, 166, 0, 0, 0, 0, ! 167, 168, 169, 0, 0, 0, 170, 171, 0, 0, ! 0, 172, 0, 0, 0, 0, 0, 586, 602, 6, ! 7, 8, 155, 156, 0, 157, 9, 10, 11, 0, ! 173, 174, 0, 0, 494, 603, 604, 605, 606, 607, ! 608, 609, 13, 158, 14, 15, 0, 159, 160, 161, ! 162, 163, 0, 0, 0, 0, 164, 0, 5, 0, ! 7, 70, 165, 0, 0, 166, 9, 10, 11, 0, ! 167, 168, 169, 0, 0, 0, 170, 171, 0, 0, ! 0, 172, 13, 0, 14, 0, 586, 146, 0, 0, ! 0, 155, 156, 0, 157, 0, 0, 0, 610, 0, ! 173, 174, 0, 611, 603, 604, 605, 606, 607, 608, ! 609, 0, 158, 0, 15, 0, 159, 160, 161, 162, ! 163, 0, 0, 0, 0, 164, 0, 5, 6, 7, ! 8, 165, 0, 0, 166, 9, 10, 11, 0, 167, ! 168, 169, 0, 0, 0, 170, 171, 154, 0, 0, ! 172, 13, 155, 156, 0, 157, 257, 258, 259, 260, ! 261, 262, 263, 264, 265, 266, 267, 610, 0, 173, ! 174, 0, 611, 158, 0, 15, 0, 159, 160, 161, ! 162, 163, 0, 0, 0, 0, 164, 0, 0, 0, ! 0, 0, 165, 0, 0, 166, 0, 0, 0, 0, ! 167, 168, 169, 0, 0, 0, 170, 171, 0, 0, ! 0, 172, 154, 5, 6, 7, 8, 155, 156, 0, ! 157, 9, 10, 11, 0, 0, 5, 0, 7, 79, ! 173, 174, 0, 436, 9, 10, 11, 13, 158, 14, ! 15, 0, 159, 160, 161, 162, 163, 0, 0, 0, ! 13, 164, 14, 0, 0, 0, 0, 165, 0, 0, ! 166, 0, 0, 0, 0, 167, 168, 169, 0, 0, ! 0, 170, 171, 0, 154, 5, 172, 7, 8, 155, ! 156, 0, 157, 9, 10, 11, 260, 261, 262, 263, ! 264, 265, 266, 267, 0, 173, 174, 0, 0, 13, ! 158, 14, 15, 0, 159, 160, 161, 162, 163, 0, ! 0, 0, 0, 164, 0, 154, 0, 0, 0, 165, ! 155, 156, 166, 157, 0, 0, 0, 167, 168, 169, ! 0, 0, 0, 170, 171, 0, 0, 0, 172, 0, ! 0, 158, 0, 15, 0, 159, 160, 161, 162, 163, ! 0, 0, 0, 0, 164, 0, 154, 173, 174, 0, ! 165, 155, 156, 166, 157, 0, 0, 0, 167, 168, ! 169, 0, 0, 0, 170, 171, 0, 0, 0, 172, ! 0, 0, 158, 0, 15, 0, 159, 160, 161, 162, ! 163, 0, 0, 0, 0, 164, 695, 154, 173, 174, ! 0, 165, 155, 156, 166, 157, 0, 0, 0, 167, ! 168, 169, 0, 0, 0, 170, 171, 0, 0, 0, ! 172, 0, 0, 158, 0, 15, 0, 159, 160, 161, ! 162, 163, 0, 0, 0, 0, 164, 0, 154, 173, ! 174, 0, 165, 155, 156, 166, 157, 0, 0, 0, ! 167, 168, 169, 0, 0, 0, 170, 171, 0, 0, ! 0, 247, 0, 0, 158, 0, 15, 0, 159, 160, ! 161, 162, 163, 0, 0, 0, 0, 164, 0, 464, ! 173, 174, 0, 165, 155, 156, 166, 157, 0, 0, ! 0, 167, 168, 169, 0, 0, 0, 170, 171, 0, ! 0, 0, 249, 0, 0, 158, 0, 15, 0, 159, ! 160, 161, 162, 163, 0, 0, 0, 0, 164, 0, ! 0, 173, 174, 0, 165, 0, 0, 166, 0, 0, ! 0, 755, 167, 168, 169, 0, 0, 0, 170, 171, ! 251, 252, 253, 172, 254, 255, 256, 257, 258, 259, ! 260, 261, 262, 263, 264, 265, 266, 267, 0, 0, ! 0, 0, 173, 174, 251, 252, 253, 756, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, ! 266, 267, 0, 0, 251, 252, 253, 826, 254, 255, ! 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, ! 266, 267, 251, 252, 253, 0, 254, 255, 256, 257, ! 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, ! 0, 0, 0, 0, 0, 0, 251, 252, 253, 433, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, ! 264, 265, 266, 267, 251, 252, 253, 434, 254, 255, ! 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, ! 266, 267, 0, 0, 0, 0, 0, 0, 14, 0, ! 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 251, 252, 253, 748, 254, 255, 256, 257, 258, ! 259, 260, 261, 262, 263, 264, 265, 266, 267, 5, ! 0, 7, 8, 5, 74, 7, 75, 9, 10, 11, 0, 9, 10, 11, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 13, 0, 14, 0, 13, 5, 110, ! 7, 111, 5, 83, 7, 84, 9, 10, 11, 0, ! 9, 10, 11, 0, 0, 5, 119, 7, 120, 0, ! 0, 0, 13, 9, 10, 11, 13, 5, 0, 7, ! 75, 0, 0, 0, 0, 9, 10, 11, 5, 13, ! 7, 84, 0, 0, 0, 0, 9, 10, 11, 0, ! 0, 13, 258, 259, 260, 261, 262, 263, 264, 265, ! 266, 267, 13, 251, 252, 253, 827, 254, 255, 256, ! 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, ! 267, 251, 252, 253, 0, 254, 255, 256, 257, 258, ! 259, 260, 261, 262, 263, 264, 265, 266, 267, 253, ! 0, 254, 255, 256, 257, 258, 259, 260, 261, 262, ! 263, 264, 265, 266, 267, 255, 256, 257, 258, 259, ! 260, 261, 262, 263, 264, 265, 266, 267 }; ! static const short yycheck[] = { 60, ! 294, 62, 2, 3, 2, 3, 142, 141, 2, 3, ! 221, 9, 10, 11, 314, 288, 217, 316, 272, 541, ! 320, 2, 3, 466, 22, 548, 24, 554, 26, 312, ! 28, 564, 30, 398, 32, 304, 34, 541, 36, 2, ! 3, 9, 2, 3, 541, 2, 3, 412, 2, 3, ! 623, 2, 3, 53, 149, 53, 0, 2, 3, 53, ! 557, 398, 458, 597, 62, 227, 64, 398, 466, 1, ! 64, 398, 53, 3, 4, 412, 159, 160, 600, 541, ! 770, 412, 3, 4, 212, 412, 169, 172, 541, 3, ! 53, 0, 175, 53, 1, 557, 53, 46, 1, 53, ! 496, 64, 53, 186, 64, 38, 39, 64, 53, 46, ! 379, 855, 1, 509, 1, 83, 512, 30, 1, 623, ! 57, 58, 59, 10, 814, 27, 623, 3, 4, 9, ! 89, 385, 1, 46, 83, 7, 73, 533, 30, 53, ! 884, 663, 46, 3, 4, 82, 84, 600, 48, 49, ! 50, 212, 237, 687, 91, 553, 554, 89, 30, 89, ! 65, 623, 247, 100, 249, 67, 68, 857, 89, 297, ! 703, 67, 109, 335, 172, 571, 866, 573, 85, 83, ! 3, 118, 85, 548, 67, 386, 455, 30, 68, 67, ! 127, 189, 557, 191, 467, 193, 85, 195, 58, 136, ! 46, 199, 89, 201, 731, 732, 379, 897, 3, 4, ! 44, 548, 273, 89, 212, 298, 85, 548, 752, 217, ! 557, 548, 21, 217, 67, 68, 557, 227, 379, 227, ! 557, 67, 66, 227, 68, 58, 297, 83, 811, 237, ! 301, 336, 67, 338, 67, 68, 227, 668, 7, 247, ! 89, 249, 67, 68, 217, 3, 4, 217, 67, 68, ! 217, 682, 785, 58, 227, 165, 349, 227, 83, 206, ! 227, 30, 67, 227, 83, 718, 227, 89, 451, 452, ! 453, 454, 227, 83, 727, 7, 84, 187, 88, 543, ! 88, 574, 503, 576, 27, 356, 67, 30, 46, 297, ! 451, 452, 453, 454, 67, 701, 211, 811, 30, 214, ! 58, 44, 67, 218, 811, 5, 6, 7, 3, 67, ! 718, 404, 12, 13, 14, 669, 324, 671, 326, 727, ! 328, 231, 330, 731, 732, 335, 83, 335, 3, 400, ! 30, 335, 403, 142, 740, 58, 59, 60, 433, 811, ! 435, 84, 874, 875, 335, 88, 1, 88, 30, 4, ! 5, 6, 7, 9, 3, 10, 83, 12, 13, 14, ! 270, 271, 335, 58, 46, 335, 84, 83, 335, 7, ! 88, 335, 67, 28, 335, 3, 4, 84, 386, 67, ! 335, 88, 386, 58, 84, 67, 68, 84, 398, 332, ! 333, 88, 67, 68, 398, 204, 205, 46, 83, 83, ! 315, 316, 412, 88, 88, 7, 321, 398, 412, 58, ! 785, 84, 721, 386, 723, 88, 386, 628, 67, 386, ! 566, 412, 337, 85, 83, 433, 637, 435, 398, 88, ! 58, 575, 85, 343, 89, 83, 719, 58, 785, 67, ! 68, 83, 412, 83, 785, 728, 67, 68, 785, 67, ! 68, 1, 84, 85, 4, 5, 6, 7, 864, 865, ! 84, 83, 12, 13, 14, 83, 88, 475, 378, 477, ! 541, 479, 387, 481, 384, 3, 4, 83, 28, 1, ! 6, 7, 4, 292, 6, 7, 12, 13, 14, 84, ! 12, 13, 14, 88, 84, 805, 83, 807, 88, 46, ! 309, 310, 4, 5, 6, 7, 28, 32, 30, 31, ! 12, 13, 14, 67, 22, 23, 24, 25, 451, 452, ! 430, 454, 30, 31, 32, 33, 28, 9, 30, 600, ! 623, 541, 1, 541, 3, 4, 607, 541, 548, 89, ! 483, 484, 84, 764, 548, 90, 88, 557, 84, 557, ! 541, 84, 88, 557, 469, 498, 499, 548, 704, 703, ! 67, 68, 84, 85, 27, 44, 557, 30, 541, 67, ! 68, 541, 84, 85, 541, 84, 880, 541, 548, 44, ! 541, 44, 84, 88, 557, 88, 541, 557, 892, 83, ! 557, 67, 68, 557, 67, 68, 557, 83, 513, 514, ! 6, 7, 517, 46, 67, 68, 12, 13, 14, 67, ! 68, 179, 180, 623, 44, 623, 526, 309, 310, 623, ! 628, 84, 718, 719, 628, 88, 697, 83, 636, 637, ! 90, 541, 623, 637, 83, 643, 90, 645, 90, 647, ! 85, 649, 89, 651, 85, 653, 85, 655, 792, 657, ! 623, 46, 1, 623, 85, 628, 623, 83, 628, 623, ! 83, 628, 623, 83, 637, 90, 581, 637, 623, 90, ! 637, 84, 615, 616, 84, 27, 222, 587, 85, 88, ! 88, 189, 190, 191, 192, 6, 7, 83, 3, 760, ! 600, 12, 13, 14, 22, 23, 24, 25, 608, 83, ! 83, 772, 30, 31, 32, 33, 46, 778, 15, 30, ! 17, 18, 19, 20, 629, 630, 659, 660, 633, 46, ! 85, 88, 46, 638, 639, 84, 641, 6, 7, 46, ! 84, 7, 85, 12, 13, 14, 84, 808, 809, 84, ! 811, 84, 288, 1, 553, 554, 4, 5, 6, 7, ! 89, 30, 10, 84, 12, 13, 14, 566, 67, 674, ! 16, 67, 677, 26, 27, 28, 29, 85, 577, 85, ! 28, 34, 35, 36, 37, 785, 84, 46, 67, 726, ! 67, 785, 67, 17, 855, 83, 83, 83, 859, 26, ! 27, 28, 29, 84, 785, 83, 67, 34, 35, 36, ! 37, 811, 84, 811, 84, 88, 721, 811, 723, 90, ! 379, 84, 84, 884, 885, 785, 324, 325, 326, 327, ! 811, 83, 9, 67, 84, 83, 741, 5, 6, 7, ! 745, 83, 83, 0, 12, 13, 14, 84, 811, 408, ! 0, 811, 385, 305, 811, 557, 392, 811, 557, 557, ! 811, 557, 30, 422, 423, 412, 811, 412, 5, 6, ! 7, 189, 190, 191, 192, 12, 13, 14, 414, 415, ! 292, 786, 787, 384, 789, 416, 572, 596, 685, 794, ! 731, 796, 451, 452, 453, 454, 1, 718, 803, 4, ! 5, 6, 7, 432, 672, 704, 675, 12, 13, 14, ! 3, 4, 5, 6, 7, 343, 84, 335, 815, 718, ! 719, 430, 27, 28, 380, 30, 619, 817, 727, 728, ! 466, 467, 731, 732, 56, 57, 58, 59, 60, 44, ! 193, 194, 195, 196, 861, 504, 846, 506, 4, 5, ! 6, 7, 863, -1, 10, 469, 12, 13, 14, 484, ! -1, -1, 67, 68, -1, -1, 193, 194, 195, 196, ! -1, -1, 28, -1, 30, -1, -1, 475, 476, 84, ! -1, 479, 480, 88, 89, -1, 1, -1, 3, 4, ! 5, 6, 7, 5, 6, 7, -1, 12, 13, 14, ! 12, 13, 14, 235, 236, -1, 324, 325, 326, 327, ! -1, -1, 27, 28, 246, 30, 31, 553, 554, 251, ! 252, -1, -1, -1, 256, 257, 258, 259, 260, 261, ! 262, 263, 264, 265, 266, 267, 54, 55, 56, 57, ! 58, 59, 60, 58, -1, 1, -1, -1, 4, 5, ! 6, 7, 67, 612, -1, -1, 12, 13, 14, 5, ! 6, 7, -1, -1, -1, -1, 12, 13, 14, 84, ! -1, 27, 28, -1, 30, 328, 329, 330, 331, -1, ! 1, -1, -1, 4, 5, 6, 7, -1, 44, -1, ! -1, 12, 13, 14, -1, 631, 632, -1, -1, -1, ! -1, 328, 329, 330, 331, -1, 27, 28, -1, 30, ! -1, 67, 68, 672, 62, 63, 675, 65, 66, 67, ! 68, -1, -1, 44, -1, -1, 358, 359, 84, -1, ! -1, -1, 88, 89, -1, -1, -1, -1, 84, -1, ! -1, 4, 5, 6, 7, 643, 644, 645, 646, 12, ! 13, 14, -1, 651, 652, 653, 654, 475, 476, -1, ! -1, 479, 480, 84, -1, 28, -1, 88, 89, 4, ! 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, ! -1, -1, 718, 719, -1, -1, -1, -1, -1, -1, ! -1, 727, 728, 28, -1, 731, 732, 429, 5, 6, ! 7, -1, 434, -1, -1, 12, 13, 14, -1, 441, ! 5, 6, 7, -1, -1, -1, 775, 12, 13, 14, ! -1, 84, -1, 30, 477, 478, -1, -1, 481, 482, ! 1, -1, 3, 4, 5, 6, 7, 10, -1, 10, ! -1, 12, 13, 14, 780, 781, 782, -1, -1, 84, ! 477, 478, -1, -1, 481, 482, -1, 28, 817, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, 500, -1, ! 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, -1, 84, ! 522, -1, 851, 852, -1, -1, -1, -1, 4, 5, ! 6, 7, 5, 6, 7, -1, 12, 13, 14, 12, ! 13, 14, 83, 1, -1, 3, -1, 90, -1, -1, ! 8, 9, 28, 11, 30, 643, 644, 645, 646, 4, ! 5, 6, 7, 651, 652, 653, 654, 12, 13, 14, ! 572, 29, -1, 31, -1, 33, 34, 35, 36, 37, ! -1, 583, -1, 28, 42, 30, 588, -1, -1, -1, ! 48, -1, -1, 51, -1, 597, 598, -1, 56, 57, ! 58, 603, -1, -1, 62, 63, -1, -1, 84, 67, ! -1, 84, 4, 5, 6, 7, -1, -1, -1, -1, ! 12, 13, 14, -1, 647, 648, 649, 650, 86, 87, ! -1, 89, 655, 656, 657, 658, 28, -1, 30, 84, ! -1, -1, -1, 1, -1, -1, 4, -1, 6, 7, ! 647, 648, 649, 650, 12, 13, 14, -1, 655, 656, ! 657, 658, -1, -1, -1, -1, 668, -1, -1, -1, ! 28, 673, 30, 31, 676, -1, -1, -1, -1, -1, ! 682, -1, -1, 685, -1, 687, 4, 5, 6, 7, ! -1, -1, 84, -1, 12, 13, 14, -1, -1, -1, ! -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, ! 28, 11, 12, 13, 14, 15, -1, 17, 18, 19, ! 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, ! 742, -1, 42, -1, 746, -1, -1, 749, 48, -1, ! 752, 51, -1, 755, -1, -1, 56, 57, 58, -1, ! -1, -1, 62, 63, -1, -1, 84, 67, -1, -1, ! 5, 6, 7, 4, 5, 6, 7, 12, 13, 14, ! -1, 12, 13, 14, 84, 85, 86, 87, 1, 89, ! 3, 4, 5, 6, 7, 8, 9, 28, 11, 12, ! 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, ! 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, ! 33, 34, 35, 36, 37, 5, 6, 7, -1, 42, ! -1, -1, 12, 13, 14, 48, -1, -1, 51, 5, ! 6, 7, -1, 56, 57, 58, 12, 13, 14, 62, ! 63, -1, -1, 84, 67, -1, -1, -1, -1, 5, ! 6, 7, -1, -1, 30, -1, 12, 13, 14, -1, ! -1, 84, -1, 86, 87, 1, 89, 3, 4, -1, ! -1, -1, 8, 9, 30, 11, -1, -1, -1, 15, ! -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, -1, 29, 84, 31, -1, 33, 34, 35, ! 36, 37, 5, 6, 7, -1, 42, -1, 84, 12, ! 13, 14, 48, -1, -1, 51, -1, -1, -1, -1, ! 56, 57, 58, -1, -1, -1, 62, 63, 84, -1, ! -1, 67, 4, 5, 6, 7, 5, 6, 7, -1, ! 12, 13, 14, 12, 13, 14, -1, -1, 84, -1, ! 86, 87, 1, 89, 3, 4, 28, -1, 30, 8, ! 9, 30, 11, -1, -1, -1, 15, -1, 17, 18, ! 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, -1, 42, -1, -1, 5, 6, 7, 48, ! -1, -1, 51, 12, 13, 14, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, -1, 1, 67, 3, ! 4, 30, 6, 7, 8, 9, -1, 11, 12, 13, ! 14, -1, -1, -1, -1, 84, -1, 86, 87, -1, ! 89, -1, -1, -1, 28, 29, 30, 31, -1, 33, ! 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, ! -1, 5, 6, 7, 48, -1, -1, 51, 12, 13, ! 14, -1, 56, 57, 58, -1, -1, -1, 62, 63, ! -1, -1, 1, 67, 3, 4, 30, -1, -1, 8, ! 9, -1, 11, -1, -1, -1, -1, -1, 4, 5, ! 6, 7, 86, 87, -1, 89, 12, 13, 14, -1, ! 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, 28, 42, 30, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, 66, 67, 68, ! 1, -1, 3, 4, -1, -1, -1, 8, 9, -1, 11, -1, -1, -1, -1, -1, 85, 86, 87, -1, 89, -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, ! -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, 66, 67, 68, 1, -1, 3, -1, -1, -1, -1, 8, 9, -1, 11, -1, ! -1, -1, -1, -1, 85, 86, 87, -1, 89, -1, ! -1, -1, -1, -1, -1, -1, 29, -1, 31, -1, ! 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, ! -1, 44, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, ! 63, -1, -1, 66, 67, 68, 1, -1, 3, -1, ! -1, -1, -1, 8, 9, -1, 11, -1, -1, 4, ! 5, 6, 7, 86, 87, -1, 89, 12, 13, 14, ! -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, ! 35, 36, 37, 28, -1, 30, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 3, 4, 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, -1, -1, 4, 5, 6, 7, 86, 87, -1, 89, 12, 13, 14, 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, ! -1, 28, 42, 30, 3, -1, 5, -1, 48, 8, ! 9, 51, 11, -1, -1, -1, 56, 57, 58, -1, ! -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, ! 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, -1, 42, -1, -1, 86, 87, -1, 48, ! 90, -1, 51, -1, -1, -1, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, 3, -1, 67, -1, ! -1, 8, 9, -1, 11, 49, 50, 51, 52, 53, ! 54, 55, 56, 57, 58, 59, 60, 86, 87, -1, ! -1, 90, 29, -1, 31, -1, 33, 34, 35, 36, ! 37, -1, -1, -1, -1, 42, -1, 3, -1, -1, ! -1, 48, 8, 9, 51, 11, -1, -1, -1, 56, ! 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, ! 67, -1, -1, 29, -1, 31, -1, 33, 34, 35, ! 36, 37, -1, -1, -1, -1, 42, -1, -1, 86, ! 87, -1, 48, 90, -1, 51, -1, -1, -1, -1, ! 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, ! -1, 67, -1, -1, -1, -1, -1, 3, 4, 5, ! 6, 7, 8, 9, -1, 11, 12, 13, 14, -1, ! 86, 87, -1, -1, 90, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, 30, 31, -1, 33, 34, 35, ! 36, 37, -1, -1, -1, -1, 42, -1, 4, -1, ! 6, 7, 48, -1, -1, 51, 12, 13, 14, -1, ! 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, ! -1, 67, 28, -1, 30, -1, 3, 4, -1, -1, ! -1, 8, 9, -1, 11, -1, -1, -1, 84, -1, ! 86, 87, -1, 89, 21, 22, 23, 24, 25, 26, ! 27, -1, 29, -1, 31, -1, 33, 34, 35, 36, ! 37, -1, -1, -1, -1, 42, -1, 4, 5, 6, ! 7, 48, -1, -1, 51, 12, 13, 14, -1, 56, ! 57, 58, -1, -1, -1, 62, 63, 3, -1, -1, ! 67, 28, 8, 9, -1, 11, 50, 51, 52, 53, ! 54, 55, 56, 57, 58, 59, 60, 84, -1, 86, ! 87, -1, 89, 29, -1, 31, -1, 33, 34, 35, ! 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, ! -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, ! 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, ! -1, 67, 3, 4, 5, 6, 7, 8, 9, -1, ! 11, 12, 13, 14, -1, -1, 4, -1, 6, 7, ! 86, 87, -1, 89, 12, 13, 14, 28, 29, 30, ! 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, ! 28, 42, 30, -1, -1, -1, -1, 48, -1, -1, ! 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, ! -1, 62, 63, -1, 3, 4, 67, 6, 7, 8, ! 9, -1, 11, 12, 13, 14, 53, 54, 55, 56, ! 57, 58, 59, 60, -1, 86, 87, -1, -1, 28, ! 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, -1, 42, -1, 3, -1, -1, -1, 48, ! 8, 9, 51, 11, -1, -1, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, ! -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, ! -1, -1, -1, -1, 42, -1, 3, 86, 87, -1, 48, 8, 9, 51, 11, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, ! 37, -1, -1, -1, -1, 42, 84, 3, 86, 87, -1, 48, 8, 9, 51, 11, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, 35, ! 36, 37, -1, -1, -1, -1, 42, -1, 3, 86, 87, -1, 48, 8, 9, 51, 11, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, *************** static const short yycheck[] = { 59, *** 1555,1599 **** -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, ! 3, 86, 87, -1, 48, 8, 9, 51, 11, -1, ! -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, ! -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, ! 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, ! -1, -1, 86, 87, -1, 48, -1, -1, 51, -1, ! -1, -1, 10, 56, 57, 58, -1, -1, -1, 62, ! 63, 43, 44, 45, 67, 47, 48, 49, 50, 51, ! 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, ! -1, -1, -1, 86, 87, 43, 44, 45, 46, 47, ! 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, ! 58, 59, 60, -1, -1, 43, 44, 45, 90, 47, ! 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, ! 58, 59, 60, 43, 44, 45, -1, 47, 48, 49, ! 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, ! 60, -1, -1, -1, -1, -1, -1, 43, 44, 45, ! 88, 47, 48, 49, 50, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60, 43, 44, 45, 88, 47, ! 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, ! 58, 59, 60, -1, -1, -1, -1, -1, -1, 30, ! -1, -1, 88, 53, 54, 55, 56, 57, 58, 59, ! 60, -1, 43, 44, 45, 83, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ! 4, 5, 6, 7, 4, -1, 6, 7, 12, 13, ! 14, -1, 12, 13, 14, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 28, -1, 30, -1, 28, 4, ! 30, 6, 7, 4, 5, 6, 7, 12, 13, 14, -1, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, 28, 4, 5, 6, 7, 4, 5, 6, 7, 12, 13, 14, -1, 12, 13, 14, -1, -1, 4, 5, 6, 7, -1, ! -1, -1, 28, 12, 13, 14, 28, 51, 52, 53, ! 54, 55, 56, 57, 58, 59, 60, -1, -1, 28, ! 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, 43, 44, ! 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, ! 55, 56, 57, 58, 59, 60, 45, -1, 47, 48, ! 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, ! 59, 60, 48, 49, 50, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" --- 1559,1598 ---- -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, ! -1, 86, 87, -1, 48, -1, -1, 51, -1, -1, ! -1, 10, 56, 57, 58, -1, -1, -1, 62, 63, ! 43, 44, 45, 67, 47, 48, 49, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, ! -1, -1, 86, 87, 43, 44, 45, 46, 47, 48, ! 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, ! 59, 60, -1, -1, 43, 44, 45, 90, 47, 48, ! 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, ! 59, 60, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ! -1, -1, -1, -1, -1, -1, 43, 44, 45, 88, ! 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ! 57, 58, 59, 60, 43, 44, 45, 88, 47, 48, ! 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, ! 59, 60, -1, -1, -1, -1, -1, -1, 30, -1, ! -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 43, 44, 45, 83, 47, 48, 49, 50, 51, ! 52, 53, 54, 55, 56, 57, 58, 59, 60, 4, ! -1, 6, 7, 4, 5, 6, 7, 12, 13, 14, -1, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, 28, 4, 5, 6, 7, 4, 5, 6, 7, 12, 13, 14, -1, 12, 13, 14, -1, -1, 4, 5, 6, 7, -1, ! -1, -1, 28, 12, 13, 14, 28, 4, -1, 6, ! 7, -1, -1, -1, -1, 12, 13, 14, 4, 28, ! 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, ! -1, 28, 51, 52, 53, 54, 55, 56, 57, 58, ! 59, 60, 28, 43, 44, 45, 46, 47, 48, 49, ! 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, ! 60, 43, 44, 45, -1, 47, 48, 49, 50, 51, ! 52, 53, 54, 55, 56, 57, 58, 59, 60, 45, ! -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60, 48, 49, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" *************** case 56: *** 2374,2468 **** #line 488 "c-parse.y" { skip_evaluation++; ; break;} ! case 58: ! #line 494 "c-parse.y" ! { yyval.ttype = c_cast_expr (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 60: ! #line 500 "c-parse.y" ! { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 61: ! #line 502 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 62: ! #line 504 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 63: ! #line 506 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 64: ! #line 508 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 65: ! #line 510 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 66: ! #line 512 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 67: ! #line 514 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 68: ! #line 516 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 69: ! #line 518 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 70: ! #line 520 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 71: ! #line 522 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 72: ! #line 524 "c-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; break;} ! case 73: ! #line 527 "c-parse.y" { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 74: ! #line 530 "c-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; break;} ! case 75: ! #line 533 "c-parse.y" { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 76: ! #line 536 "c-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; break;} ! case 77: ! #line 539 "c-parse.y" { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) - (yyvsp[-4].ttype == boolean_false_node)); ; break;} ! case 78: ! #line 542 "c-parse.y" { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 79: ! #line 545 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids omitting the middle term of a ?: expression"); /* Make sure first operand is calculated only once. */ --- 2373,2471 ---- #line 488 "c-parse.y" { skip_evaluation++; ; break;} ! case 57: ! #line 492 "c-parse.y" ! { skip_evaluation++; ; break;} ! case 59: ! #line 498 "c-parse.y" ! { yyval.ttype = c_cast_expr (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 61: ! #line 504 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 62: ! #line 506 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 63: ! #line 508 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 64: ! #line 510 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 65: ! #line 512 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 66: ! #line 514 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 67: ! #line 516 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 68: ! #line 518 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 69: ! #line 520 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 70: ! #line 522 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 71: ! #line 524 "c-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 72: ! #line 526 "c-parse.y" ! { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! break;} ! case 73: ! #line 528 "c-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; break;} ! case 74: ! #line 531 "c-parse.y" { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 75: ! #line 534 "c-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; break;} ! case 76: ! #line 537 "c-parse.y" { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 77: ! #line 540 "c-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; break;} ! case 78: ! #line 543 "c-parse.y" { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) - (yyvsp[-4].ttype == boolean_false_node)); ; break;} ! case 79: ! #line 546 "c-parse.y" { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 80: ! #line 549 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids omitting the middle term of a ?: expression"); /* Make sure first operand is calculated only once. */ *************** case 79: *** 2470,2482 **** yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; break;} ! case 80: ! #line 552 "c-parse.y" { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 81: ! #line 555 "c-parse.y" { char class; yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); --- 2473,2485 ---- yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; break;} ! case 81: ! #line 556 "c-parse.y" { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 82: ! #line 559 "c-parse.y" { char class; yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); *************** case 81: *** 2484,2491 **** C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} ! case 82: ! #line 562 "c-parse.y" { char class; yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); /* This inhibits warnings in truthvalue_conversion. */ --- 2487,2494 ---- C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} ! case 83: ! #line 566 "c-parse.y" { char class; yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); /* This inhibits warnings in truthvalue_conversion. */ *************** case 82: *** 2494,2523 **** C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} ! case 83: ! #line 573 "c-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.ttype = build_external_ref (yyvsp[0].ttype, yychar == '('); ; break;} ! case 85: ! #line 580 "c-parse.y" { yyval.ttype = combine_strings (yyvsp[0].ttype); ; break;} ! case 86: ! #line 582 "c-parse.y" { yyval.ttype = fname_decl (C_RID_CODE (yyval.ttype), yyval.ttype); ; break;} ! case 87: ! #line 584 "c-parse.y" { start_init (NULL_TREE, NULL, 0); yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); really_start_incremental_init (yyvsp[-2].ttype); ; break;} ! case 88: ! #line 588 "c-parse.y" { tree constructor = pop_init_level (0); tree type = yyvsp[-5].ttype; finish_init (); --- 2497,2526 ---- C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} ! case 84: ! #line 577 "c-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.ttype = build_external_ref (yyvsp[0].ttype, yychar == '('); ; break;} ! case 86: ! #line 584 "c-parse.y" { yyval.ttype = combine_strings (yyvsp[0].ttype); ; break;} ! case 87: ! #line 586 "c-parse.y" { yyval.ttype = fname_decl (C_RID_CODE (yyval.ttype), yyval.ttype); ; break;} ! case 88: ! #line 588 "c-parse.y" { start_init (NULL_TREE, NULL, 0); yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); really_start_incremental_init (yyvsp[-2].ttype); ; break;} ! case 89: ! #line 592 "c-parse.y" { tree constructor = pop_init_level (0); tree type = yyvsp[-5].ttype; finish_init (); *************** case 88: *** 2527,2545 **** yyval.ttype = build_compound_literal (type, constructor); ; break;} ! case 89: ! #line 597 "c-parse.y" { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); if (IS_EXPR_CODE_CLASS (class)) C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 90: ! #line 602 "c-parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 91: ! #line 604 "c-parse.y" { tree saved_last_tree; if (pedantic) --- 2530,2548 ---- yyval.ttype = build_compound_literal (type, constructor); ; break;} ! case 90: ! #line 601 "c-parse.y" { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); if (IS_EXPR_CODE_CLASS (class)) C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 91: ! #line 606 "c-parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 92: ! #line 608 "c-parse.y" { tree saved_last_tree; if (pedantic) *************** case 91: *** 2556,2563 **** TREE_SIDE_EFFECTS (yyval.ttype) = 1; ; break;} ! case 92: ! #line 620 "c-parse.y" { pop_label_level (); last_tree = COMPOUND_BODY (yyvsp[-2].ttype); --- 2559,2566 ---- TREE_SIDE_EFFECTS (yyval.ttype) = 1; ; break;} ! case 93: ! #line 624 "c-parse.y" { pop_label_level (); last_tree = COMPOUND_BODY (yyvsp[-2].ttype); *************** case 92: *** 2565,2580 **** yyval.ttype = error_mark_node; ; break;} ! case 93: ! #line 627 "c-parse.y" { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 94: ! #line 629 "c-parse.y" { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ; break;} ! case 95: ! #line 632 "c-parse.y" { tree c; --- 2568,2583 ---- yyval.ttype = error_mark_node; ; break;} ! case 94: ! #line 631 "c-parse.y" { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 95: ! #line 633 "c-parse.y" { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ; break;} ! case 96: ! #line 636 "c-parse.y" { tree c; *************** case 95: *** 2585,2592 **** yyval.ttype = integer_zerop (c) ? yyvsp[-1].ttype : yyvsp[-3].ttype; ; break;} ! case 96: ! #line 642 "c-parse.y" { tree e1, e2; --- 2588,2595 ---- yyval.ttype = integer_zerop (c) ? yyvsp[-1].ttype : yyvsp[-3].ttype; ; break;} ! case 97: ! #line 646 "c-parse.y" { tree e1, e2; *************** case 96: *** 2597,2630 **** ? build_int_2 (1, 0) : build_int_2 (0, 0); ; break;} ! case 97: ! #line 652 "c-parse.y" { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 98: ! #line 654 "c-parse.y" { yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 99: ! #line 658 "c-parse.y" { tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); yyval.ttype = build_component_ref (expr, yyvsp[0].ttype); ; break;} ! case 100: ! #line 664 "c-parse.y" { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; break;} ! case 101: ! #line 666 "c-parse.y" { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; break;} ! case 103: ! #line 673 "c-parse.y" { static int last_lineno = 0; static const char *last_input_filename = 0; --- 2600,2633 ---- ? build_int_2 (1, 0) : build_int_2 (0, 0); ; break;} ! case 98: ! #line 656 "c-parse.y" { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 99: ! #line 658 "c-parse.y" { yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 100: ! #line 662 "c-parse.y" { tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); yyval.ttype = build_component_ref (expr, yyvsp[0].ttype); ; break;} ! case 101: ! #line 668 "c-parse.y" { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; break;} ! case 102: ! #line 670 "c-parse.y" { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; break;} ! case 104: ! #line 677 "c-parse.y" { static int last_lineno = 0; static const char *last_input_filename = 0; *************** case 103: *** 2639,3010 **** } ; break;} ! case 106: ! #line 694 "c-parse.y" { c_mark_varargs (); if (pedantic) pedwarn ("ISO C does not permit use of `varargs.h'"); ; break;} ! case 107: ! #line 704 "c-parse.y" { ; break;} - case 112: - #line 720 "c-parse.y" - { POP_DECLSPEC_STACK; ; - break;} case 113: ! #line 722 "c-parse.y" { POP_DECLSPEC_STACK; ; break;} case 114: ! #line 724 "c-parse.y" { shadow_tag_warned (yyvsp[-1].ttype, 1); pedwarn ("empty declaration"); ; break;} ! case 115: ! #line 727 "c-parse.y" { pedwarn ("empty declaration"); ; break;} ! case 116: ! #line 736 "c-parse.y" { ; break;} ! case 117: ! #line 744 "c-parse.y" { pending_xref_error (); PUSH_DECLSPEC_STACK; split_specs_attrs (yyvsp[0].ttype, ¤t_declspecs, &prefix_attributes); all_prefix_attributes = prefix_attributes; ; break;} - case 118: - #line 755 "c-parse.y" - { all_prefix_attributes = chainon (yyvsp[0].ttype, prefix_attributes); ; - break;} case 119: ! #line 760 "c-parse.y" ! { POP_DECLSPEC_STACK; ; break;} case 120: ! #line 762 "c-parse.y" { POP_DECLSPEC_STACK; ; break;} case 121: ! #line 764 "c-parse.y" { POP_DECLSPEC_STACK; ; break;} case 122: ! #line 766 "c-parse.y" { POP_DECLSPEC_STACK; ; break;} case 123: ! #line 768 "c-parse.y" ! { shadow_tag (yyvsp[-1].ttype); ; break;} case 124: ! #line 770 "c-parse.y" ! { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; break;} case 125: ! #line 827 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 126: ! #line 830 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 127: ! #line 833 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 128: ! #line 839 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 129: ! #line 845 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 130: ! #line 848 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 131: ! #line 854 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); TREE_STATIC (yyval.ttype) = 0; ; break;} ! case 132: ! #line 857 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} - case 133: - #line 863 "c-parse.y" - { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); - TREE_STATIC (yyval.ttype) = 1; ; - break;} case 134: ! #line 866 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 135: ! #line 869 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 136: ! #line 872 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 137: ! #line 875 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 138: ! #line 878 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 139: ! #line 881 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 140: ! #line 887 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 1; ; break;} case 141: ! #line 890 "c-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 142: ! #line 893 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 143: ! #line 896 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 144: ! #line 899 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 145: ! #line 902 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 146: ! #line 908 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 147: ! #line 911 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 148: ! #line 914 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 149: ! #line 917 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 150: ! #line 920 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 151: ! #line 923 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 152: ! #line 929 "c-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; ! break;} ! case 153: ! #line 932 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 154: ! #line 935 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 155: ! #line 938 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 156: ! #line 941 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 157: ! #line 947 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 0; ; break;} ! case 158: ! #line 950 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 159: ! #line 953 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 160: ! #line 956 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 161: ! #line 962 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 162: ! #line 968 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 163: ! #line 974 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 164: ! #line 983 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 165: ! #line 989 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 166: ! #line 992 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 167: ! #line 995 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 168: ! #line 1001 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 169: ! #line 1007 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 170: ! #line 1013 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 171: ! #line 1022 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} - case 172: - #line 1028 "c-parse.y" - { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); - TREE_STATIC (yyval.ttype) = 1; ; - break;} case 173: ! #line 1031 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 174: ! #line 1034 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 175: ! #line 1037 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 176: ! #line 1040 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 177: ! #line 1043 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 178: ! #line 1046 "c-parse.y" ! { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) ! warning ("`%s' is not at beginning of declaration", ! IDENTIFIER_POINTER (yyvsp[0].ttype)); ! yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 179: ! #line 1052 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 2642,3005 ---- } ; break;} ! case 107: ! #line 698 "c-parse.y" { c_mark_varargs (); if (pedantic) pedwarn ("ISO C does not permit use of `varargs.h'"); ; break;} ! case 108: ! #line 708 "c-parse.y" { ; break;} case 113: ! #line 724 "c-parse.y" { POP_DECLSPEC_STACK; ; break;} case 114: ! #line 726 "c-parse.y" ! { POP_DECLSPEC_STACK; ; ! break;} ! case 115: ! #line 728 "c-parse.y" { shadow_tag_warned (yyvsp[-1].ttype, 1); pedwarn ("empty declaration"); ; break;} ! case 116: ! #line 731 "c-parse.y" { pedwarn ("empty declaration"); ; break;} ! case 117: ! #line 740 "c-parse.y" { ; break;} ! case 118: ! #line 748 "c-parse.y" { pending_xref_error (); PUSH_DECLSPEC_STACK; split_specs_attrs (yyvsp[0].ttype, ¤t_declspecs, &prefix_attributes); all_prefix_attributes = prefix_attributes; ; break;} case 119: ! #line 759 "c-parse.y" ! { all_prefix_attributes = chainon (yyvsp[0].ttype, prefix_attributes); ; break;} case 120: ! #line 764 "c-parse.y" { POP_DECLSPEC_STACK; ; break;} case 121: ! #line 766 "c-parse.y" { POP_DECLSPEC_STACK; ; break;} case 122: ! #line 768 "c-parse.y" { POP_DECLSPEC_STACK; ; break;} case 123: ! #line 770 "c-parse.y" ! { POP_DECLSPEC_STACK; ; break;} case 124: ! #line 772 "c-parse.y" ! { shadow_tag (yyvsp[-1].ttype); ; break;} case 125: ! #line 774 "c-parse.y" ! { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; break;} case 126: ! #line 831 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 1; ; break;} case 127: ! #line 834 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 128: ! #line 837 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; ! break;} ! case 129: ! #line 843 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 130: ! #line 849 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 131: ! #line 852 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 132: ! #line 858 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); TREE_STATIC (yyval.ttype) = 0; ; break;} ! case 133: ! #line 861 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 134: ! #line 867 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 1; ; break;} case 135: ! #line 870 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 136: ! #line 873 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 137: ! #line 876 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 138: ! #line 879 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 139: ! #line 882 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 140: ! #line 885 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 141: ! #line 891 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 142: ! #line 894 "c-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 143: ! #line 897 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 144: ! #line 900 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 145: ! #line 903 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 146: ! #line 906 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 147: ! #line 912 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 148: ! #line 915 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 149: ! #line 918 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 150: ! #line 921 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 151: ! #line 924 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 152: ! #line 927 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} + case 153: + #line 933 "c-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); + TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; + break;} case 154: ! #line 936 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 155: ! #line 939 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 156: ! #line 942 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 157: ! #line 945 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; ! break;} ! case 158: ! #line 951 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 0; ; break;} ! case 159: ! #line 954 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 160: ! #line 957 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 161: ! #line 960 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 162: ! #line 966 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 163: ! #line 972 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 164: ! #line 978 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 165: ! #line 987 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 166: ! #line 993 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 167: ! #line 996 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 168: ! #line 999 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 169: ! #line 1005 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 170: ! #line 1011 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 171: ! #line 1017 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 172: ! #line 1026 "c-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 173: ! #line 1032 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 174: ! #line 1035 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 175: ! #line 1038 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 176: ! #line 1041 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 177: ! #line 1044 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 178: ! #line 1047 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 179: ! #line 1050 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 179: *** 3012,3018 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 180: ! #line 1058 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3007,3013 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 180: ! #line 1056 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 180: *** 3020,3026 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 181: ! #line 1064 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3015,3021 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 181: ! #line 1062 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 181: *** 3028,3097 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 182: ! #line 1073 "c-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 183: ! #line 1076 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 184: ! #line 1079 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 185: ! #line 1082 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 186: ! #line 1085 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 187: ! #line 1091 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 188: ! #line 1094 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 189: ! #line 1097 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 190: ! #line 1100 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 191: ! #line 1103 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 192: ! #line 1106 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 193: ! #line 1109 "c-parse.y" ! { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) ! warning ("`%s' is not at beginning of declaration", ! IDENTIFIER_POINTER (yyvsp[0].ttype)); ! yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 194: ! #line 1115 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3023,3092 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 182: ! #line 1068 "c-parse.y" ! { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) ! warning ("`%s' is not at beginning of declaration", ! IDENTIFIER_POINTER (yyvsp[0].ttype)); ! yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 183: ! #line 1077 "c-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 184: ! #line 1080 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 185: ! #line 1083 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 186: ! #line 1086 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 187: ! #line 1089 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 188: ! #line 1095 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 189: ! #line 1098 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 190: ! #line 1101 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 191: ! #line 1104 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 192: ! #line 1107 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 193: ! #line 1110 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 194: ! #line 1113 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 194: *** 3099,3105 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 195: ! #line 1121 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3094,3100 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 195: ! #line 1119 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 195: *** 3107,3113 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 196: ! #line 1127 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3102,3108 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 196: ! #line 1125 "c-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 196: *** 3115,3324 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 197: ! #line 1136 "c-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 198: ! #line 1139 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 199: ! #line 1142 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 200: ! #line 1145 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 201: ! #line 1148 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 258: ! #line 1236 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 259: ! #line 1238 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 263: ! #line 1273 "c-parse.y" { OBJC_NEED_RAW_IDENTIFIER (1); ; break;} ! case 266: ! #line 1283 "c-parse.y" { /* For a typedef name, record the meaning, not the name. In case of `foo foo, bar;'. */ yyval.ttype = lookup_name (yyvsp[0].ttype); ; break;} - case 267: - #line 1287 "c-parse.y" - { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; - break;} case 268: ! #line 1289 "c-parse.y" ! { yyval.ttype = groktypename (yyvsp[-1].ttype); ; break;} ! case 273: ! #line 1306 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 274: ! #line 1308 "c-parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 275: ! #line 1315 "c-parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, chainon (yyvsp[-1].ttype, all_prefix_attributes)); start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; break;} ! case 276: ! #line 1320 "c-parse.y" { finish_init (); finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 277: ! #line 1323 "c-parse.y" { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, chainon (yyvsp[0].ttype, all_prefix_attributes)); finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 278: ! #line 1331 "c-parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, chainon (yyvsp[-1].ttype, all_prefix_attributes)); start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; break;} ! case 279: ! #line 1336 "c-parse.y" { finish_init (); finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 280: ! #line 1339 "c-parse.y" { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, chainon (yyvsp[0].ttype, all_prefix_attributes)); finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} - case 281: - #line 1347 "c-parse.y" - { yyval.ttype = NULL_TREE; ; - break;} case 282: ! #line 1349 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 283: ! #line 1354 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 284: ! #line 1356 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 285: ! #line 1361 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype; ; break;} case 286: ! #line 1366 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 287: ! #line 1368 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 288: ! #line 1373 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 289: ! #line 1375 "c-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} case 290: ! #line 1377 "c-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} case 291: ! #line 1379 "c-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; break;} case 292: ! #line 1381 "c-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 298: ! #line 1399 "c-parse.y" { really_start_incremental_init (NULL_TREE); ; break;} ! case 299: ! #line 1401 "c-parse.y" { yyval.ttype = pop_init_level (0); ; break;} ! case 300: ! #line 1403 "c-parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 301: ! #line 1409 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids empty initializer braces"); ; break;} ! case 305: ! #line 1423 "c-parse.y" { if (pedantic && ! flag_isoc99) pedwarn ("ISO C89 forbids specifying subobject to initialize"); ; break;} ! case 306: ! #line 1426 "c-parse.y" { if (pedantic) pedwarn ("obsolete use of designated initializer without `='"); ; break;} ! case 307: ! #line 1429 "c-parse.y" { set_init_label (yyvsp[-1].ttype); if (pedantic) pedwarn ("obsolete use of designated initializer with `:'"); ; break;} ! case 310: ! #line 1438 "c-parse.y" ! { push_init_level (0); ; break;} case 311: ! #line 1440 "c-parse.y" ! { process_init_element (pop_init_level (0)); ; break;} case 312: ! #line 1442 "c-parse.y" ! { process_init_element (yyvsp[0].ttype); ; break;} ! case 316: ! #line 1453 "c-parse.y" ! { set_init_label (yyvsp[0].ttype); ; break;} case 317: #line 1458 "c-parse.y" { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); if (pedantic) pedwarn ("ISO C forbids specifying range of elements to initialize"); ; break;} - case 318: - #line 1462 "c-parse.y" - { set_init_index (yyvsp[-1].ttype, NULL_TREE); ; - break;} case 319: #line 1467 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids nested functions"); --- 3110,3331 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 197: ! #line 1131 "c-parse.y" ! { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) ! warning ("`%s' is not at beginning of declaration", ! IDENTIFIER_POINTER (yyvsp[0].ttype)); ! yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 198: ! #line 1140 "c-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 199: ! #line 1143 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 200: ! #line 1146 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 201: ! #line 1149 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 202: ! #line 1152 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 259: ! #line 1240 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; ! break;} ! case 260: ! #line 1242 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 264: ! #line 1277 "c-parse.y" { OBJC_NEED_RAW_IDENTIFIER (1); ; break;} ! case 267: ! #line 1287 "c-parse.y" { /* For a typedef name, record the meaning, not the name. In case of `foo foo, bar;'. */ yyval.ttype = lookup_name (yyvsp[0].ttype); ; break;} case 268: ! #line 1291 "c-parse.y" ! { skip_evaluation--; yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; break;} ! case 269: ! #line 1293 "c-parse.y" ! { skip_evaluation--; yyval.ttype = groktypename (yyvsp[-1].ttype); ; break;} case 274: ! #line 1310 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; ! break;} ! case 275: ! #line 1312 "c-parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 276: ! #line 1319 "c-parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, chainon (yyvsp[-1].ttype, all_prefix_attributes)); start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; break;} ! case 277: ! #line 1324 "c-parse.y" { finish_init (); finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 278: ! #line 1327 "c-parse.y" { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, chainon (yyvsp[0].ttype, all_prefix_attributes)); finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 279: ! #line 1335 "c-parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, chainon (yyvsp[-1].ttype, all_prefix_attributes)); start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; break;} ! case 280: ! #line 1340 "c-parse.y" { finish_init (); finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 281: ! #line 1343 "c-parse.y" { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, chainon (yyvsp[0].ttype, all_prefix_attributes)); finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} case 282: ! #line 1351 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 283: ! #line 1353 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 284: ! #line 1358 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 285: ! #line 1360 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 286: ! #line 1365 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype; ; break;} case 287: ! #line 1370 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 288: ! #line 1372 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 289: ! #line 1377 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 290: ! #line 1379 "c-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} case 291: ! #line 1381 "c-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} case 292: ! #line 1383 "c-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; ! break;} ! case 293: ! #line 1385 "c-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 299: ! #line 1403 "c-parse.y" { really_start_incremental_init (NULL_TREE); ; break;} ! case 300: ! #line 1405 "c-parse.y" { yyval.ttype = pop_init_level (0); ; break;} ! case 301: ! #line 1407 "c-parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 302: ! #line 1413 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids empty initializer braces"); ; break;} ! case 306: ! #line 1427 "c-parse.y" { if (pedantic && ! flag_isoc99) pedwarn ("ISO C89 forbids specifying subobject to initialize"); ; break;} ! case 307: ! #line 1430 "c-parse.y" { if (pedantic) pedwarn ("obsolete use of designated initializer without `='"); ; break;} ! case 308: ! #line 1433 "c-parse.y" { set_init_label (yyvsp[-1].ttype); if (pedantic) pedwarn ("obsolete use of designated initializer with `:'"); ; break;} ! case 309: ! #line 1437 "c-parse.y" ! {; break;} case 311: ! #line 1443 "c-parse.y" ! { push_init_level (0); ; break;} case 312: ! #line 1445 "c-parse.y" ! { process_init_element (pop_init_level (0)); ; break;} ! case 313: ! #line 1447 "c-parse.y" ! { process_init_element (yyvsp[0].ttype); ; break;} case 317: #line 1458 "c-parse.y" + { set_init_label (yyvsp[0].ttype); ; + break;} + case 318: + #line 1463 "c-parse.y" { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); if (pedantic) pedwarn ("ISO C forbids specifying range of elements to initialize"); ; break;} case 319: #line 1467 "c-parse.y" + { set_init_index (yyvsp[-1].ttype, NULL_TREE); ; + break;} + case 320: + #line 1472 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids nested functions"); *************** case 319: *** 3331,3342 **** } ; break;} ! case 320: ! #line 1479 "c-parse.y" { store_parm_decls (); ; break;} ! case 321: ! #line 1487 "c-parse.y" { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = yyvsp[-2].filename; DECL_SOURCE_LINE (decl) = yyvsp[-1].lineno; --- 3338,3349 ---- } ; break;} ! case 321: ! #line 1484 "c-parse.y" { store_parm_decls (); ; break;} ! case 322: ! #line 1492 "c-parse.y" { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = yyvsp[-2].filename; DECL_SOURCE_LINE (decl) = yyvsp[-1].lineno; *************** case 321: *** 3344,3351 **** pop_function_context (); add_decl_stmt (decl); ; break;} ! case 322: ! #line 1497 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids nested functions"); --- 3351,3358 ---- pop_function_context (); add_decl_stmt (decl); ; break;} ! case 323: ! #line 1502 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids nested functions"); *************** case 322: *** 3358,3369 **** } ; break;} ! case 323: ! #line 1509 "c-parse.y" { store_parm_decls (); ; break;} ! case 324: ! #line 1517 "c-parse.y" { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = yyvsp[-2].filename; DECL_SOURCE_LINE (decl) = yyvsp[-1].lineno; --- 3365,3376 ---- } ; break;} ! case 324: ! #line 1514 "c-parse.y" { store_parm_decls (); ; break;} ! case 325: ! #line 1522 "c-parse.y" { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = yyvsp[-2].filename; DECL_SOURCE_LINE (decl) = yyvsp[-1].lineno; *************** case 324: *** 3371,3558 **** pop_function_context (); add_decl_stmt (decl); ; break;} - case 327: - #line 1537 "c-parse.y" - { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; - break;} case 328: ! #line 1539 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 329: #line 1544 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} case 330: ! #line 1546 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 334: ! #line 1561 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 335: #line 1566 "c-parse.y" - { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; - break;} - case 337: - #line 1572 "c-parse.y" { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 338: #line 1577 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} case 339: ! #line 1579 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 340: ! #line 1581 "c-parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 341: ! #line 1583 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 342: ! #line 1591 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 343: #line 1596 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 344: ! #line 1598 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 345: ! #line 1600 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} ! case 347: ! #line 1606 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 348: ! #line 1608 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 349: #line 1613 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 350: ! #line 1615 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 351: #line 1620 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 352: ! #line 1622 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 353: ! #line 1633 "c-parse.y" { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); /* Start scope of tag before parsing components. */ ; break;} ! case 354: ! #line 1637 "c-parse.y" { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 355: ! #line 1639 "c-parse.y" { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); ; break;} ! case 356: ! #line 1643 "c-parse.y" { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; break;} ! case 357: ! #line 1645 "c-parse.y" { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 358: ! #line 1647 "c-parse.y" { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); ; break;} ! case 359: ! #line 1651 "c-parse.y" { yyval.ttype = start_enum (yyvsp[-1].ttype); ; break;} ! case 360: ! #line 1653 "c-parse.y" { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); ; break;} ! case 361: ! #line 1656 "c-parse.y" { yyval.ttype = start_enum (NULL_TREE); ; break;} ! case 362: ! #line 1658 "c-parse.y" { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 363: ! #line 1664 "c-parse.y" { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; break;} ! case 364: ! #line 1666 "c-parse.y" { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; break;} ! case 365: ! #line 1668 "c-parse.y" { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); /* In ISO C, enumerated types can be referred to only if already defined. */ if (pedantic && !COMPLETE_TYPE_P (yyval.ttype)) pedwarn ("ISO C forbids forward references to `enum' types"); ; break;} ! case 369: ! #line 1683 "c-parse.y" { if (pedantic && ! flag_isoc99) pedwarn ("comma at end of enumerator list"); ; break;} ! case 370: ! #line 1689 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 371: ! #line 1691 "c-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); pedwarn ("no semicolon at end of struct or union"); ; break;} ! case 372: ! #line 1696 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 373: ! #line 1698 "c-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 374: ! #line 1700 "c-parse.y" { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); ; break;} ! case 375: ! #line 1706 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 376: ! #line 1709 "c-parse.y" { /* Support for unnamed structs or unions as members of structs or unions (which is [a] useful and [b] supports --- 3378,3565 ---- pop_function_context (); add_decl_stmt (decl); ; break;} case 328: ! #line 1542 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 329: #line 1544 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 330: ! #line 1549 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} ! case 331: ! #line 1551 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 335: #line 1566 "c-parse.y" { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} + case 336: + #line 1571 "c-parse.y" + { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; + break;} case 338: #line 1577 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 339: ! #line 1582 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} case 340: ! #line 1584 "c-parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 341: ! #line 1586 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 342: ! #line 1588 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 343: #line 1596 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 344: ! #line 1601 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 345: ! #line 1603 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 346: ! #line 1605 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} case 348: ! #line 1611 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 349: #line 1613 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 350: ! #line 1618 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 351: #line 1620 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 352: ! #line 1625 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 353: ! #line 1627 "c-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; ! break;} ! case 354: ! #line 1638 "c-parse.y" { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); /* Start scope of tag before parsing components. */ ; break;} ! case 355: ! #line 1642 "c-parse.y" { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 356: ! #line 1644 "c-parse.y" { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); ; break;} ! case 357: ! #line 1648 "c-parse.y" { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; break;} ! case 358: ! #line 1650 "c-parse.y" { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 359: ! #line 1652 "c-parse.y" { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); ; break;} ! case 360: ! #line 1656 "c-parse.y" { yyval.ttype = start_enum (yyvsp[-1].ttype); ; break;} ! case 361: ! #line 1658 "c-parse.y" { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); ; break;} ! case 362: ! #line 1661 "c-parse.y" { yyval.ttype = start_enum (NULL_TREE); ; break;} ! case 363: ! #line 1663 "c-parse.y" { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 364: ! #line 1669 "c-parse.y" { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; break;} ! case 365: ! #line 1671 "c-parse.y" { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; break;} ! case 366: ! #line 1673 "c-parse.y" { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); /* In ISO C, enumerated types can be referred to only if already defined. */ if (pedantic && !COMPLETE_TYPE_P (yyval.ttype)) pedwarn ("ISO C forbids forward references to `enum' types"); ; break;} ! case 370: ! #line 1688 "c-parse.y" { if (pedantic && ! flag_isoc99) pedwarn ("comma at end of enumerator list"); ; break;} ! case 371: ! #line 1694 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 372: ! #line 1696 "c-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); pedwarn ("no semicolon at end of struct or union"); ; break;} ! case 373: ! #line 1701 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 374: ! #line 1703 "c-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 375: ! #line 1705 "c-parse.y" { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); ; break;} ! case 376: ! #line 1711 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 377: ! #line 1714 "c-parse.y" { /* Support for unnamed structs or unions as members of structs or unions (which is [a] useful and [b] supports *************** case 376: *** 3563,3775 **** yyval.ttype = grokfield(yyvsp[-1].filename, yyvsp[0].lineno, NULL, current_declspecs, NULL_TREE); POP_DECLSPEC_STACK; ; break;} ! case 377: ! #line 1719 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 378: ! #line 1722 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids member declarations with no members"); shadow_tag(yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} ! case 379: ! #line 1727 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 380: ! #line 1729 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; break;} ! case 382: ! #line 1736 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-3].ttype, yyvsp[0].ttype); ; ! break;} ! case 384: ! #line 1742 "c-parse.y" { yyval.ttype = chainon (yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} case 385: #line 1747 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 386: ! #line 1751 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 387: ! #line 1754 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 388: ! #line 1760 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 389: ! #line 1764 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 390: ! #line 1767 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 392: ! #line 1779 "c-parse.y" { if (yyvsp[-2].ttype == error_mark_node) yyval.ttype = yyvsp[-2].ttype; else yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; break;} - case 393: - #line 1784 "c-parse.y" - { yyval.ttype = error_mark_node; ; - break;} case 394: ! #line 1790 "c-parse.y" ! { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; break;} case 395: ! #line 1792 "c-parse.y" ! { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 396: #line 1797 "c-parse.y" ! { pending_xref_error (); ! yyval.ttype = yyvsp[0].ttype; ; break;} case 397: ! #line 1800 "c-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 398: #line 1805 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 400: ! #line 1811 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, NULL_TREE), all_prefix_attributes); ; break;} ! case 401: ! #line 1815 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[0].ttype), all_prefix_attributes); ; break;} ! case 402: ! #line 1819 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); ; break;} - case 406: - #line 1832 "c-parse.y" - { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} case 407: #line 1837 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 408: ! #line 1839 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 409: #line 1844 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 410: ! #line 1846 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 411: ! #line 1848 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 1); ; break;} case 412: ! #line 1850 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 413: ! #line 1852 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 414: ! #line 1859 "c-parse.y" ! { yyval.ttype = build_array_declarator (yyvsp[-1].ttype, NULL_TREE, 0, 0); ; break;} case 415: ! #line 1861 "c-parse.y" ! { yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, 0); ; break;} case 416: ! #line 1863 "c-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, NULL_TREE, 0, 0); ; break;} case 417: ! #line 1865 "c-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, yyvsp[-1].ttype, 0, 0); ; break;} case 418: ! #line 1867 "c-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, NULL_TREE, 0, 1); ; break;} case 419: ! #line 1869 "c-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, yyvsp[-2].ttype, 0, 1); ; break;} case 420: ! #line 1871 "c-parse.y" { if (C_RID_CODE (yyvsp[-2].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, NULL_TREE, 1, 0); ; break;} ! case 421: ! #line 1875 "c-parse.y" { if (C_RID_CODE (yyvsp[-3].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-2].ttype, 1, 0); ; break;} ! case 422: ! #line 1879 "c-parse.y" { if (C_RID_CODE (yyvsp[-2].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-3].ttype, 1, 0); ; break;} ! case 425: ! #line 1894 "c-parse.y" { pedwarn ("deprecated use of label at end of compound statement"); ; break;} ! case 433: ! #line 1911 "c-parse.y" { if (pedantic && !flag_isoc99) pedwarn ("ISO C89 forbids mixed declarations and code"); ; break;} ! case 448: ! #line 1941 "c-parse.y" { pushlevel (0); clear_last_expr (); add_scope_stmt (/*begin_p=*/1, /*partial_p=*/0); ; break;} - case 449: - #line 1948 "c-parse.y" - { yyval.ttype = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); ; - break;} case 450: #line 1953 "c-parse.y" { if (flag_isoc99) { yyval.ttype = c_begin_compound_stmt (); --- 3570,3782 ---- yyval.ttype = grokfield(yyvsp[-1].filename, yyvsp[0].lineno, NULL, current_declspecs, NULL_TREE); POP_DECLSPEC_STACK; ; break;} ! case 378: ! #line 1724 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 379: ! #line 1727 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids member declarations with no members"); shadow_tag(yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} ! case 380: ! #line 1732 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 381: ! #line 1734 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; break;} ! case 383: ! #line 1741 "c-parse.y" { yyval.ttype = chainon (yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} case 385: #line 1747 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 386: + #line 1752 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 387: ! #line 1756 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 388: ! #line 1759 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 389: ! #line 1765 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 390: ! #line 1769 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 391: ! #line 1772 "c-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 393: ! #line 1784 "c-parse.y" { if (yyvsp[-2].ttype == error_mark_node) yyval.ttype = yyvsp[-2].ttype; else yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; break;} case 394: ! #line 1789 "c-parse.y" ! { yyval.ttype = error_mark_node; ; break;} case 395: ! #line 1795 "c-parse.y" ! { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; break;} case 396: #line 1797 "c-parse.y" ! { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 397: ! #line 1802 "c-parse.y" ! { pending_xref_error (); ! yyval.ttype = yyvsp[0].ttype; ; break;} case 398: #line 1805 "c-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 399: + #line 1810 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 401: ! #line 1816 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, NULL_TREE), all_prefix_attributes); ; break;} ! case 402: ! #line 1820 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[0].ttype), all_prefix_attributes); ; break;} ! case 403: ! #line 1824 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); ; break;} case 407: #line 1837 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 408: ! #line 1842 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 409: #line 1844 "c-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 410: ! #line 1849 "c-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 411: ! #line 1851 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 412: ! #line 1853 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 1); ; break;} case 413: ! #line 1855 "c-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 414: ! #line 1857 "c-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 415: ! #line 1864 "c-parse.y" ! { yyval.ttype = build_array_declarator (yyvsp[-1].ttype, NULL_TREE, 0, 0); ; break;} case 416: ! #line 1866 "c-parse.y" ! { yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, 0); ; break;} case 417: ! #line 1868 "c-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, NULL_TREE, 0, 0); ; break;} case 418: ! #line 1870 "c-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, yyvsp[-1].ttype, 0, 0); ; break;} case 419: ! #line 1872 "c-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, NULL_TREE, 0, 1); ; break;} case 420: ! #line 1874 "c-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, yyvsp[-2].ttype, 0, 1); ; ! break;} ! case 421: ! #line 1876 "c-parse.y" { if (C_RID_CODE (yyvsp[-2].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, NULL_TREE, 1, 0); ; break;} ! case 422: ! #line 1880 "c-parse.y" { if (C_RID_CODE (yyvsp[-3].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-2].ttype, 1, 0); ; break;} ! case 423: ! #line 1884 "c-parse.y" { if (C_RID_CODE (yyvsp[-2].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-3].ttype, 1, 0); ; break;} ! case 426: ! #line 1899 "c-parse.y" { pedwarn ("deprecated use of label at end of compound statement"); ; break;} ! case 434: ! #line 1916 "c-parse.y" { if (pedantic && !flag_isoc99) pedwarn ("ISO C89 forbids mixed declarations and code"); ; break;} ! case 449: ! #line 1946 "c-parse.y" { pushlevel (0); clear_last_expr (); add_scope_stmt (/*begin_p=*/1, /*partial_p=*/0); ; break;} case 450: #line 1953 "c-parse.y" + { yyval.ttype = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); ; + break;} + case 451: + #line 1958 "c-parse.y" { if (flag_isoc99) { yyval.ttype = c_begin_compound_stmt (); *************** case 450: *** 3781,3788 **** yyval.ttype = NULL_TREE; ; break;} ! case 451: ! #line 1969 "c-parse.y" { if (flag_isoc99) { tree scope_stmt = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); --- 3788,3795 ---- yyval.ttype = NULL_TREE; ; break;} ! case 452: ! #line 1974 "c-parse.y" { if (flag_isoc99) { tree scope_stmt = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); *************** case 451: *** 3794,3806 **** else yyval.ttype = NULL_TREE; ; break;} ! case 453: ! #line 1986 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids label declarations"); ; break;} ! case 456: ! #line 1997 "c-parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { --- 3801,3813 ---- else yyval.ttype = NULL_TREE; ; break;} ! case 454: ! #line 1991 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids label declarations"); ; break;} ! case 457: ! #line 2002 "c-parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { *************** case 456: *** 3810,3837 **** } ; break;} ! case 457: ! #line 2011 "c-parse.y" {; break;} ! case 459: ! #line 2015 "c-parse.y" { compstmt_count++; yyval.ttype = c_begin_compound_stmt (); ; break;} ! case 460: ! #line 2020 "c-parse.y" { yyval.ttype = convert (void_type_node, integer_zero_node); ; break;} ! case 461: ! #line 2022 "c-parse.y" { yyval.ttype = poplevel (kept_level_p (), 1, 0); SCOPE_STMT_BLOCK (TREE_PURPOSE (yyvsp[0].ttype)) = SCOPE_STMT_BLOCK (TREE_VALUE (yyvsp[0].ttype)) = yyval.ttype; ; break;} ! case 464: ! #line 2035 "c-parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); --- 3817,3844 ---- } ; break;} ! case 458: ! #line 2016 "c-parse.y" {; break;} ! case 460: ! #line 2020 "c-parse.y" { compstmt_count++; yyval.ttype = c_begin_compound_stmt (); ; break;} ! case 461: ! #line 2025 "c-parse.y" { yyval.ttype = convert (void_type_node, integer_zero_node); ; break;} ! case 462: ! #line 2027 "c-parse.y" { yyval.ttype = poplevel (kept_level_p (), 1, 0); SCOPE_STMT_BLOCK (TREE_PURPOSE (yyvsp[0].ttype)) = SCOPE_STMT_BLOCK (TREE_VALUE (yyvsp[0].ttype)) = yyval.ttype; ; break;} ! case 465: ! #line 2040 "c-parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); *************** case 464: *** 3847,3876 **** yyval.ttype = add_stmt (build_stmt (COMPOUND_STMT, last_tree)); ; break;} ! case 465: ! #line 2052 "c-parse.y" { RECHAIN_STMTS (yyvsp[-1].ttype, COMPOUND_BODY (yyvsp[-1].ttype)); last_expr_type = NULL_TREE; yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 466: ! #line 2060 "c-parse.y" { c_finish_then (); ; break;} ! case 468: ! #line 2077 "c-parse.y" { yyval.ttype = c_begin_if_stmt (); ; break;} ! case 469: ! #line 2079 "c-parse.y" { c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), compstmt_count,yyvsp[-3].ttype); yyval.itype = stmt_count; if_stmt_file = yyvsp[-7].filename; if_stmt_line = yyvsp[-6].lineno; ; break;} ! case 470: ! #line 2091 "c-parse.y" { stmt_count++; compstmt_count++; yyval.ttype --- 3854,3883 ---- yyval.ttype = add_stmt (build_stmt (COMPOUND_STMT, last_tree)); ; break;} ! case 466: ! #line 2057 "c-parse.y" { RECHAIN_STMTS (yyvsp[-1].ttype, COMPOUND_BODY (yyvsp[-1].ttype)); last_expr_type = NULL_TREE; yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 467: ! #line 2065 "c-parse.y" { c_finish_then (); ; break;} ! case 469: ! #line 2082 "c-parse.y" { yyval.ttype = c_begin_if_stmt (); ; break;} ! case 470: ! #line 2084 "c-parse.y" { c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), compstmt_count,yyvsp[-3].ttype); yyval.itype = stmt_count; if_stmt_file = yyvsp[-7].filename; if_stmt_line = yyvsp[-6].lineno; ; break;} ! case 471: ! #line 2096 "c-parse.y" { stmt_count++; compstmt_count++; yyval.ttype *************** case 470: *** 3882,3911 **** RTL-generation time. */ DO_COND (yyval.ttype) = error_mark_node; ; break;} ! case 471: ! #line 2102 "c-parse.y" { yyval.ttype = yyvsp[-2].ttype; RECHAIN_STMTS (yyval.ttype, DO_BODY (yyval.ttype)); ; break;} ! case 472: ! #line 2110 "c-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.filename = input_filename; ; break;} ! case 473: ! #line 2116 "c-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.lineno = lineno; ; break;} ! case 476: ! #line 2129 "c-parse.y" { if (flag_isoc99) RECHAIN_STMTS (yyvsp[-2].ttype, COMPOUND_BODY (yyvsp[-2].ttype)); ; break;} ! case 477: ! #line 2135 "c-parse.y" { if (yyvsp[0].ttype) { STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].lineno; --- 3889,3918 ---- RTL-generation time. */ DO_COND (yyval.ttype) = error_mark_node; ; break;} ! case 472: ! #line 2107 "c-parse.y" { yyval.ttype = yyvsp[-2].ttype; RECHAIN_STMTS (yyval.ttype, DO_BODY (yyval.ttype)); ; break;} ! case 473: ! #line 2115 "c-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.filename = input_filename; ; break;} ! case 474: ! #line 2121 "c-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.lineno = lineno; ; break;} ! case 477: ! #line 2134 "c-parse.y" { if (flag_isoc99) RECHAIN_STMTS (yyvsp[-2].ttype, COMPOUND_BODY (yyvsp[-2].ttype)); ; break;} ! case 478: ! #line 2140 "c-parse.y" { if (yyvsp[0].ttype) { STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].lineno; *************** case 477: *** 3917,3944 **** } ; break;} ! case 478: ! #line 2149 "c-parse.y" { if (yyvsp[0].ttype) { STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].lineno; } ; break;} ! case 479: ! #line 2158 "c-parse.y" { c_expand_start_else (); yyvsp[-1].itype = stmt_count; ; break;} ! case 480: ! #line 2161 "c-parse.y" { c_finish_else (); c_expand_end_cond (); if (extra_warnings && stmt_count == yyvsp[-3].itype) warning ("empty body in an else-statement"); ; break;} ! case 481: ! #line 2166 "c-parse.y" { c_expand_end_cond (); /* This warning is here instead of in simple_if, because we do not want a warning if an empty if is followed by an --- 3924,3951 ---- } ; break;} ! case 479: ! #line 2154 "c-parse.y" { if (yyvsp[0].ttype) { STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].lineno; } ; break;} ! case 480: ! #line 2163 "c-parse.y" { c_expand_start_else (); yyvsp[-1].itype = stmt_count; ; break;} ! case 481: ! #line 2166 "c-parse.y" { c_finish_else (); c_expand_end_cond (); if (extra_warnings && stmt_count == yyvsp[-3].itype) warning ("empty body in an else-statement"); ; break;} ! case 482: ! #line 2171 "c-parse.y" { c_expand_end_cond (); /* This warning is here instead of in simple_if, because we do not want a warning if an empty if is followed by an *************** case 481: *** 3948,4079 **** warning_with_file_and_line (if_stmt_file, if_stmt_line, "empty body in an if-statement"); ; break;} ! case 482: ! #line 2178 "c-parse.y" { c_expand_end_cond (); ; break;} ! case 483: ! #line 2188 "c-parse.y" { stmt_count++; yyval.ttype = c_begin_while_stmt (); ; break;} ! case 484: ! #line 2191 "c-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (yyvsp[-1].ttype); c_finish_while_stmt_cond (truthvalue_conversion (yyvsp[-1].ttype), yyvsp[-3].ttype); yyval.ttype = add_stmt (yyvsp[-3].ttype); ; break;} ! case 485: ! #line 2196 "c-parse.y" { RECHAIN_STMTS (yyvsp[-1].ttype, WHILE_BODY (yyvsp[-1].ttype)); ; break;} ! case 486: ! #line 2199 "c-parse.y" { DO_COND (yyvsp[-4].ttype) = truthvalue_conversion (yyvsp[-2].ttype); ; break;} ! case 487: ! #line 2201 "c-parse.y" { ; break;} ! case 488: ! #line 2203 "c-parse.y" { yyval.ttype = build_stmt (FOR_STMT, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE); add_stmt (yyval.ttype); ; break;} ! case 489: ! #line 2207 "c-parse.y" { stmt_count++; RECHAIN_STMTS (yyvsp[-2].ttype, FOR_INIT_STMT (yyvsp[-2].ttype)); ; break;} ! case 490: ! #line 2210 "c-parse.y" { if (yyvsp[-1].ttype) FOR_COND (yyvsp[-5].ttype) = truthvalue_conversion (yyvsp[-1].ttype); ; break;} ! case 491: ! #line 2213 "c-parse.y" { FOR_EXPR (yyvsp[-8].ttype) = yyvsp[-1].ttype; ; break;} ! case 492: ! #line 2215 "c-parse.y" { RECHAIN_STMTS (yyvsp[-10].ttype, FOR_BODY (yyvsp[-10].ttype)); ; break;} ! case 493: ! #line 2217 "c-parse.y" { stmt_count++; yyval.ttype = c_start_case (yyvsp[-1].ttype); ; break;} - case 494: - #line 2220 "c-parse.y" - { c_finish_case (); ; - break;} case 495: #line 2225 "c-parse.y" ! { add_stmt (build_stmt (EXPR_STMT, yyvsp[-1].ttype)); ; break;} case 496: ! #line 2227 "c-parse.y" ! { check_for_loop_decls (); ; break;} case 497: ! #line 2233 "c-parse.y" ! { stmt_count++; yyval.ttype = yyvsp[0].ttype; ; break;} case 498: ! #line 2235 "c-parse.y" { stmt_count++; yyval.ttype = c_expand_expr_stmt (yyvsp[-1].ttype); ; break;} ! case 499: ! #line 2238 "c-parse.y" { if (flag_isoc99) RECHAIN_STMTS (yyvsp[-2].ttype, COMPOUND_BODY (yyvsp[-2].ttype)); yyval.ttype = NULL_TREE; ; break;} - case 500: - #line 2242 "c-parse.y" - { stmt_count++; - yyval.ttype = add_stmt (build_break_stmt ()); ; - break;} case 501: ! #line 2245 "c-parse.y" { stmt_count++; ! yyval.ttype = add_stmt (build_continue_stmt ()); ; break;} case 502: ! #line 2248 "c-parse.y" { stmt_count++; ! yyval.ttype = c_expand_return (NULL_TREE); ; break;} case 503: ! #line 2251 "c-parse.y" { stmt_count++; ! yyval.ttype = c_expand_return (yyvsp[-1].ttype); ; break;} case 504: ! #line 2254 "c-parse.y" { stmt_count++; ! yyval.ttype = simple_asm_stmt (yyvsp[-2].ttype); ; break;} case 505: ! #line 2258 "c-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} case 506: #line 2263 "c-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 507: #line 2268 "c-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} case 508: ! #line 2271 "c-parse.y" { tree decl; stmt_count++; decl = lookup_label (yyvsp[-1].ttype); --- 3955,4086 ---- warning_with_file_and_line (if_stmt_file, if_stmt_line, "empty body in an if-statement"); ; break;} ! case 483: ! #line 2183 "c-parse.y" { c_expand_end_cond (); ; break;} ! case 484: ! #line 2193 "c-parse.y" { stmt_count++; yyval.ttype = c_begin_while_stmt (); ; break;} ! case 485: ! #line 2196 "c-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (yyvsp[-1].ttype); c_finish_while_stmt_cond (truthvalue_conversion (yyvsp[-1].ttype), yyvsp[-3].ttype); yyval.ttype = add_stmt (yyvsp[-3].ttype); ; break;} ! case 486: ! #line 2201 "c-parse.y" { RECHAIN_STMTS (yyvsp[-1].ttype, WHILE_BODY (yyvsp[-1].ttype)); ; break;} ! case 487: ! #line 2204 "c-parse.y" { DO_COND (yyvsp[-4].ttype) = truthvalue_conversion (yyvsp[-2].ttype); ; break;} ! case 488: ! #line 2206 "c-parse.y" { ; break;} ! case 489: ! #line 2208 "c-parse.y" { yyval.ttype = build_stmt (FOR_STMT, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE); add_stmt (yyval.ttype); ; break;} ! case 490: ! #line 2212 "c-parse.y" { stmt_count++; RECHAIN_STMTS (yyvsp[-2].ttype, FOR_INIT_STMT (yyvsp[-2].ttype)); ; break;} ! case 491: ! #line 2215 "c-parse.y" { if (yyvsp[-1].ttype) FOR_COND (yyvsp[-5].ttype) = truthvalue_conversion (yyvsp[-1].ttype); ; break;} ! case 492: ! #line 2218 "c-parse.y" { FOR_EXPR (yyvsp[-8].ttype) = yyvsp[-1].ttype; ; break;} ! case 493: ! #line 2220 "c-parse.y" { RECHAIN_STMTS (yyvsp[-10].ttype, FOR_BODY (yyvsp[-10].ttype)); ; break;} ! case 494: ! #line 2222 "c-parse.y" { stmt_count++; yyval.ttype = c_start_case (yyvsp[-1].ttype); ; break;} case 495: #line 2225 "c-parse.y" ! { c_finish_case (); ; break;} case 496: ! #line 2230 "c-parse.y" ! { add_stmt (build_stmt (EXPR_STMT, yyvsp[-1].ttype)); ; break;} case 497: ! #line 2232 "c-parse.y" ! { check_for_loop_decls (); ; break;} case 498: ! #line 2238 "c-parse.y" ! { stmt_count++; yyval.ttype = yyvsp[0].ttype; ; ! break;} ! case 499: ! #line 2240 "c-parse.y" { stmt_count++; yyval.ttype = c_expand_expr_stmt (yyvsp[-1].ttype); ; break;} ! case 500: ! #line 2243 "c-parse.y" { if (flag_isoc99) RECHAIN_STMTS (yyvsp[-2].ttype, COMPOUND_BODY (yyvsp[-2].ttype)); yyval.ttype = NULL_TREE; ; break;} case 501: ! #line 2247 "c-parse.y" { stmt_count++; ! yyval.ttype = add_stmt (build_break_stmt ()); ; break;} case 502: ! #line 2250 "c-parse.y" { stmt_count++; ! yyval.ttype = add_stmt (build_continue_stmt ()); ; break;} case 503: ! #line 2253 "c-parse.y" { stmt_count++; ! yyval.ttype = c_expand_return (NULL_TREE); ; break;} case 504: ! #line 2256 "c-parse.y" { stmt_count++; ! yyval.ttype = c_expand_return (yyvsp[-1].ttype); ; break;} case 505: ! #line 2259 "c-parse.y" { stmt_count++; ! yyval.ttype = simple_asm_stmt (yyvsp[-2].ttype); ; break;} case 506: #line 2263 "c-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} case 507: #line 2268 "c-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 508: ! #line 2273 "c-parse.y" ! { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; ! break;} ! case 509: ! #line 2276 "c-parse.y" { tree decl; stmt_count++; decl = lookup_label (yyvsp[-1].ttype); *************** case 508: *** 4086,4120 **** yyval.ttype = NULL_TREE; ; break;} ! case 509: ! #line 2283 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids `goto *expr;'"); stmt_count++; yyvsp[-1].ttype = convert (ptr_type_node, yyvsp[-1].ttype); yyval.ttype = add_stmt (build_stmt (GOTO_STMT, yyvsp[-1].ttype)); ; break;} ! case 510: ! #line 2289 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 511: ! #line 2297 "c-parse.y" { stmt_count++; yyval.ttype = do_case (yyvsp[-1].ttype, NULL_TREE); ; break;} ! case 512: ! #line 2300 "c-parse.y" { stmt_count++; yyval.ttype = do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 513: ! #line 2303 "c-parse.y" { stmt_count++; yyval.ttype = do_case (NULL_TREE, NULL_TREE); ; break;} ! case 514: ! #line 2306 "c-parse.y" { tree label = define_label (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-4].ttype); stmt_count++; if (label) --- 4093,4127 ---- yyval.ttype = NULL_TREE; ; break;} ! case 510: ! #line 2288 "c-parse.y" { if (pedantic) pedwarn ("ISO C forbids `goto *expr;'"); stmt_count++; yyvsp[-1].ttype = convert (ptr_type_node, yyvsp[-1].ttype); yyval.ttype = add_stmt (build_stmt (GOTO_STMT, yyvsp[-1].ttype)); ; break;} ! case 511: ! #line 2294 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 512: ! #line 2302 "c-parse.y" { stmt_count++; yyval.ttype = do_case (yyvsp[-1].ttype, NULL_TREE); ; break;} ! case 513: ! #line 2305 "c-parse.y" { stmt_count++; yyval.ttype = do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 514: ! #line 2308 "c-parse.y" { stmt_count++; yyval.ttype = do_case (NULL_TREE, NULL_TREE); ; break;} ! case 515: ! #line 2311 "c-parse.y" { tree label = define_label (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-4].ttype); stmt_count++; if (label) *************** case 514: *** 4126,4182 **** yyval.ttype = NULL_TREE; ; break;} ! case 515: ! #line 2322 "c-parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} - case 516: - #line 2325 "c-parse.y" - { emit_line_note (input_filename, lineno); ; - break;} case 517: #line 2330 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} ! case 519: ! #line 2337 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 522: ! #line 2344 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 523: #line 2349 "c-parse.y" ! { yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 524: ! #line 2351 "c-parse.y" ! { yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 525: #line 2356 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; break;} case 526: ! #line 2358 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; break;} case 527: ! #line 2368 "c-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (0); ; break;} ! case 528: ! #line 2372 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} ! case 530: ! #line 2380 "c-parse.y" { tree parm; if (pedantic) pedwarn ("ISO C forbids forward parameter declarations"); --- 4133,4189 ---- yyval.ttype = NULL_TREE; ; break;} ! case 516: ! #line 2327 "c-parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} case 517: #line 2330 "c-parse.y" ! { emit_line_note (input_filename, lineno); ; break;} ! case 518: ! #line 2335 "c-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 520: ! #line 2342 "c-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 523: #line 2349 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 524: ! #line 2354 "c-parse.y" ! { yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 525: #line 2356 "c-parse.y" ! { yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 526: ! #line 2361 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; break;} case 527: ! #line 2363 "c-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; ! break;} ! case 528: ! #line 2373 "c-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (0); ; break;} ! case 529: ! #line 2377 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} ! case 531: ! #line 2385 "c-parse.y" { tree parm; if (pedantic) pedwarn ("ISO C forbids forward parameter declarations"); *************** case 530: *** 4185,4209 **** TREE_ASM_WRITTEN (parm) = 1; clear_parm_order (); ; break;} ! case 531: ! #line 2388 "c-parse.y" { /* Dummy action so attributes are in known place on parser stack. */ ; break;} ! case 532: ! #line 2391 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 533: ! #line 2393 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; break;} ! case 534: ! #line 2399 "c-parse.y" { yyval.ttype = get_parm_info (0); ; break;} ! case 535: ! #line 2401 "c-parse.y" { yyval.ttype = get_parm_info (0); /* Gcc used to allow this as an extension. However, it does not work for all targets, and thus has been disabled. --- 4192,4216 ---- TREE_ASM_WRITTEN (parm) = 1; clear_parm_order (); ; break;} ! case 532: ! #line 2393 "c-parse.y" { /* Dummy action so attributes are in known place on parser stack. */ ; break;} ! case 533: ! #line 2396 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 534: ! #line 2398 "c-parse.y" { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; break;} ! case 535: ! #line 2404 "c-parse.y" { yyval.ttype = get_parm_info (0); ; break;} ! case 536: ! #line 2406 "c-parse.y" { yyval.ttype = get_parm_info (0); /* Gcc used to allow this as an extension. However, it does not work for all targets, and thus has been disabled. *************** case 535: *** 4214,4316 **** error ("ISO C requires a named argument before `...'"); ; break;} - case 536: - #line 2411 "c-parse.y" - { yyval.ttype = get_parm_info (1); ; - break;} case 537: ! #line 2413 "c-parse.y" ! { yyval.ttype = get_parm_info (0); ; break;} case 538: #line 2418 "c-parse.y" ! { push_parm_decl (yyvsp[0].ttype); ; break;} case 539: ! #line 2420 "c-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 540: ! #line 2427 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 541: ! #line 2432 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 542: ! #line 2437 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 543: ! #line 2440 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 544: ! #line 2446 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 545: ! #line 2454 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 546: ! #line 2459 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 547: ! #line 2464 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 548: ! #line 2467 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 549: ! #line 2473 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 550: ! #line 2479 "c-parse.y" { prefix_attributes = chainon (prefix_attributes, yyvsp[-3].ttype); all_prefix_attributes = prefix_attributes; ; break;} ! case 551: ! #line 2488 "c-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (1); ; break;} ! case 552: ! #line 2492 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} ! case 554: ! #line 2500 "c-parse.y" { tree t; for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) if (TREE_VALUE (t) == NULL_TREE) --- 4221,4323 ---- error ("ISO C requires a named argument before `...'"); ; break;} case 537: ! #line 2416 "c-parse.y" ! { yyval.ttype = get_parm_info (1); ; break;} case 538: #line 2418 "c-parse.y" ! { yyval.ttype = get_parm_info (0); ; break;} case 539: ! #line 2423 "c-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 540: ! #line 2425 "c-parse.y" ! { push_parm_decl (yyvsp[0].ttype); ; ! break;} ! case 541: ! #line 2432 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 542: ! #line 2437 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 543: ! #line 2442 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 544: ! #line 2445 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 545: ! #line 2451 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 546: ! #line 2459 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 547: ! #line 2464 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 548: ! #line 2469 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 549: ! #line 2472 "c-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 550: ! #line 2478 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 551: ! #line 2484 "c-parse.y" { prefix_attributes = chainon (prefix_attributes, yyvsp[-3].ttype); all_prefix_attributes = prefix_attributes; ; break;} ! case 552: ! #line 2493 "c-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (1); ; break;} ! case 553: ! #line 2497 "c-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} ! case 555: ! #line 2505 "c-parse.y" { tree t; for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) if (TREE_VALUE (t) == NULL_TREE) *************** case 554: *** 4325,4348 **** YYERROR1; ; break;} - case 555: - #line 2518 "c-parse.y" - { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} case 556: ! #line 2520 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 557: ! #line 2526 "c-parse.y" ! { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 558: ! #line 2528 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 559: #line 2533 "c-parse.y" { yyval.ttype = SAVE_WARN_FLAGS(); pedantic = 0; warn_pointer_arith = 0; --- 4332,4355 ---- YYERROR1; ; break;} case 556: ! #line 2523 "c-parse.y" ! { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 557: ! #line 2525 "c-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 558: ! #line 2531 "c-parse.y" ! { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 559: #line 2533 "c-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 560: + #line 2538 "c-parse.y" { yyval.ttype = SAVE_WARN_FLAGS(); pedantic = 0; warn_pointer_arith = 0; *************** yyerrhandle: *** 4570,4576 **** } return 1; } ! #line 2539 "c-parse.y" /* yylex() is a thin wrapper around c_lex(), all it does is translate --- 4577,4583 ---- } return 1; } ! #line 2544 "c-parse.y" /* yylex() is a thin wrapper around c_lex(), all it does is translate diff -Nrc3pad gcc-3.2/gcc/c-parse.in gcc-3.2.1/gcc/c-parse.in *** gcc-3.2/gcc/c-parse.in Tue Apr 16 22:05:54 2002 --- gcc-3.2.1/gcc/c-parse.in Mon Oct 21 18:37:41 2002 *************** alignof: *** 534,539 **** --- 534,543 ---- ALIGNOF { skip_evaluation++; } ; + typeof: + TYPEOF { skip_evaluation++; } + ; + cast_expr: unary_expr | '(' typename ')' cast_expr %prec UNARY *************** ifobjc *** 1376,1385 **** | non_empty_protocolrefs { $$ = get_object_reference ($1); } end ifobjc ! | TYPEOF '(' expr ')' ! { $$ = TREE_TYPE ($3); } ! | TYPEOF '(' typename ')' ! { $$ = groktypename ($3); } ; /* typespec_nonreserved_attr does not exist. */ --- 1380,1389 ---- | non_empty_protocolrefs { $$ = get_object_reference ($1); } end ifobjc ! | typeof '(' expr ')' ! { skip_evaluation--; $$ = TREE_TYPE ($3); } ! | typeof '(' typename ')' ! { skip_evaluation--; $$ = groktypename ($3); } ; /* typespec_nonreserved_attr does not exist. */ *************** initelt: *** 1523,1528 **** --- 1527,1533 ---- if (pedantic) pedwarn ("obsolete use of designated initializer with `:'"); } initval + {} | initval ; *************** classdecl: *** 2696,2707 **** --- 2701,2714 ---- { objc_declare_class ($2); } + ; aliasdecl: ALIAS identifier identifier ';' { objc_declare_alias ($2, $3); } + ; classdef: INTERFACE identifier protocolrefs '{' diff -Nrc3pad gcc-3.2/gcc/c-parse.y gcc-3.2.1/gcc/c-parse.y *** gcc-3.2/gcc/c-parse.y Wed Aug 14 09:32:35 2002 --- gcc-3.2.1/gcc/c-parse.y Tue Nov 19 18:13:17 2002 *************** alignof: *** 488,493 **** --- 488,497 ---- ALIGNOF { skip_evaluation++; } ; + typeof: + TYPEOF { skip_evaluation++; } + ; + cast_expr: unary_expr | '(' typename ')' cast_expr %prec UNARY *************** typespec_nonreserved_nonattr: *** 1283,1292 **** { /* For a typedef name, record the meaning, not the name. In case of `foo foo, bar;'. */ $$ = lookup_name ($1); } ! | TYPEOF '(' expr ')' ! { $$ = TREE_TYPE ($3); } ! | TYPEOF '(' typename ')' ! { $$ = groktypename ($3); } ; /* typespec_nonreserved_attr does not exist. */ --- 1287,1296 ---- { /* For a typedef name, record the meaning, not the name. In case of `foo foo, bar;'. */ $$ = lookup_name ($1); } ! | typeof '(' expr ')' ! { skip_evaluation--; $$ = TREE_TYPE ($3); } ! | typeof '(' typename ')' ! { skip_evaluation--; $$ = groktypename ($3); } ; /* typespec_nonreserved_attr does not exist. */ *************** initelt: *** 1430,1435 **** --- 1434,1440 ---- if (pedantic) pedwarn ("obsolete use of designated initializer with `:'"); } initval + {} | initval ; diff -Nrc3pad gcc-3.2/gcc/c-tree.h gcc-3.2.1/gcc/c-tree.h *** gcc-3.2/gcc/c-tree.h Thu Mar 28 18:49:58 2002 --- gcc-3.2.1/gcc/c-tree.h Sun Sep 1 20:11:07 2002 *************** extern int current_function_returns_null *** 287,297 **** extern int current_function_returns_abnormally; - /* Nonzero means the expression being parsed will never be evaluated. - This is a count, since unevaluated expressions can nest. */ - - extern int skip_evaluation; - /* Nonzero means `$' can be in an identifier. */ extern int dollars_in_ident; --- 287,292 ---- diff -Nrc3pad gcc-3.2/gcc/c-typeck.c gcc-3.2.1/gcc/c-typeck.c *** gcc-3.2/gcc/c-typeck.c Fri Mar 22 01:53:39 2002 --- gcc-3.2.1/gcc/c-typeck.c Sun Sep 1 20:11:07 2002 *************** build_external_ref (id, fun) *** 1493,1499 **** if (TREE_TYPE (ref) == error_mark_node) return error_mark_node; ! assemble_external (ref); TREE_USED (ref) = 1; if (TREE_CODE (ref) == CONST_DECL) --- 1493,1500 ---- if (TREE_TYPE (ref) == error_mark_node) return error_mark_node; ! if (!skip_evaluation) ! assemble_external (ref); TREE_USED (ref) = 1; if (TREE_CODE (ref) == CONST_DECL) diff -Nrc3pad gcc-3.2/gcc/calls.c gcc-3.2.1/gcc/calls.c *** gcc-3.2/gcc/calls.c Thu Apr 4 23:28:47 2002 --- gcc-3.2.1/gcc/calls.c Fri Nov 8 22:12:37 2002 *************** Software Foundation, 59 Temple Place - S *** 46,54 **** --- 46,56 ---- #ifdef PUSH_ROUNDING + #ifndef PUSH_ARGS_REVERSED #if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNWARD) #define PUSH_ARGS_REVERSED PUSH_ARGS #endif + #endif #endif *************** expand_call (exp, target, ignore) *** 2708,2713 **** --- 2710,2721 ---- if (pass == 0) { argblock = virtual_incoming_args_rtx; + argblock + #ifdef STACK_GROWS_DOWNWARD + = plus_constant (argblock, current_function_pretend_args_size); + #else + = plus_constant (argblock, -current_function_pretend_args_size); + #endif stored_args_map = sbitmap_alloc (args_size.constant); sbitmap_zero (stored_args_map); } *************** emit_library_call_value_1 (retval, orgfu *** 3666,3671 **** --- 3674,3687 ---- #endif ; + /* If this was a CONST function, it is now PURE since + it now reads memory. */ + if (flags & ECF_CONST) + { + flags &= ~ECF_CONST; + flags |= ECF_PURE; + } + if (GET_MODE (val) == MEM && ! must_copy) slot = val; else if (must_copy) *************** store_one_arg (arg, argblock, flags, var *** 4268,4274 **** struct arg_data *arg; rtx argblock; int flags; ! int variable_size ATTRIBUTE_UNUSED; int reg_parm_stack_space; { tree pval = arg->tree_value; --- 4284,4290 ---- struct arg_data *arg; rtx argblock; int flags; ! int variable_size; int reg_parm_stack_space; { tree pval = arg->tree_value; *************** store_one_arg (arg, argblock, flags, var *** 4343,4356 **** emit_move_insn (arg->save_area, stack_area); } } } - /* Now that we have saved any slots that will be overwritten by this - store, mark all slots this store will use. We must do this before - we actually expand the argument since the expansion itself may - trigger library calls which might need to use the same stack slot. */ - if (argblock && ! variable_size && arg->stack) - for (i = lower_bound; i < upper_bound; i++) - stack_usage_map[i] = 1; } /* If this isn't going to be placed on both the stack and in registers, --- 4359,4380 ---- emit_move_insn (arg->save_area, stack_area); } } + + /* Now that we have saved any slots that will be overwritten + by this store, mark all slots this store will use. We + must do this before we actually expand the argument since + the expansion itself may trigger library calls which might + need to use the same stack slot. We only do it if we can't + pass all arguments to a library call in registers. */ + if (arg->partial) + { + for (i = lower_bound; i < upper_bound; i++) + stack_usage_map[i] = 1; + + /* Set it so that we don't do it again. */ + variable_size = 1; + } } } /* If this isn't going to be placed on both the stack and in registers, *************** store_one_arg (arg, argblock, flags, var *** 4491,4497 **** emit_push_insn for BLKmode is careful to avoid it. */ excess = (arg->size.constant - int_size_in_bytes (TREE_TYPE (pval)) + partial * UNITS_PER_WORD); ! size_rtx = expr_size (pval); } if ((flags & ECF_SIBCALL) && GET_CODE (arg->value) == MEM) --- 4515,4522 ---- emit_push_insn for BLKmode is careful to avoid it. */ excess = (arg->size.constant - int_size_in_bytes (TREE_TYPE (pval)) + partial * UNITS_PER_WORD); ! size_rtx = expand_expr (size_in_bytes (TREE_TYPE (pval)), ! NULL_RTX, TYPE_MODE (sizetype), 0); } if ((flags & ECF_SIBCALL) && GET_CODE (arg->value) == MEM) *************** store_one_arg (arg, argblock, flags, var *** 4577,4582 **** --- 4602,4612 ---- arg->value = arg->stack_slot; } + if (ACCUMULATE_OUTGOING_ARGS && !(flags & ECF_SIBCALL) + && argblock && ! variable_size && arg->stack) + for (i = lower_bound; i < upper_bound; i++) + stack_usage_map[i] = 1; + /* Once we have pushed something, pops can't safely be deferred during the rest of the arguments. */ NO_DEFER_POP; diff -Nrc3pad gcc-3.2/gcc/cfganal.c gcc-3.2.1/gcc/cfganal.c *** gcc-3.2/gcc/cfganal.c Fri Feb 8 00:35:15 2002 --- gcc-3.2.1/gcc/cfganal.c Thu Nov 7 00:22:48 2002 *************** static void flow_dfs_compute_reverse_fin *** 56,62 **** --- 56,86 ---- static void remove_fake_successors PARAMS ((basic_block)); static bool need_fake_edge_p PARAMS ((rtx)); static bool keep_with_call_p PARAMS ((rtx)); + static bool flow_active_insn_p PARAMS ((rtx)); + /* Like active_insn_p, except keep the return value clobber around + even after reload. */ + + static bool + flow_active_insn_p (insn) + rtx insn; + { + if (active_insn_p (insn)) + return true; + + /* A clobber of the function return value exists for buggy + programs that fail to return a value. It's effect is to + keep the return value from being live across the entire + function. If we allow it to be skipped, we introduce the + possibility for register livetime aborts. */ + if (GET_CODE (PATTERN (insn)) == CLOBBER + && GET_CODE (XEXP (PATTERN (insn), 0)) == REG + && REG_FUNCTION_VALUE_P (XEXP (PATTERN (insn), 0))) + return true; + + return false; + } + /* Return true if the block has no effect and only forwards control flow to its single destination. */ *************** forwarder_block_p (bb) *** 71,82 **** return false; for (insn = bb->head; insn != bb->end; insn = NEXT_INSN (insn)) ! if (INSN_P (insn) && active_insn_p (insn)) return false; return (!INSN_P (insn) || (GET_CODE (insn) == JUMP_INSN && simplejump_p (insn)) ! || !active_insn_p (insn)); } /* Return nonzero if we can reach target from src by falling through. */ --- 95,106 ---- return false; for (insn = bb->head; insn != bb->end; insn = NEXT_INSN (insn)) ! if (INSN_P (insn) && flow_active_insn_p (insn)) return false; return (!INSN_P (insn) || (GET_CODE (insn) == JUMP_INSN && simplejump_p (insn)) ! || !flow_active_insn_p (insn)); } /* Return nonzero if we can reach target from src by falling through. */ diff -Nrc3pad gcc-3.2/gcc/cfgcleanup.c gcc-3.2.1/gcc/cfgcleanup.c *** gcc-3.2/gcc/cfgcleanup.c Mon Jun 10 21:39:45 2002 --- gcc-3.2.1/gcc/cfgcleanup.c Sat Nov 16 01:55:47 2002 *************** try_optimize_cfg (mode) *** 1638,1644 **** /* If the jump insn has side effects, we can't kill the edge. */ && (GET_CODE (b->end) != JUMP_INSN ! || onlyjump_p (b->end)) && merge_blocks (s, b, c, mode)) changed_here = true; --- 1638,1645 ---- /* If the jump insn has side effects, we can't kill the edge. */ && (GET_CODE (b->end) != JUMP_INSN ! || (onlyjump_p (b->end) ! && !tablejump_p (b->end))) && merge_blocks (s, b, c, mode)) changed_here = true; diff -Nrc3pad gcc-3.2/gcc/cfgrtl.c gcc-3.2.1/gcc/cfgrtl.c *** gcc-3.2/gcc/cfgrtl.c Mon Jul 15 16:19:38 2002 --- gcc-3.2.1/gcc/cfgrtl.c Mon Nov 11 03:35:59 2002 *************** try_redirect_by_replacing_jump (e, targe *** 665,670 **** --- 665,671 ---- edge tmp; rtx set; int fallthru = 0; + rtx table; /* Verify that all targets will be TARGET. */ for (tmp = src->succ; tmp; tmp = tmp->succ_next) *************** try_redirect_by_replacing_jump (e, targe *** 674,679 **** --- 675,687 ---- if (tmp || !onlyjump_p (insn)) return false; + if (reload_completed && JUMP_LABEL (insn) + && (table = NEXT_INSN (JUMP_LABEL (insn))) != NULL_RTX + && GET_CODE (table) == JUMP_INSN + && (GET_CODE (PATTERN (table)) == ADDR_VEC + || GET_CODE (PATTERN (table)) == ADDR_DIFF_VEC)) + return false; + /* Avoid removing branch with side effects. */ set = single_set (insn); if (!set || side_effects_p (set)) diff -Nrc3pad gcc-3.2/gcc/collect2.c gcc-3.2.1/gcc/collect2.c *** gcc-3.2/gcc/collect2.c Tue Feb 5 16:33:31 2002 --- gcc-3.2.1/gcc/collect2.c Fri Aug 16 18:03:06 2002 *************** is_ctor_dtor (s) *** 577,582 **** --- 577,591 ---- const char *orig_s = s; static const struct names special[] = { + #ifndef NO_DOLLAR_IN_LABEL + { "GLOBAL__I$", sizeof ("GLOBAL__I$")-1, 1, 0 }, + { "GLOBAL__D$", sizeof ("GLOBAL__D$")-1, 2, 0 }, + #else + #ifndef NO_DOT_IN_LABEL + { "GLOBAL__I.", sizeof ("GLOBAL__I.")-1, 1, 0 }, + { "GLOBAL__D.", sizeof ("GLOBAL__D.")-1, 2, 0 }, + #endif /* NO_DOT_IN_LABEL */ + #endif /* NO_DOLLAR_IN_LABEL */ { "GLOBAL__I_", sizeof ("GLOBAL__I_")-1, 1, 0 }, { "GLOBAL__D_", sizeof ("GLOBAL__D_")-1, 2, 0 }, { "GLOBAL__F_", sizeof ("GLOBAL__F_")-1, 5, 0 }, diff -Nrc3pad gcc-3.2/gcc/config/alpha/alpha.md gcc-3.2.1/gcc/config/alpha/alpha.md *** gcc-3.2/gcc/config/alpha/alpha.md Wed Apr 10 05:14:55 2002 --- gcc-3.2.1/gcc/config/alpha/alpha.md Sun Sep 8 05:30:19 2002 *************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi *** 2374,2380 **** (define_expand "abstf2" [(parallel [(set (match_operand:TF 0 "register_operand" "") ! (neg:TF (match_operand:TF 1 "reg_or_fp0_operand" ""))) (use (match_dup 2))])] "TARGET_HAS_XFLOATING_LIBS" { --- 2374,2380 ---- (define_expand "abstf2" [(parallel [(set (match_operand:TF 0 "register_operand" "") ! (abs:TF (match_operand:TF 1 "reg_or_fp0_operand" ""))) (use (match_dup 2))])] "TARGET_HAS_XFLOATING_LIBS" { diff -Nrc3pad gcc-3.2/gcc/config/arm/arm.c gcc-3.2.1/gcc/config/arm/arm.c *** gcc-3.2/gcc/config/arm/arm.c Sun Jul 21 12:09:02 2002 --- gcc-3.2.1/gcc/config/arm/arm.c Fri Nov 1 14:40:23 2002 *************** use_return_insn (iscond) *** 890,895 **** --- 890,896 ---- { int regno; unsigned int func_type; + unsigned long saved_int_regs; /* Never use a return instruction before reload has run. */ if (!reload_completed) *************** use_return_insn (iscond) *** 912,934 **** && !frame_pointer_needed)) return 0; /* Can't be done if interworking with Thumb, and any registers have been ! stacked. Similarly, on StrongARM, conditional returns are expensive ! if they aren't taken and registers have been stacked. */ ! if (iscond && arm_is_strong && frame_pointer_needed) return 0; ! ! if ((iscond && arm_is_strong) ! || TARGET_INTERWORK) { ! for (regno = 0; regno <= LAST_ARM_REGNUM; regno++) ! if (regs_ever_live[regno] && !call_used_regs[regno]) ! return 0; if (flag_pic && regs_ever_live[PIC_OFFSET_TABLE_REGNUM]) return 0; } ! /* Can't be done if any of the FPU regs are pushed, since this also requires an insn. */ if (TARGET_HARD_FLOAT) --- 913,943 ---- && !frame_pointer_needed)) return 0; + saved_int_regs = arm_compute_save_reg_mask (); + /* Can't be done if interworking with Thumb, and any registers have been ! stacked. */ ! if (TARGET_INTERWORK && saved_int_regs != 0) return 0; ! ! /* On StrongARM, conditional returns are expensive if they aren't ! taken and multiple registers have been stacked. */ ! if (iscond && arm_is_strong) { ! /* Conditional return when just the LR is stored is a simple ! conditional-load instruction, that's not expensive. */ ! if (saved_int_regs != 0 && saved_int_regs != (1 << LR_REGNUM)) ! return 0; if (flag_pic && regs_ever_live[PIC_OFFSET_TABLE_REGNUM]) return 0; } ! ! /* If there are saved registers but the LR isn't saved, then we need ! two instructions for the return. */ ! if (saved_int_regs && !(saved_int_regs & (1 << LR_REGNUM))) ! return 0; ! /* Can't be done if any of the FPU regs are pushed, since this also requires an insn. */ if (TARGET_HARD_FLOAT) diff -Nrc3pad gcc-3.2/gcc/config/arm/arm.h gcc-3.2.1/gcc/config/arm/arm.h *** gcc-3.2/gcc/config/arm/arm.h Wed Mar 13 05:35:51 2002 --- gcc-3.2.1/gcc/config/arm/arm.h Mon Sep 30 11:54:00 2002 *************** enum reg_class *** 1093,1106 **** /* The class value for index registers, and the one for base regs. */ #define INDEX_REG_CLASS (TARGET_THUMB ? LO_REGS : GENERAL_REGS) ! #define BASE_REG_CLASS (TARGET_THUMB ? BASE_REGS : GENERAL_REGS) ! /* For the Thumb the high registers cannot be used as base ! registers when addressing quanitities in QI or HI mode. */ #define MODE_BASE_REG_CLASS(MODE) \ ! (TARGET_ARM ? BASE_REGS : \ ! (((MODE) == QImode || (MODE) == HImode || (MODE) == VOIDmode) \ ! ? LO_REGS : BASE_REGS)) /* When SMALL_REGISTER_CLASSES is nonzero, the compiler allows registers explicitly used in the rtl to be used as spill registers --- 1093,1108 ---- /* The class value for index registers, and the one for base regs. */ #define INDEX_REG_CLASS (TARGET_THUMB ? LO_REGS : GENERAL_REGS) ! #define BASE_REG_CLASS (TARGET_THUMB ? LO_REGS : GENERAL_REGS) ! /* For the Thumb the high registers cannot be used as base registers ! when addressing quanitities in QI or HI mode; if we don't know the ! mode, then we must be conservative. After reload we must also be ! conservative, since we can't support SP+reg addressing, and we ! can't fix up any bad substitutions. */ #define MODE_BASE_REG_CLASS(MODE) \ ! (TARGET_ARM ? GENERAL_REGS : \ ! (((MODE) == SImode && !reload_completed) ? BASE_REGS : LO_REGS)) /* When SMALL_REGISTER_CLASSES is nonzero, the compiler allows registers explicitly used in the rtl to be used as spill registers diff -Nrc3pad gcc-3.2/gcc/config/arm/arm.md gcc-3.2.1/gcc/config/arm/arm.md *** gcc-3.2/gcc/config/arm/arm.md Sun Jul 21 12:09:03 2002 --- gcc-3.2.1/gcc/config/arm/arm.md Fri Sep 20 14:01:24 2002 *************** *** 1837,1843 **** (match_operand:SI 1 "s_register_operand" "r") (match_operand:SI 2 "const_int_operand" "n") (match_operand:SI 3 "const_int_operand" "n")) ! (const_int 0)))] "TARGET_ARM && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32 && INTVAL (operands[2]) > 0 --- 1837,1844 ---- (match_operand:SI 1 "s_register_operand" "r") (match_operand:SI 2 "const_int_operand" "n") (match_operand:SI 3 "const_int_operand" "n")) ! (const_int 0))) ! (clobber (reg:CC CC_REGNUM))] "TARGET_ARM && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32 && INTVAL (operands[2]) > 0 *************** *** 8947,8953 **** [(set (match_operand:SI 0 "s_register_operand" "=r") (sign_extract:SI (match_operand:SI 1 "s_register_operand" "r") (const_int 1) ! (match_operand:SI 2 "const_int_operand" "n")))] "TARGET_ARM" "* operands[2] = GEN_INT (1 << INTVAL (operands[2])); --- 8948,8955 ---- [(set (match_operand:SI 0 "s_register_operand" "=r") (sign_extract:SI (match_operand:SI 1 "s_register_operand" "r") (const_int 1) ! (match_operand:SI 2 "const_int_operand" "n"))) ! (clobber (reg:CC CC_REGNUM))] "TARGET_ARM" "* operands[2] = GEN_INT (1 << INTVAL (operands[2])); *************** *** 8963,8969 **** (not:SI (sign_extract:SI (match_operand:SI 1 "s_register_operand" "r") (const_int 1) ! (match_operand:SI 2 "const_int_operand" "n"))))] "TARGET_ARM" "* operands[2] = GEN_INT (1 << INTVAL (operands[2])); --- 8965,8972 ---- (not:SI (sign_extract:SI (match_operand:SI 1 "s_register_operand" "r") (const_int 1) ! (match_operand:SI 2 "const_int_operand" "n")))) ! (clobber (reg:CC CC_REGNUM))] "TARGET_ARM" "* operands[2] = GEN_INT (1 << INTVAL (operands[2])); diff -Nrc3pad gcc-3.2/gcc/config/avr/avr.md gcc-3.2.1/gcc/config/avr/avr.md *** gcc-3.2/gcc/config/avr/avr.md Thu Mar 21 22:14:07 2002 --- gcc-3.2.1/gcc/config/avr/avr.md Sun Sep 1 18:46:20 2002 *************** *** 1,7 **** ;; -*- Mode: Scheme -*- ;; Machine description for GNU compiler, ;; for ATMEL AVR micro controllers. ! ;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. ;; Contributed by Denis Chertykov (denisc@overta.ru) ;; This file is part of GNU CC. --- 1,7 ---- ;; -*- Mode: Scheme -*- ;; Machine description for GNU compiler, ;; for ATMEL AVR micro controllers. ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ;; Contributed by Denis Chertykov (denisc@overta.ru) ;; This file is part of GNU CC. *************** *** 2250,2255 **** --- 2250,2256 ---- && test_hard_reg_class (LD_REGS, operands[1]))" "* { + CC_STATUS_INIT; if (test_hard_reg_class (ADDW_REGS, operands[0])) output_asm_insn (AS2 (sbiw,%0,1) CR_TAB AS2 (sbc,%C0,__zero_reg__) CR_TAB *************** *** 2288,2293 **** --- 2289,2295 ---- && test_hard_reg_class (LD_REGS, operands[1]))" "* { + CC_STATUS_INIT; if (test_hard_reg_class (ADDW_REGS, operands[0])) output_asm_insn (AS2 (sbiw,%0,1), operands); else *************** *** 2319,2324 **** --- 2321,2329 ---- "test_hard_reg_class (LD_REGS, operands[0])" "* { + CC_STATUS_INIT; + cc_status.value1 = operands[0]; + cc_status.flags |= CC_OVERFLOW_UNUSABLE; output_asm_insn (AS2 (subi,%A0,1), operands); switch (avr_jump_mode (operands[1],insn)) { diff -Nrc3pad gcc-3.2/gcc/config/i386/i386.c gcc-3.2.1/gcc/config/i386/i386.c *** gcc-3.2/gcc/config/i386/i386.c Wed Aug 7 18:10:57 2002 --- gcc-3.2.1/gcc/config/i386/i386.c Thu Oct 31 18:39:32 2002 *************** struct processor_costs athlon_cost = { *** 284,308 **** 8, /* "large" insn */ 9, /* MOVE_RATIO */ 4, /* cost for loading QImode using movzbl */ ! {4, 5, 4}, /* cost of loading integer registers in QImode, HImode and SImode. Relative to reg-reg move (2). */ ! {2, 3, 2}, /* cost of storing integer registers */ 4, /* cost of reg,reg fld/fst */ ! {6, 6, 20}, /* cost of loading fp registers in SFmode, DFmode and XFmode */ ! {4, 4, 16}, /* cost of loading integer registers */ 2, /* cost of moving MMX register */ ! {2, 2}, /* cost of loading MMX registers in SImode and DImode */ ! {2, 2}, /* cost of storing MMX registers in SImode and DImode */ 2, /* cost of moving SSE register */ ! {2, 2, 8}, /* cost of loading SSE registers in SImode, DImode and TImode */ ! {2, 2, 8}, /* cost of storing SSE registers in SImode, DImode and TImode */ ! 6, /* MMX or SSE register to integer */ 64, /* size of prefetch block */ 6, /* number of parallel prefetches */ }; --- 284,308 ---- 8, /* "large" insn */ 9, /* MOVE_RATIO */ 4, /* cost for loading QImode using movzbl */ ! {3, 4, 3}, /* cost of loading integer registers in QImode, HImode and SImode. Relative to reg-reg move (2). */ ! {3, 4, 3}, /* cost of storing integer registers */ 4, /* cost of reg,reg fld/fst */ ! {4, 4, 12}, /* cost of loading fp registers in SFmode, DFmode and XFmode */ ! {6, 6, 8}, /* cost of loading integer registers */ 2, /* cost of moving MMX register */ ! {4, 4}, /* cost of loading MMX registers in SImode and DImode */ ! {4, 4}, /* cost of storing MMX registers in SImode and DImode */ 2, /* cost of moving SSE register */ ! {4, 4, 6}, /* cost of loading SSE registers in SImode, DImode and TImode */ ! {4, 4, 5}, /* cost of storing SSE registers in SImode, DImode and TImode */ ! 5, /* MMX or SSE register to integer */ 64, /* size of prefetch block */ 6, /* number of parallel prefetches */ }; *************** override_options () *** 906,911 **** --- 906,932 ---- int const pta_size = sizeof (processor_alias_table) / sizeof (struct pta); + /* Set the default values for switches whose default depends on TARGET_64BIT + in case they weren't overwriten by command line options. */ + if (TARGET_64BIT) + { + if (flag_omit_frame_pointer == 2) + flag_omit_frame_pointer = 1; + if (flag_asynchronous_unwind_tables == 2) + flag_asynchronous_unwind_tables = 1; + if (flag_pcc_struct_return == 2) + flag_pcc_struct_return = 0; + } + else + { + if (flag_omit_frame_pointer == 2) + flag_omit_frame_pointer = 0; + if (flag_asynchronous_unwind_tables == 2) + flag_asynchronous_unwind_tables = 0; + if (flag_pcc_struct_return == 2) + flag_pcc_struct_return = 1; + } + #ifdef SUBTARGET_OVERRIDE_OPTIONS SUBTARGET_OVERRIDE_OPTIONS; #endif *************** optimization_options (level, size) *** 1213,1225 **** if (level > 1) flag_schedule_insns = 0; #endif ! if (TARGET_64BIT && optimize >= 1) ! flag_omit_frame_pointer = 1; ! if (TARGET_64BIT) ! { ! flag_pcc_struct_return = 0; ! flag_asynchronous_unwind_tables = 1; ! } } /* Table of valid machine attributes. */ --- 1234,1247 ---- if (level > 1) flag_schedule_insns = 0; #endif ! /* The default values of these switches depend on the TARGET_64BIT ! that is not known at this moment. Mark these values with 2 and ! let user the to override these. In case there is no command line option ! specifying them, we will set the defaults in override_options. */ ! if (optimize >= 1) ! flag_omit_frame_pointer = 2; ! flag_pcc_struct_return = 2; ! flag_asynchronous_unwind_tables = 2; } /* Table of valid machine attributes. */ *************** classify_argument (mode, type, classes, *** 1649,1655 **** { int bytes = (mode == BLKmode) ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode); ! int words = (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD; if (type && AGGREGATE_TYPE_P (type)) { --- 1671,1681 ---- { int bytes = (mode == BLKmode) ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode); ! int words = (bytes + (bit_offset % 64) / 8 + UNITS_PER_WORD - 1) / UNITS_PER_WORD; ! ! /* Variable sized structures are always passed on the stack. */ ! if (mode == BLKmode && type && TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) ! return 0; if (type && AGGREGATE_TYPE_P (type)) { *************** q_regs_operand (op, mode) *** 3206,3212 **** return 0; if (GET_CODE (op) == SUBREG) op = SUBREG_REG (op); ! return QI_REG_P (op); } /* Return true if op is a NON_Q_REGS class register. */ --- 3232,3238 ---- return 0; if (GET_CODE (op) == SUBREG) op = SUBREG_REG (op); ! return ANY_QI_REG_P (op); } /* Return true if op is a NON_Q_REGS class register. */ *************** print_operand_address (file, addr) *** 6123,6129 **** int scale; if (! ix86_decompose_address (addr, &parts)) ! abort (); base = parts.base; index = parts.index; --- 6149,6158 ---- int scale; if (! ix86_decompose_address (addr, &parts)) ! { ! output_operand_lossage ("Wrong address expression or operand constraint"); ! return; ! } base = parts.base; index = parts.index; *************** ix86_expand_vector_move (mode, operands) *** 6855,6862 **** /* Make operand1 a register if it isn't already. */ if ((reload_in_progress | reload_completed) == 0 && !register_operand (operands[0], mode) ! && !register_operand (operands[1], mode) ! && operands[1] != CONST0_RTX (mode)) { rtx temp = force_reg (GET_MODE (operands[1]), operands[1]); emit_move_insn (operands[0], temp); --- 6884,6890 ---- /* Make operand1 a register if it isn't already. */ if ((reload_in_progress | reload_completed) == 0 && !register_operand (operands[0], mode) ! && !register_operand (operands[1], mode)) { rtx temp = force_reg (GET_MODE (operands[1]), operands[1]); emit_move_insn (operands[0], temp); *************** ix86_expand_int_movcc (operands) *** 8237,8243 **** clob = gen_rtx_CLOBBER (VOIDmode, clob); tmp = gen_rtx_SET (VOIDmode, out, tmp); ! tmp = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, tmp, clob)); emit_insn (tmp); } else --- 8265,8271 ---- clob = gen_rtx_CLOBBER (VOIDmode, clob); tmp = gen_rtx_SET (VOIDmode, out, tmp); ! tmp = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, copy_rtx (tmp), clob)); emit_insn (tmp); } else *************** static const struct builtin_description *** 10954,10967 **** { MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpeqss", IX86_BUILTIN_CMPEQSS, EQ, 0 }, { MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpltss", IX86_BUILTIN_CMPLTSS, LT, 0 }, { MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpless", IX86_BUILTIN_CMPLESS, LE, 0 }, - { MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpgtss", IX86_BUILTIN_CMPGTSS, LT, 1 }, - { MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpgess", IX86_BUILTIN_CMPGESS, LE, 1 }, { MASK_SSE, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpunordss", IX86_BUILTIN_CMPUNORDSS, UNORDERED, 0 }, { MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpneqss", IX86_BUILTIN_CMPNEQSS, EQ, 0 }, { MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpnltss", IX86_BUILTIN_CMPNLTSS, LT, 0 }, { MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpnless", IX86_BUILTIN_CMPNLESS, LE, 0 }, - { MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpngtss", IX86_BUILTIN_CMPNGTSS, LT, 1 }, - { MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpngess", IX86_BUILTIN_CMPNGESS, LE, 1 }, { MASK_SSE, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpordss", IX86_BUILTIN_CMPORDSS, UNORDERED, 0 }, { MASK_SSE, CODE_FOR_sminv4sf3, "__builtin_ia32_minps", IX86_BUILTIN_MINPS, 0, 0 }, --- 10982,10991 ---- *************** ix86_register_move_cost (mode, class1, c *** 12355,12371 **** enum reg_class class1, class2; { /* In case we require secondary memory, compute cost of the store followed ! by load. In case of copying from general_purpose_register we may emit ! multiple stores followed by single load causing memory size mismatch ! stall. Count this as arbitarily high cost of 20. */ if (ix86_secondary_memory_needed (class1, class2, mode, 0)) { ! int add_cost = 0; if (CLASS_MAX_NREGS (class1, mode) > CLASS_MAX_NREGS (class2, mode)) ! add_cost = 20; ! return (MEMORY_MOVE_COST (mode, class1, 0) ! + MEMORY_MOVE_COST (mode, class2, 1) + add_cost); } /* Moves between SSE/MMX and integer unit are expensive. */ if (MMX_CLASS_P (class1) != MMX_CLASS_P (class2) || SSE_CLASS_P (class1) != SSE_CLASS_P (class2)) --- 12379,12411 ---- enum reg_class class1, class2; { /* In case we require secondary memory, compute cost of the store followed ! by load. In order to avoid bad register allocation choices, we need ! for this to be *at least* as high as the symmetric MEMORY_MOVE_COST. */ ! if (ix86_secondary_memory_needed (class1, class2, mode, 0)) { ! int cost = 1; ! ! cost += MAX (MEMORY_MOVE_COST (mode, class1, 0), ! MEMORY_MOVE_COST (mode, class1, 1)); ! cost += MAX (MEMORY_MOVE_COST (mode, class2, 0), ! MEMORY_MOVE_COST (mode, class2, 1)); ! ! /* In case of copying from general_purpose_register we may emit multiple ! stores followed by single load causing memory size mismatch stall. ! Count this as arbitarily high cost of 20. */ if (CLASS_MAX_NREGS (class1, mode) > CLASS_MAX_NREGS (class2, mode)) ! cost += 20; ! ! /* In the case of FP/MMX moves, the registers actually overlap, and we ! have to switch modes in order to treat them differently. */ ! if ((MMX_CLASS_P (class1) && MAYBE_FLOAT_CLASS_P (class2)) ! || (MMX_CLASS_P (class2) && MAYBE_FLOAT_CLASS_P (class1))) ! cost += 20; ! ! return cost; } + /* Moves between SSE/MMX and integer unit are expensive. */ if (MMX_CLASS_P (class1) != MMX_CLASS_P (class2) || SSE_CLASS_P (class1) != SSE_CLASS_P (class2)) diff -Nrc3pad gcc-3.2/gcc/config/i386/i386.h gcc-3.2.1/gcc/config/i386/i386.h *** gcc-3.2/gcc/config/i386/i386.h Mon Jul 15 06:54:36 2002 --- gcc-3.2.1/gcc/config/i386/i386.h Thu Nov 7 17:46:18 2002 *************** extern int ix86_arch; *** 584,592 **** %{march=pentium-mmx:-D__i586 -D__i586__ -D__pentium -D__pentium__ \ -D__pentium__mmx__ \ %{!mcpu*:-D__tune_i586__ -D__tune_pentium__ -D__tune_pentium_mmx__}}\ ! %{march=pentiumpro|march=i686:-D__i686 -D__i686__ \ -D__pentiumpro -D__pentiumpro__ \ %{!mcpu*:-D__tune_i686__ -D__tune_pentiumpro__ }}\ %{march=k6:-D__k6 -D__k6__ %{!mcpu*:-D__tune_k6__ }}\ %{march=k6-2:-D__k6 -D__k6__ -D__k6_2__ \ %{!mcpu*:-D__tune_k6__ -D__tune_k6_2__ }}\ --- 584,596 ---- %{march=pentium-mmx:-D__i586 -D__i586__ -D__pentium -D__pentium__ \ -D__pentium__mmx__ \ %{!mcpu*:-D__tune_i586__ -D__tune_pentium__ -D__tune_pentium_mmx__}}\ ! %{march=pentiumpro|march=i686|march=pentium2|march=pentium3:-D__i686 -D__i686__ \ -D__pentiumpro -D__pentiumpro__ \ %{!mcpu*:-D__tune_i686__ -D__tune_pentiumpro__ }}\ + %{march=march=pentium2|march=pentium3: -D__pentium2 -D__pentium2__\ + %{!mcpu*:-D__tune_pentium2__ }}\ + %{march=pentium3: -D__pentium3 -D__pentium3__\ + %{!mcpu*:-D__tune_pentium3__ }}\ %{march=k6:-D__k6 -D__k6__ %{!mcpu*:-D__tune_k6__ }}\ %{march=k6-2:-D__k6 -D__k6__ -D__k6_2__ \ %{!mcpu*:-D__tune_k6__ -D__tune_k6_2__ }}\ *************** extern int ix86_arch; *** 601,607 **** %{m386|mcpu=i386:-D__tune_i386__ }\ %{m486|mcpu=i486:-D__tune_i486__ }\ %{mpentium|mcpu=pentium|mcpu=i586|mcpu=pentium-mmx:-D__tune_i586__ -D__tune_pentium__ }\ ! %{mpentiumpro|mcpu=pentiumpro|mcpu=i686|cpu=pentium2|cpu=pentium3:-D__tune_i686__ \ -D__tune_pentiumpro__ }\ %{mcpu=k6|mcpu=k6-2|mcpu=k6-3:-D__tune_k6__ }\ %{mcpu=athlon|mcpu=athlon-tbird|mcpu=athlon-4|mcpu=athlon-xp|mcpu=athlon-mp:\ --- 605,611 ---- %{m386|mcpu=i386:-D__tune_i386__ }\ %{m486|mcpu=i486:-D__tune_i486__ }\ %{mpentium|mcpu=pentium|mcpu=i586|mcpu=pentium-mmx:-D__tune_i586__ -D__tune_pentium__ }\ ! %{mpentiumpro|mcpu=pentiumpro|mcpu=i686|mcpu=pentium2|mcpu=pentium3:-D__tune_i686__ \ -D__tune_pentiumpro__ }\ %{mcpu=k6|mcpu=k6-2|mcpu=k6-3:-D__tune_k6__ }\ %{mcpu=athlon|mcpu=athlon-tbird|mcpu=athlon-4|mcpu=athlon-xp|mcpu=athlon-mp:\ *************** extern int ix86_arch; *** 609,625 **** %{mcpu=athlon-4|mcpu=athlon-xp|mcpu=athlon-mp:\ -D__tune_athlon_sse__ }\ %{mcpu=pentium4:-D__tune_pentium4__ }\ ! %{march=athlon-xp|march=athlon-mp|march=pentium3|march=pentium4:\ -D__SSE__ }\ %{march=pentium-mmx|march=k6|march=k6-2|march=k6-3\ |march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ ! |march=athlon-mp|march=pentium2|march=pentium3|march=pentium4: -D__MMX__ }\ %{march=k6-2|march=k6-3\ |march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ ! |march=athlon-mp: -D__3dNOW__ }\ %{march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ |march=athlon-mp: -D__3dNOW_A__ }\ ! %{march=pentium4: -D__SSE2__ }\ %{!march*:%{!mcpu*:%{!m386:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}}}" #ifndef CPP_CPU_SPEC --- 613,629 ---- %{mcpu=athlon-4|mcpu=athlon-xp|mcpu=athlon-mp:\ -D__tune_athlon_sse__ }\ %{mcpu=pentium4:-D__tune_pentium4__ }\ ! %{march=athlon-xp|march=athlon-mp|march=pentium3|march=pentium4|msse|msse2:\ -D__SSE__ }\ %{march=pentium-mmx|march=k6|march=k6-2|march=k6-3\ |march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ ! |march=athlon-mp|march=pentium2|march=pentium3|march=pentium4|mmx|msse|m3dnow: -D__MMX__ }\ %{march=k6-2|march=k6-3\ |march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ ! |march=athlon-mp|m3dnow: -D__3dNOW__ }\ %{march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ |march=athlon-mp: -D__3dNOW_A__ }\ ! %{march=pentium4|msse2: -D__SSE2__ }\ %{!march*:%{!mcpu*:%{!m386:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}}}" #ifndef CPP_CPU_SPEC *************** extern int ix86_arch; *** 756,763 **** #define FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN \ (ix86_preferred_stack_boundary > STACK_BOUNDARY && !TARGET_64BIT) ! /* Allocation boundary for the code of a function. */ ! #define FUNCTION_BOUNDARY 16 /* Alignment of field after `int : 0' in a structure. */ --- 760,770 ---- #define FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN \ (ix86_preferred_stack_boundary > STACK_BOUNDARY && !TARGET_64BIT) ! /* Minimum allocation boundary for the code of a function. */ ! #define FUNCTION_BOUNDARY 8 ! ! /* C++ stores the virtual bit in the lowest bit of function pointers. */ ! #define TARGET_PTRMEMFUNC_VBIT_LOCATION ptrmemfunc_vbit_in_pfn /* Alignment of field after `int : 0' in a structure. */ *************** enum reg_class *** 1581,1586 **** --- 1588,1597 ---- #define PUSH_ARGS (TARGET_PUSH_ARGS && !ACCUMULATE_OUTGOING_ARGS) + /* We want the stack and args grow in opposite directions, even if + PUSH_ARGS is 0. */ + #define PUSH_ARGS_REVERSED 1 + /* Offset of first parameter from the argument pointer register value. */ #define FIRST_PARM_OFFSET(FNDECL) 0 *************** enum ix86_builtins *** 2053,2065 **** IX86_BUILTIN_CMPEQSS, IX86_BUILTIN_CMPLTSS, IX86_BUILTIN_CMPLESS, - IX86_BUILTIN_CMPGTSS, - IX86_BUILTIN_CMPGESS, IX86_BUILTIN_CMPNEQSS, IX86_BUILTIN_CMPNLTSS, IX86_BUILTIN_CMPNLESS, - IX86_BUILTIN_CMPNGTSS, - IX86_BUILTIN_CMPNGESS, IX86_BUILTIN_CMPORDSS, IX86_BUILTIN_CMPUNORDSS, IX86_BUILTIN_CMPNESS, --- 2064,2072 ---- *************** extern int const svr4_dbx_register_map[F *** 2871,2883 **** It need not be very fast code. */ #define ASM_OUTPUT_REG_PUSH(FILE, REGNO) \ ! asm_fprintf ((FILE), "\tpush{l}\t%%e%s\n", reg_names[(REGNO)]) /* This is how to output an insn to pop a register from the stack. It need not be very fast code. */ #define ASM_OUTPUT_REG_POP(FILE, REGNO) \ ! asm_fprintf ((FILE), "\tpop{l}\t%%e%s\n", reg_names[(REGNO)]) /* This is how to output an element of a case-vector that is absolute. */ --- 2878,2902 ---- It need not be very fast code. */ #define ASM_OUTPUT_REG_PUSH(FILE, REGNO) \ ! do { \ ! if (TARGET_64BIT) \ ! asm_fprintf ((FILE), "\tpush{q}\t%%r%s\n", \ ! reg_names[(REGNO)] + (REX_INT_REGNO_P (REGNO) != 0)); \ ! else \ ! asm_fprintf ((FILE), "\tpush{l}\t%%e%s\n", reg_names[(REGNO)]); \ ! } while (0) /* This is how to output an insn to pop a register from the stack. It need not be very fast code. */ #define ASM_OUTPUT_REG_POP(FILE, REGNO) \ ! do { \ ! if (TARGET_64BIT) \ ! asm_fprintf ((FILE), "\tpop{q}\t%%r%s\n", \ ! reg_names[(REGNO)] + (REX_INT_REGNO_P (REGNO) != 0)); \ ! else \ ! asm_fprintf ((FILE), "\tpop{l}\t%%e%s\n", reg_names[(REGNO)]); \ ! } while (0) /* This is how to output an element of a case-vector that is absolute. */ diff -Nrc3pad gcc-3.2/gcc/config/i386/i386.md gcc-3.2.1/gcc/config/i386/i386.md *** gcc-3.2/gcc/config/i386/i386.md Mon Jul 15 06:54:36 2002 --- gcc-3.2.1/gcc/config/i386/i386.md Thu Oct 24 17:11:54 2002 *************** *** 5311,5317 **** (plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0") (match_operand:DI 2 "general_operand" "roiF,riF"))) (clobber (reg:CC 17))] ! "!TARGET_64BIT" "#") (define_split --- 5311,5317 ---- (plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0") (match_operand:DI 2 "general_operand" "roiF,riF"))) (clobber (reg:CC 17))] ! "!TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)" "#") (define_split *************** *** 6940,6946 **** (minus:DI (match_operand:DI 1 "nonimmediate_operand" "0,0") (match_operand:DI 2 "general_operand" "roiF,riF"))) (clobber (reg:CC 17))] ! "!TARGET_64BIT" "#") (define_split --- 6940,6946 ---- (minus:DI (match_operand:DI 1 "nonimmediate_operand" "0,0") (match_operand:DI 2 "general_operand" "roiF,riF"))) (clobber (reg:CC 17))] ! "!TARGET_64BIT && ix86_binary_operator_ok (MINUS, DImode, operands)" "#") (define_split *************** *** 19783,19789 **** [(set_attr "type" "mmx")]) (define_expand "prefetch" ! [(prefetch (match_operand:SI 0 "address_operand" "") (match_operand:SI 1 "const_int_operand" "") (match_operand:SI 2 "const_int_operand" ""))] "TARGET_PREFETCH_SSE || TARGET_3DNOW" --- 19783,19789 ---- [(set_attr "type" "mmx")]) (define_expand "prefetch" ! [(prefetch (match_operand 0 "address_operand" "") (match_operand:SI 1 "const_int_operand" "") (match_operand:SI 2 "const_int_operand" ""))] "TARGET_PREFETCH_SSE || TARGET_3DNOW" *************** *** 19795,19800 **** --- 19795,19802 ---- abort (); if (locality < 0 || locality > 3) abort (); + if (GET_MODE (operands[0]) != Pmode && GET_MODE (operands[0]) != VOIDmode) + abort (); /* Use 3dNOW prefetch in case we are asking for write prefetch not suported by SSE counterpart or the SSE prefetch is not available *************** *** 19810,19816 **** [(prefetch (match_operand:SI 0 "address_operand" "p") (const_int 0) (match_operand:SI 1 "const_int_operand" ""))] ! "TARGET_PREFETCH_SSE" { static const char * const patterns[4] = { "prefetchnta\t%a0", "prefetcht2\t%a0", "prefetcht1\t%a0", "prefetcht0\t%a0" --- 19812,19837 ---- [(prefetch (match_operand:SI 0 "address_operand" "p") (const_int 0) (match_operand:SI 1 "const_int_operand" ""))] ! "TARGET_PREFETCH_SSE && !TARGET_64BIT" ! { ! static const char * const patterns[4] = { ! "prefetchnta\t%a0", "prefetcht2\t%a0", "prefetcht1\t%a0", "prefetcht0\t%a0" ! }; ! ! int locality = INTVAL (operands[1]); ! if (locality < 0 || locality > 3) ! abort (); ! ! return patterns[locality]; ! } ! [(set_attr "type" "sse") ! (set_attr "memory" "none")]) ! ! (define_insn "*prefetch_sse_rex" ! [(prefetch (match_operand:DI 0 "address_operand" "p") ! (const_int 0) ! (match_operand:SI 1 "const_int_operand" ""))] ! "TARGET_PREFETCH_SSE && TARGET_64BIT" { static const char * const patterns[4] = { "prefetchnta\t%a0", "prefetcht2\t%a0", "prefetcht1\t%a0", "prefetcht0\t%a0" *************** *** 19828,19834 **** [(prefetch (match_operand:SI 0 "address_operand" "p") (match_operand:SI 1 "const_int_operand" "n") (const_int 3))] ! "TARGET_3DNOW" { if (INTVAL (operands[1]) == 0) return "prefetch\t%a0"; --- 19849,19869 ---- [(prefetch (match_operand:SI 0 "address_operand" "p") (match_operand:SI 1 "const_int_operand" "n") (const_int 3))] ! "TARGET_3DNOW && !TARGET_64BIT" ! { ! if (INTVAL (operands[1]) == 0) ! return "prefetch\t%a0"; ! else ! return "prefetchw\t%a0"; ! } ! [(set_attr "type" "mmx") ! (set_attr "memory" "none")]) ! ! (define_insn "*prefetch_3dnow_rex" ! [(prefetch (match_operand:DI 0 "address_operand" "p") ! (match_operand:SI 1 "const_int_operand" "n") ! (const_int 3))] ! "TARGET_3DNOW && TARGET_64BIT" { if (INTVAL (operands[1]) == 0) return "prefetch\t%a0"; diff -Nrc3pad gcc-3.2/gcc/config/i386/linux64.h gcc-3.2.1/gcc/config/i386/linux64.h *** gcc-3.2/gcc/config/i386/linux64.h Fri Jun 21 07:04:46 2002 --- gcc-3.2.1/gcc/config/i386/linux64.h Sun Oct 27 09:24:50 2002 *************** Boston, MA 02111-1307, USA. */ *** 30,35 **** --- 30,41 ---- #undef CPP_SPEC #define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT} %{!m32:-D__LONG_MAX__=9223372036854775807L}" + /* The svr4 ABI for the i386 says that records and unions are returned + in memory. In the 64bit compilation we will turn this flag off in + override_options, as we never do pcc_struct_return scheme on this target. */ + #undef DEFAULT_PCC_STRUCT_RETURN + #define DEFAULT_PCC_STRUCT_RETURN 1 + /* Provide a LINK_SPEC. Here we provide support for the special GCC options -static and -shared, which allow us to link things in one of these three modes by applying the appropriate combinations of *************** Boston, MA 02111-1307, USA. */ *** 50,70 **** #undef STARTFILE_SPEC #define STARTFILE_SPEC \ ! "%{m32:%{!shared: \ ! %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ ! %{!p:%{profile:gcrt1.o%s} %{!profile:crt1.o%s}}}} \ ! crti.o%s %{static:crtbeginT.o%s}\ ! %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}} \ ! %{!m32:%{!shared: \ ! %{pg:/usr/lib64/gcrt1.o%s} %{!pg:%{p:/usr/lib64/gcrt1.o%s} \ ! %{!p:%{profile:/usr/lib64/gcrt1.o%s} %{!profile:/usr/lib64/crt1.o%s}}}}\ ! /usr/lib64/crti.o%s %{static:crtbeginT.o%s} \ ! %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}}" #undef ENDFILE_SPEC ! #define ENDFILE_SPEC "\ ! %{m32:%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s} \ ! %{!m32:%{!shared:crtend.o%s} %{shared:crtendS.o%s} /usr/lib64/crtn.o%s}" #define MULTILIB_DEFAULTS { "m64" } --- 56,69 ---- #undef STARTFILE_SPEC #define STARTFILE_SPEC \ ! "%{!shared: \ ! %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ ! %{!p:%{profile:gcrt1.o%s} %{!profile:crt1.o%s}}}} \ ! crti.o%s %{static:crtbeginT.o%s} \ ! %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}" #undef ENDFILE_SPEC ! #define ENDFILE_SPEC "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" #define MULTILIB_DEFAULTS { "m64" } diff -Nrc3pad gcc-3.2/gcc/config/i386/mmintrin.h gcc-3.2.1/gcc/config/i386/mmintrin.h *** gcc-3.2/gcc/config/i386/mmintrin.h Tue Aug 6 18:30:43 2002 --- gcc-3.2.1/gcc/config/i386/mmintrin.h Sat Oct 19 13:51:34 2002 *************** *** 31,37 **** #define _MMINTRIN_H_INCLUDED /* The data type intended for user use. */ ! typedef unsigned long long __m64 __attribute__ ((__aligned__ (8))); /* Internal data types for implementing the intrinsics. */ typedef int __v2si __attribute__ ((__mode__ (__V2SI__))); --- 31,37 ---- #define _MMINTRIN_H_INCLUDED /* The data type intended for user use. */ ! typedef int __m64 __attribute__ ((__mode__ (__V2SI__))); /* Internal data types for implementing the intrinsics. */ typedef int __v2si __attribute__ ((__mode__ (__V2SI__))); *************** _mm_empty (void) *** 49,62 **** static __inline __m64 _mm_cvtsi32_si64 (int __i) { ! return (unsigned int) __i; } /* Convert the lower 32 bits of the __m64 object into an integer. */ static __inline int _mm_cvtsi64_si32 (__m64 __i) { ! return __i; } /* Pack the four 16-bit values from M1 into the lower four 8-bit values of --- 49,64 ---- static __inline __m64 _mm_cvtsi32_si64 (int __i) { ! long long __tmp = (unsigned int)__i; ! return (__m64) __tmp; } /* Convert the lower 32 bits of the __m64 object into an integer. */ static __inline int _mm_cvtsi64_si32 (__m64 __i) { ! long long __tmp = (long long)__i; ! return __tmp; } /* Pack the four 16-bit values from M1 into the lower four 8-bit values of *************** _mm_mullo_pi16 (__m64 __m1, __m64 __m2) *** 269,275 **** static __inline __m64 _mm_sll_pi16 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psllw ((__v4hi)__m, __count); } static __inline __m64 --- 271,277 ---- static __inline __m64 _mm_sll_pi16 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psllw ((__v4hi)__m, (long long)__count); } static __inline __m64 *************** _mm_slli_pi16 (__m64 __m, int __count) *** 282,288 **** static __inline __m64 _mm_sll_pi32 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_pslld ((__v2si)__m, __count); } static __inline __m64 --- 284,290 ---- static __inline __m64 _mm_sll_pi32 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_pslld ((__v2si)__m, (long long)__count); } static __inline __m64 *************** _mm_slli_pi32 (__m64 __m, int __count) *** 293,314 **** /* Shift the 64-bit value in M left by COUNT. */ static __inline __m64 ! _mm_sll_pi64 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psllq (__m, __count); } static __inline __m64 ! _mm_slli_pi64 (__m64 __m, int __count) { ! return (__m64) __builtin_ia32_psllq (__m, __count); } /* Shift four 16-bit values in M right by COUNT; shift in the sign bit. */ static __inline __m64 _mm_sra_pi16 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psraw ((__v4hi)__m, __count); } static __inline __m64 --- 295,316 ---- /* Shift the 64-bit value in M left by COUNT. */ static __inline __m64 ! _mm_sll_si64 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psllq ((long long)__m, (long long)__count); } static __inline __m64 ! _mm_slli_si64 (__m64 __m, int __count) { ! return (__m64) __builtin_ia32_psllq ((long long)__m, (long long)__count); } /* Shift four 16-bit values in M right by COUNT; shift in the sign bit. */ static __inline __m64 _mm_sra_pi16 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psraw ((__v4hi)__m, (long long)__count); } static __inline __m64 *************** _mm_srai_pi16 (__m64 __m, int __count) *** 321,327 **** static __inline __m64 _mm_sra_pi32 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psrad ((__v2si)__m, __count); } static __inline __m64 --- 323,329 ---- static __inline __m64 _mm_sra_pi32 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psrad ((__v2si)__m, (long long)__count); } static __inline __m64 *************** _mm_srai_pi32 (__m64 __m, int __count) *** 334,340 **** static __inline __m64 _mm_srl_pi16 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psrlw ((__v4hi)__m, __count); } static __inline __m64 --- 336,342 ---- static __inline __m64 _mm_srl_pi16 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psrlw ((__v4hi)__m, (long long)__count); } static __inline __m64 *************** _mm_srli_pi16 (__m64 __m, int __count) *** 347,353 **** static __inline __m64 _mm_srl_pi32 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psrld ((__v2si)__m, __count); } static __inline __m64 --- 349,355 ---- static __inline __m64 _mm_srl_pi32 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psrld ((__v2si)__m, (long long)__count); } static __inline __m64 *************** _mm_srli_pi32 (__m64 __m, int __count) *** 358,379 **** /* Shift the 64-bit value in M left by COUNT; shift in zeros. */ static __inline __m64 ! _mm_srl_pi64 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psrlq (__m, __count); } static __inline __m64 ! _mm_srli_pi64 (__m64 __m, int __count) { ! return (__m64) __builtin_ia32_psrlq (__m, __count); } /* Bit-wise AND the 64-bit values in M1 and M2. */ static __inline __m64 _mm_and_si64 (__m64 __m1, __m64 __m2) { ! return __builtin_ia32_pand (__m1, __m2); } /* Bit-wise complement the 64-bit value in M1 and bit-wise AND it with the --- 360,381 ---- /* Shift the 64-bit value in M left by COUNT; shift in zeros. */ static __inline __m64 ! _mm_srl_si64 (__m64 __m, __m64 __count) { ! return (__m64) __builtin_ia32_psrlq ((long long)__m, (long long)__count); } static __inline __m64 ! _mm_srli_si64 (__m64 __m, int __count) { ! return (__m64) __builtin_ia32_psrlq ((long long)__m, (long long)__count); } /* Bit-wise AND the 64-bit values in M1 and M2. */ static __inline __m64 _mm_and_si64 (__m64 __m1, __m64 __m2) { ! return (__m64) __builtin_ia32_pand ((long long)__m1, (long long)__m2); } /* Bit-wise complement the 64-bit value in M1 and bit-wise AND it with the *************** _mm_and_si64 (__m64 __m1, __m64 __m2) *** 381,401 **** static __inline __m64 _mm_andnot_si64 (__m64 __m1, __m64 __m2) { ! return __builtin_ia32_pandn (__m1, __m2); } /* Bit-wise inclusive OR the 64-bit values in M1 and M2. */ static __inline __m64 _mm_or_si64 (__m64 __m1, __m64 __m2) { ! return __builtin_ia32_por (__m1, __m2); } /* Bit-wise exclusive OR the 64-bit values in M1 and M2. */ static __inline __m64 _mm_xor_si64 (__m64 __m1, __m64 __m2) { ! return __builtin_ia32_pxor (__m1, __m2); } /* Compare eight 8-bit values. The result of the comparison is 0xFF if the --- 383,403 ---- static __inline __m64 _mm_andnot_si64 (__m64 __m1, __m64 __m2) { ! return (__m64) __builtin_ia32_pandn ((long long)__m1, (long long)__m2); } /* Bit-wise inclusive OR the 64-bit values in M1 and M2. */ static __inline __m64 _mm_or_si64 (__m64 __m1, __m64 __m2) { ! return (__m64)__builtin_ia32_por ((long long)__m1, (long long)__m2); } /* Bit-wise exclusive OR the 64-bit values in M1 and M2. */ static __inline __m64 _mm_xor_si64 (__m64 __m1, __m64 __m2) { ! return (__m64)__builtin_ia32_pxor ((long long)__m1, (long long)__m2); } /* Compare eight 8-bit values. The result of the comparison is 0xFF if the *************** _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2) *** 444,450 **** static __inline __m64 _mm_setzero_si64 (void) { ! return __builtin_ia32_mmx_zero (); } /* Creates a vector of two 32-bit values; I0 is least significant. */ --- 446,452 ---- static __inline __m64 _mm_setzero_si64 (void) { ! return (__m64)__builtin_ia32_mmx_zero (); } /* Creates a vector of two 32-bit values; I0 is least significant. */ diff -Nrc3pad gcc-3.2/gcc/config/i386/t-linux64 gcc-3.2.1/gcc/config/i386/t-linux64 *** gcc-3.2/gcc/config/i386/t-linux64 Wed May 8 23:23:20 2002 --- gcc-3.2.1/gcc/config/i386/t-linux64 Sat Oct 5 21:32:08 2002 *************** SHLIB_MAPFILES = $(srcdir)/libgcc-std.ve *** 6,15 **** MULTILIB_OPTIONS = m64/m32 MULTILIB_DIRNAMES = 64 32 LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o - - SHLIB_SLIBDIR_SUFFIXES = 64:64 32: --- 6,14 ---- MULTILIB_OPTIONS = m64/m32 MULTILIB_DIRNAMES = 64 32 + MULTILIB_OSDIRNAMES = ../lib64 ../lib LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o diff -Nrc3pad gcc-3.2/gcc/config/i386/winnt.c gcc-3.2.1/gcc/config/i386/winnt.c *** gcc-3.2/gcc/config/i386/winnt.c Mon Dec 3 19:13:32 2001 --- gcc-3.2.1/gcc/config/i386/winnt.c Mon Sep 16 22:24:43 2002 *************** ix86_handle_dll_attribute (node, name, a *** 76,81 **** --- 76,90 ---- } } + /* `extern' needn't be specified with dllimport. + Specify `extern' now and hope for the best. Sigh. */ + else if (TREE_CODE (*node) == VAR_DECL + && is_attribute_p ("dllimport", name)) + { + DECL_EXTERNAL (*node) = 1; + TREE_PUBLIC (*node) = 1; + } + return NULL_TREE; } *************** i386_pe_mark_dllimport (decl) *** 300,315 **** return; } - /* `extern' needn't be specified with dllimport. - Specify `extern' now and hope for the best. Sigh. */ - if (TREE_CODE (decl) == VAR_DECL - /* ??? Is this test for vtables needed? */ - && !DECL_VIRTUAL_P (decl)) - { - DECL_EXTERNAL (decl) = 1; - TREE_PUBLIC (decl) = 1; - } - newname = alloca (strlen (oldname) + 11); sprintf (newname, "@i._imp__%s", oldname); --- 309,314 ---- diff -Nrc3pad gcc-3.2/gcc/config/i386/xmmintrin.h gcc-3.2.1/gcc/config/i386/xmmintrin.h *** gcc-3.2/gcc/config/i386/xmmintrin.h Sat Jan 12 10:05:28 2002 --- gcc-3.2.1/gcc/config/i386/xmmintrin.h Sun Oct 27 09:28:12 2002 *************** _mm_cmple_ss (__m128 __A, __m128 __B) *** 245,257 **** static __inline __m128 _mm_cmpgt_ss (__m128 __A, __m128 __B) { ! return (__m128) __builtin_ia32_cmpgtss ((__v4sf)__A, (__v4sf)__B); } static __inline __m128 _mm_cmpge_ss (__m128 __A, __m128 __B) { ! return (__m128) __builtin_ia32_cmpgess ((__v4sf)__A, (__v4sf)__B); } static __inline __m128 --- 245,265 ---- static __inline __m128 _mm_cmpgt_ss (__m128 __A, __m128 __B) { ! return (__m128) __builtin_ia32_movss ((__v4sf) __A, ! (__v4sf) ! __builtin_ia32_cmpltss ((__v4sf) __B, ! (__v4sf) ! __A)); } static __inline __m128 _mm_cmpge_ss (__m128 __A, __m128 __B) { ! return (__m128) __builtin_ia32_movss ((__v4sf) __A, ! (__v4sf) ! __builtin_ia32_cmpless ((__v4sf) __B, ! (__v4sf) ! __A)); } static __inline __m128 *************** _mm_cmpnle_ss (__m128 __A, __m128 __B) *** 275,287 **** static __inline __m128 _mm_cmpngt_ss (__m128 __A, __m128 __B) { ! return (__m128) __builtin_ia32_cmpngtss ((__v4sf)__A, (__v4sf)__B); } static __inline __m128 _mm_cmpnge_ss (__m128 __A, __m128 __B) { ! return (__m128) __builtin_ia32_cmpngess ((__v4sf)__A, (__v4sf)__B); } static __inline __m128 --- 283,303 ---- static __inline __m128 _mm_cmpngt_ss (__m128 __A, __m128 __B) { ! return (__m128) __builtin_ia32_movss ((__v4sf) __A, ! (__v4sf) ! __builtin_ia32_cmpnltss ((__v4sf) __B, ! (__v4sf) ! __A)); } static __inline __m128 _mm_cmpnge_ss (__m128 __A, __m128 __B) { ! return (__m128) __builtin_ia32_movss ((__v4sf) __A, ! (__v4sf) ! __builtin_ia32_cmpnless ((__v4sf) __B, ! (__v4sf) ! __A)); } static __inline __m128 *************** _mm_prefetch (void *__P, enum _mm_hint _ *** 1017,1023 **** static __inline void _mm_stream_pi (__m64 *__P, __m64 __A) { ! __builtin_ia32_movntq (__P, __A); } /* Likewise. The address must be 16-byte aligned. */ --- 1033,1039 ---- static __inline void _mm_stream_pi (__m64 *__P, __m64 __A) { ! __builtin_ia32_movntq (__P, (long long)__A); } /* Likewise. The address must be 16-byte aligned. */ *************** _mm_pause (void) *** 1049,1056 **** do { \ __v4sf __r0 = (row0), __r1 = (row1), __r2 = (row2), __r3 = (row3); \ __v4sf __t0 = __builtin_ia32_shufps (__r0, __r1, 0x44); \ ! __v4sf __t1 = __builtin_ia32_shufps (__r0, __r1, 0xEE); \ ! __v4sf __t2 = __builtin_ia32_shufps (__r2, __r3, 0x44); \ __v4sf __t3 = __builtin_ia32_shufps (__r2, __r3, 0xEE); \ (row0) = __builtin_ia32_shufps (__t0, __t1, 0x88); \ (row1) = __builtin_ia32_shufps (__t0, __t1, 0xDD); \ --- 1065,1072 ---- do { \ __v4sf __r0 = (row0), __r1 = (row1), __r2 = (row2), __r3 = (row3); \ __v4sf __t0 = __builtin_ia32_shufps (__r0, __r1, 0x44); \ ! __v4sf __t2 = __builtin_ia32_shufps (__r0, __r1, 0xEE); \ ! __v4sf __t1 = __builtin_ia32_shufps (__r2, __r3, 0x44); \ __v4sf __t3 = __builtin_ia32_shufps (__r2, __r3, 0xEE); \ (row0) = __builtin_ia32_shufps (__t0, __t1, 0x88); \ (row1) = __builtin_ia32_shufps (__t0, __t1, 0xDD); \ diff -Nrc3pad gcc-3.2/gcc/config/m68hc11/m68hc11.md gcc-3.2.1/gcc/config/m68hc11/m68hc11.md *** gcc-3.2/gcc/config/m68hc11/m68hc11.md Fri Jul 12 20:43:54 2002 --- gcc-3.2.1/gcc/config/m68hc11/m68hc11.md Sat Sep 14 12:06:58 2002 *************** *** 651,657 **** ") (define_insn "movdi_internal" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=uS,U,!u,U,m,m,!u") (match_operand:DI 1 "general_operand" "K,iU,iU,!u,mi,!u,!mu")) (clobber (match_scratch:HI 2 "=X,&d,&d,&d,&d,&d,&d"))] "" --- 651,657 ---- ") (define_insn "movdi_internal" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=ou,U,!u,U,m,m,!u") (match_operand:DI 1 "general_operand" "K,iU,iU,!u,mi,!u,!mu")) (clobber (match_scratch:HI 2 "=X,&d,&d,&d,&d,&d,&d"))] "" *************** *** 687,693 **** ") (define_insn "movdf_internal" ! [(set (match_operand:DF 0 "nonimmediate_operand" "=uS,U,!u,U,m,m,!u") (match_operand:DF 1 "general_operand" "G,iU,iU,!u,mi,!u,!mu")) (clobber (match_scratch:HI 2 "=X,&d,&d,&d,&d,&d,&d"))] "" --- 687,693 ---- ") (define_insn "movdf_internal" ! [(set (match_operand:DF 0 "nonimmediate_operand" "=ou,U,!u,U,m,m,!u") (match_operand:DF 1 "general_operand" "G,iU,iU,!u,mi,!u,!mu")) (clobber (match_scratch:HI 2 "=X,&d,&d,&d,&d,&d,&d"))] "" *************** *** 732,738 **** ") (define_insn "movsi_internal" ! [(set (match_operand:SI 0 "nonimmediate_operand" "=uS,mu,?D,m,?D,?u,?u,!u,D") (match_operand:SI 1 "general_operand" "K,imu,im,?D,!u,?D,mi,!u,!D")) (clobber (match_scratch:HI 2 "=X,&d,X,X,X,X,&d,&d,X"))] "" --- 732,738 ---- ") (define_insn "movsi_internal" ! [(set (match_operand:SI 0 "nonimmediate_operand" "=ou,mu,?D,m,?D,?u,?u,!u,D") (match_operand:SI 1 "general_operand" "K,imu,im,?D,!u,?D,mi,!u,!D")) (clobber (match_scratch:HI 2 "=X,&d,X,X,X,X,&d,&d,X"))] "" *************** *** 768,774 **** ") (define_insn "movsf_internal" ! [(set (match_operand:SF 0 "nonimmediate_operand" "=S!u,m,D,m,D,!u,!u,!u,D") (match_operand:SF 1 "general_operand" "G,im,im,D,!u,D,mi,!u,!D")) (clobber (match_scratch:HI 2 "=X,&d,X,X,X,X,&d,&d,X"))] "" --- 768,774 ---- ") (define_insn "movsf_internal" ! [(set (match_operand:SF 0 "nonimmediate_operand" "=o!u,m,D,m,D,!u,!u,!u,D") (match_operand:SF 1 "general_operand" "G,im,im,D,!u,D,mi,!u,!D")) (clobber (match_scratch:HI 2 "=X,&d,X,X,X,X,&d,&d,X"))] "" diff -Nrc3pad gcc-3.2/gcc/config/m68k/t-crtstuff gcc-3.2.1/gcc/config/m68k/t-crtstuff *** gcc-3.2/gcc/config/m68k/t-crtstuff Tue Sep 14 09:52:09 1999 --- gcc-3.2.1/gcc/config/m68k/t-crtstuff Mon Nov 11 06:01:39 2002 *************** *** 1,11 **** - # from ../t-svr4 - EXTRA_PARTS=crtbegin.o crtend.o crti.o crtn.o - # Add flags here as required. CRTSTUFF_T_CFLAGS = # Assemble startup files. ! crti.o: $(srcdir)/config/m68k/crti.s $(GCC_PASSES) ! $(GCC_FOR_TARGET) -c -o crti.o $(srcdir)/config/m68k/crti.s ! crtn.o: $(srcdir)/config/m68k/crtn.s $(GCC_PASSES) ! $(GCC_FOR_TARGET) -c -o crtn.o $(srcdir)/config/m68k/crtn.s --- 1,8 ---- # Add flags here as required. CRTSTUFF_T_CFLAGS = # Assemble startup files. ! $(T)crti.o: $(srcdir)/config/m68k/crti.s $(GCC_PASSES) ! $(GCC_FOR_TARGET) -c -o $(T)crti.o $(srcdir)/config/m68k/crti.s ! $(T)crtn.o: $(srcdir)/config/m68k/crtn.s $(GCC_PASSES) ! $(GCC_FOR_TARGET) -c -o $(T)crtn.o $(srcdir)/config/m68k/crtn.s diff -Nrc3pad gcc-3.2/gcc/config/mips/mips.md gcc-3.2.1/gcc/config/mips/mips.md *** gcc-3.2/gcc/config/mips/mips.md Wed Apr 24 17:40:50 2002 --- gcc-3.2.1/gcc/config/mips/mips.md Mon Nov 11 05:57:14 2002 *************** move\\t%0,%z4\\n\\ *** 4882,4888 **** if ((INTVAL (offset) & 7) == 0 && (mem_addr == stack_pointer_rtx || mem_addr == frame_pointer_rtx)) ! return \"sd\\t%1,%0\"; return \"usd\\t%z1,%0\"; }" --- 4882,4888 ---- if ((INTVAL (offset) & 7) == 0 && (mem_addr == stack_pointer_rtx || mem_addr == frame_pointer_rtx)) ! return \"sd\\t%z1,%0\"; return \"usd\\t%z1,%0\"; }" diff -Nrc3pad gcc-3.2/gcc/config/mips/t-iris6 gcc-3.2.1/gcc/config/mips/t-iris6 *** gcc-3.2/gcc/config/mips/t-iris6 Fri May 10 15:22:05 2002 --- gcc-3.2.1/gcc/config/mips/t-iris6 Tue Nov 12 11:14:07 2002 *************** *** 4,9 **** --- 4,10 ---- MULTILIB_OPTIONS=mabi=n32/mabi=64 MULTILIB_DIRNAMES= MULTILIB_MATCHES= + MULTILIB_OSDIRNAMES=. mabi=64 LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib *************** SHLIB_NAME = @shlib_dir@@shlib_so_name@. *** 22,28 **** SHLIB_MAP = @shlib_map_file@ SHLIB_OBJS = @shlib_objs@ SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ - SHLIB_SLIBDIR_SUFFIXES = mabi=64:/mabi=64 mabi=n32: SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ -Wl,-soname,$(SHLIB_SONAME) \ --- 23,28 ---- diff -Nrc3pad gcc-3.2/gcc/config/rs6000/linux64.h gcc-3.2.1/gcc/config/rs6000/linux64.h *** gcc-3.2/gcc/config/rs6000/linux64.h Thu Aug 8 17:52:40 2002 --- gcc-3.2.1/gcc/config/rs6000/linux64.h Sat Sep 14 00:26:39 2002 *************** Boston, MA 02111-1307, USA. */ *** 37,42 **** --- 37,48 ---- #undef ASM_DEFAULT_SPEC #define ASM_DEFAULT_SPEC "-mppc64" + #undef ASM_SPEC + #define ASM_SPEC "%{.s: %{mregnames} %{mno-regnames}} \ + %{.S: %{mregnames} %{mno-regnames}} \ + %{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian} \ + %{v:-V} %{Qy:} %{!Qn:-Qy} -a64 %(asm_cpu) %{Wa,*:%*}" + /* 64-bit PowerPC Linux always has a TOC. */ #undef TARGET_NO_TOC #define TARGET_NO_TOC 0 *************** Boston, MA 02111-1307, USA. */ *** 65,70 **** --- 71,77 ---- #define USER_LABEL_PREFIX "" /* AIX word-aligns FP doubles but doubleword-aligns 64-bit ints. */ + #undef ADJUST_FIELD_ALIGN #define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ (TYPE_MODE (TREE_CODE (TREE_TYPE (FIELD)) == ARRAY_TYPE \ ? get_inner_array_type (FIELD) \ *************** do \ *** 327,329 **** --- 334,382 ---- sym_lineno += 1; \ } \ while (0) + + /* Similarly, we want the function code label here. */ + #define DBX_OUTPUT_BRAC(FILE, NAME, BRAC) \ + do \ + { \ + const char *flab; \ + fprintf (FILE, "%s%d,0,0,", ASM_STABN_OP, BRAC); \ + assemble_name (FILE, NAME); \ + putc ('-', FILE); \ + if (current_function_func_begin_label != NULL_TREE) \ + flab = IDENTIFIER_POINTER (current_function_func_begin_label); \ + else \ + { \ + putc ('.', FILE); \ + flab = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \ + } \ + assemble_name (FILE, flab); \ + putc ('\n', FILE); \ + } \ + while (0) + + #define DBX_OUTPUT_LBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_LBRAC) + #define DBX_OUTPUT_RBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_RBRAC) + + /* Another case where we want the dot name. */ + #define DBX_OUTPUT_NFUN(FILE, LSCOPE, DECL) \ + do \ + { \ + fprintf (FILE, "%s\"\",%d,0,0,", ASM_STABS_OP, N_FUN); \ + assemble_name (FILE, LSCOPE); \ + fputs ("-.", FILE); \ + assemble_name (FILE, XSTR (XEXP (DECL_RTL (DECL), 0), 0)); \ + putc ('\n', FILE); \ + } \ + while (0) + + /* Override sysv4.h as these are ABI_V4 only. */ + #undef ASM_OUTPUT_REG_PUSH + #undef ASM_OUTPUT_REG_POP + + /* 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. */ + #undef ASM_PREFERRED_EH_DATA_FORMAT + #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \ + (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_udata8) diff -Nrc3pad gcc-3.2/gcc/config/rs6000/rs6000.c gcc-3.2.1/gcc/config/rs6000/rs6000.c *** gcc-3.2/gcc/config/rs6000/rs6000.c Thu Aug 8 14:51:47 2002 --- gcc-3.2.1/gcc/config/rs6000/rs6000.c Thu Nov 7 07:04:20 2002 *************** static int rs6000_sr_alias_set; *** 120,126 **** static void rs6000_add_gc_roots PARAMS ((void)); static int num_insns_constant_wide PARAMS ((HOST_WIDE_INT)); - static rtx expand_block_move_mem PARAMS ((enum machine_mode, rtx, rtx)); static void validate_condition_mode PARAMS ((enum rtx_code, enum machine_mode)); static rtx rs6000_generate_compare PARAMS ((enum rtx_code)); --- 120,125 ---- *************** rs6000_legitimate_address (mode, x, reg_ *** 2012,2017 **** --- 2011,2017 ---- if (LEGITIMATE_INDIRECT_ADDRESS_P (x, reg_ok_strict)) return 1; if ((GET_CODE (x) == PRE_INC || GET_CODE (x) == PRE_DEC) + && !ALTIVEC_VECTOR_MODE (mode) && TARGET_UPDATE && LEGITIMATE_INDIRECT_ADDRESS_P (XEXP (x, 0), reg_ok_strict)) return 1; *************** altivec_init_builtins (void) *** 4909,4929 **** } - /* Generate a memory reference for expand_block_move, copying volatile, - and other bits from an original memory reference. */ - - static rtx - expand_block_move_mem (mode, addr, orig_mem) - enum machine_mode mode; - rtx addr; - rtx orig_mem; - { - rtx mem = gen_rtx_MEM (mode, addr); - - MEM_COPY_ATTRIBUTES (mem, orig_mem); - return mem; - } - /* Expand a block move operation, and return 1 if successful. Return 0 if we should let the compiler generate normal code. --- 4909,4914 ---- *************** expand_block_move (operands) *** 4946,4959 **** int align; int bytes; int offset; - int num_reg; - int i; - rtx src_reg; - rtx dest_reg; - rtx src_addr; - rtx dest_addr; - rtx tmp_reg; - rtx stores[MAX_MOVE_REG]; int move_bytes; /* If this is not a fixed size move, just call memcpy */ --- 4931,4936 ---- *************** expand_block_move (operands) *** 4975,4988 **** if (bytes > (TARGET_POWERPC64 ? 64 : 32)) return 0; - /* Move the address into scratch registers. */ - dest_reg = copy_addr_to_reg (XEXP (orig_dest, 0)); - src_reg = copy_addr_to_reg (XEXP (orig_src, 0)); - if (TARGET_STRING) /* string instructions are available */ { ! for ( ; bytes > 0; bytes -= move_bytes) { if (bytes > 24 /* move up to 32 bytes at a time */ && ! fixed_regs[5] && ! fixed_regs[6] --- 4952,4968 ---- if (bytes > (TARGET_POWERPC64 ? 64 : 32)) return 0; if (TARGET_STRING) /* string instructions are available */ { ! for (offset = 0; bytes > 0; offset += move_bytes, bytes -= move_bytes) { + union { + rtx (*movstrsi) PARAMS ((rtx, rtx, rtx, rtx)); + rtx (*mov) PARAMS ((rtx, rtx)); + } gen_func; + enum machine_mode mode = BLKmode; + rtx src, dest; + if (bytes > 24 /* move up to 32 bytes at a time */ && ! fixed_regs[5] && ! fixed_regs[6] *************** expand_block_move (operands) *** 4994,5008 **** && ! fixed_regs[12]) { move_bytes = (bytes > 32) ? 32 : bytes; ! emit_insn (gen_movstrsi_8reg (expand_block_move_mem (BLKmode, ! dest_reg, ! orig_dest), ! expand_block_move_mem (BLKmode, ! src_reg, ! orig_src), ! GEN_INT ((move_bytes == 32) ! ? 0 : move_bytes), ! align_rtx)); } else if (bytes > 16 /* move up to 24 bytes at a time */ && ! fixed_regs[5] --- 4974,4980 ---- && ! fixed_regs[12]) { move_bytes = (bytes > 32) ? 32 : bytes; ! gen_func.movstrsi = gen_movstrsi_8reg; } else if (bytes > 16 /* move up to 24 bytes at a time */ && ! fixed_regs[5] *************** expand_block_move (operands) *** 5013,5026 **** && ! fixed_regs[10]) { move_bytes = (bytes > 24) ? 24 : bytes; ! emit_insn (gen_movstrsi_6reg (expand_block_move_mem (BLKmode, ! dest_reg, ! orig_dest), ! expand_block_move_mem (BLKmode, ! src_reg, ! orig_src), ! GEN_INT (move_bytes), ! align_rtx)); } else if (bytes > 8 /* move up to 16 bytes at a time */ && ! fixed_regs[5] --- 4985,4991 ---- && ! fixed_regs[10]) { move_bytes = (bytes > 24) ? 24 : bytes; ! gen_func.movstrsi = gen_movstrsi_6reg; } else if (bytes > 8 /* move up to 16 bytes at a time */ && ! fixed_regs[5] *************** expand_block_move (operands) *** 5029,5042 **** && ! fixed_regs[8]) { move_bytes = (bytes > 16) ? 16 : bytes; ! emit_insn (gen_movstrsi_4reg (expand_block_move_mem (BLKmode, ! dest_reg, ! orig_dest), ! expand_block_move_mem (BLKmode, ! src_reg, ! orig_src), ! GEN_INT (move_bytes), ! align_rtx)); } else if (bytes >= 8 && TARGET_POWERPC64 /* 64-bit loads and stores require word-aligned --- 4994,5000 ---- && ! fixed_regs[8]) { move_bytes = (bytes > 16) ? 16 : bytes; ! gen_func.movstrsi = gen_movstrsi_4reg; } else if (bytes >= 8 && TARGET_POWERPC64 /* 64-bit loads and stores require word-aligned *************** expand_block_move (operands) *** 5044,5151 **** && (align >= 8 || (! STRICT_ALIGNMENT && align >= 4))) { move_bytes = 8; ! tmp_reg = gen_reg_rtx (DImode); ! emit_move_insn (tmp_reg, ! expand_block_move_mem (DImode, ! src_reg, orig_src)); ! emit_move_insn (expand_block_move_mem (DImode, ! dest_reg, orig_dest), ! tmp_reg); } else if (bytes > 4 && !TARGET_POWERPC64) { /* move up to 8 bytes at a time */ move_bytes = (bytes > 8) ? 8 : bytes; ! emit_insn (gen_movstrsi_2reg (expand_block_move_mem (BLKmode, ! dest_reg, ! orig_dest), ! expand_block_move_mem (BLKmode, ! src_reg, ! orig_src), ! GEN_INT (move_bytes), ! align_rtx)); } else if (bytes >= 4 && (align >= 4 || ! STRICT_ALIGNMENT)) { /* move 4 bytes */ move_bytes = 4; ! tmp_reg = gen_reg_rtx (SImode); ! emit_move_insn (tmp_reg, ! expand_block_move_mem (SImode, ! src_reg, orig_src)); ! emit_move_insn (expand_block_move_mem (SImode, ! dest_reg, orig_dest), ! tmp_reg); } else if (bytes == 2 && (align >= 2 || ! STRICT_ALIGNMENT)) { /* move 2 bytes */ move_bytes = 2; ! tmp_reg = gen_reg_rtx (HImode); ! emit_move_insn (tmp_reg, ! expand_block_move_mem (HImode, ! src_reg, orig_src)); ! emit_move_insn (expand_block_move_mem (HImode, ! dest_reg, orig_dest), ! tmp_reg); } else if (bytes == 1) /* move 1 byte */ { move_bytes = 1; ! tmp_reg = gen_reg_rtx (QImode); ! emit_move_insn (tmp_reg, ! expand_block_move_mem (QImode, ! src_reg, orig_src)); ! emit_move_insn (expand_block_move_mem (QImode, ! dest_reg, orig_dest), ! tmp_reg); } else { /* move up to 4 bytes at a time */ move_bytes = (bytes > 4) ? 4 : bytes; ! emit_insn (gen_movstrsi_1reg (expand_block_move_mem (BLKmode, ! dest_reg, ! orig_dest), ! expand_block_move_mem (BLKmode, ! src_reg, ! orig_src), ! GEN_INT (move_bytes), ! align_rtx)); } ! if (bytes > move_bytes) { ! if (! TARGET_POWERPC64) { ! emit_insn (gen_addsi3 (src_reg, src_reg, ! GEN_INT (move_bytes))); ! emit_insn (gen_addsi3 (dest_reg, dest_reg, ! GEN_INT (move_bytes))); } ! else { ! emit_insn (gen_adddi3 (src_reg, src_reg, ! GEN_INT (move_bytes))); ! emit_insn (gen_adddi3 (dest_reg, dest_reg, ! GEN_INT (move_bytes))); } } } } else /* string instructions not available */ { ! num_reg = offset = 0; ! for ( ; bytes > 0; (bytes -= move_bytes), (offset += move_bytes)) { ! /* Calculate the correct offset for src/dest */ ! if (offset == 0) ! { ! src_addr = src_reg; ! dest_addr = dest_reg; ! } ! else ! { ! src_addr = plus_constant (src_reg, offset); ! dest_addr = plus_constant (dest_reg, offset); ! } /* Generate the appropriate load and store, saving the stores for later. */ --- 5002,5085 ---- && (align >= 8 || (! STRICT_ALIGNMENT && align >= 4))) { move_bytes = 8; ! mode = DImode; ! gen_func.mov = gen_movdi; } else if (bytes > 4 && !TARGET_POWERPC64) { /* move up to 8 bytes at a time */ move_bytes = (bytes > 8) ? 8 : bytes; ! gen_func.movstrsi = gen_movstrsi_2reg; } else if (bytes >= 4 && (align >= 4 || ! STRICT_ALIGNMENT)) { /* move 4 bytes */ move_bytes = 4; ! mode = SImode; ! gen_func.mov = gen_movsi; } else if (bytes == 2 && (align >= 2 || ! STRICT_ALIGNMENT)) { /* move 2 bytes */ move_bytes = 2; ! mode = HImode; ! gen_func.mov = gen_movhi; } else if (bytes == 1) /* move 1 byte */ { move_bytes = 1; ! mode = QImode; ! gen_func.mov = gen_movqi; } else { /* move up to 4 bytes at a time */ move_bytes = (bytes > 4) ? 4 : bytes; ! gen_func.movstrsi = gen_movstrsi_1reg; } ! src = adjust_address (orig_src, mode, offset); ! dest = adjust_address (orig_dest, mode, offset); ! ! if (mode == BLKmode) { ! /* Move the address into scratch registers. The movstrsi ! patterns require zero offset. */ ! if (!REG_P (XEXP (src, 0))) { ! rtx src_reg = copy_addr_to_reg (XEXP (src, 0)); ! src = replace_equiv_address (src, src_reg); } ! set_mem_size (src, GEN_INT (move_bytes)); ! ! if (!REG_P (XEXP (dest, 0))) { ! rtx dest_reg = copy_addr_to_reg (XEXP (dest, 0)); ! dest = replace_equiv_address (dest, dest_reg); } + set_mem_size (dest, GEN_INT (move_bytes)); + + emit_insn ((*gen_func.movstrsi) (dest, src, + GEN_INT (move_bytes & 31), + align_rtx)); + } + else + { + rtx tmp_reg = gen_reg_rtx (mode); + + emit_insn ((*gen_func.mov) (tmp_reg, src)); + emit_insn ((*gen_func.mov) (dest, tmp_reg)); } } } else /* string instructions not available */ { ! rtx stores[MAX_MOVE_REG]; ! int num_reg = 0; ! int i; ! ! for (offset = 0; bytes > 0; offset += move_bytes, bytes -= move_bytes) { ! rtx (*gen_mov_func) PARAMS ((rtx, rtx)); ! enum machine_mode mode; ! rtx src, dest, tmp_reg; /* Generate the appropriate load and store, saving the stores for later. */ *************** expand_block_move (operands) *** 5155,5210 **** && (align >= 8 || (! STRICT_ALIGNMENT && align >= 4))) { move_bytes = 8; ! tmp_reg = gen_reg_rtx (DImode); ! emit_insn (gen_movdi (tmp_reg, ! expand_block_move_mem (DImode, ! src_addr, ! orig_src))); ! stores[num_reg++] = gen_movdi (expand_block_move_mem (DImode, ! dest_addr, ! orig_dest), ! tmp_reg); } else if (bytes >= 4 && (align >= 4 || ! STRICT_ALIGNMENT)) { move_bytes = 4; ! tmp_reg = gen_reg_rtx (SImode); ! emit_insn (gen_movsi (tmp_reg, ! expand_block_move_mem (SImode, ! src_addr, ! orig_src))); ! stores[num_reg++] = gen_movsi (expand_block_move_mem (SImode, ! dest_addr, ! orig_dest), ! tmp_reg); } else if (bytes >= 2 && (align >= 2 || ! STRICT_ALIGNMENT)) { move_bytes = 2; ! tmp_reg = gen_reg_rtx (HImode); ! emit_insn (gen_movhi (tmp_reg, ! expand_block_move_mem (HImode, ! src_addr, ! orig_src))); ! stores[num_reg++] = gen_movhi (expand_block_move_mem (HImode, ! dest_addr, ! orig_dest), ! tmp_reg); } else { move_bytes = 1; ! tmp_reg = gen_reg_rtx (QImode); ! emit_insn (gen_movqi (tmp_reg, ! expand_block_move_mem (QImode, ! src_addr, ! orig_src))); ! stores[num_reg++] = gen_movqi (expand_block_move_mem (QImode, ! dest_addr, ! orig_dest), ! tmp_reg); } if (num_reg >= MAX_MOVE_REG) { for (i = 0; i < num_reg; i++) --- 5089,5123 ---- && (align >= 8 || (! STRICT_ALIGNMENT && align >= 4))) { move_bytes = 8; ! mode = DImode; ! gen_mov_func = gen_movdi; } else if (bytes >= 4 && (align >= 4 || ! STRICT_ALIGNMENT)) { move_bytes = 4; ! mode = SImode; ! gen_mov_func = gen_movsi; } else if (bytes >= 2 && (align >= 2 || ! STRICT_ALIGNMENT)) { move_bytes = 2; ! mode = HImode; ! gen_mov_func = gen_movhi; } else { move_bytes = 1; ! mode = QImode; ! gen_mov_func = gen_movqi; } + src = adjust_address (orig_src, mode, offset); + dest = adjust_address (orig_dest, mode, offset); + tmp_reg = gen_reg_rtx (mode); + + emit_insn ((*gen_mov_func) (tmp_reg, src)); + stores[num_reg++] = (*gen_mov_func) (dest, tmp_reg); + if (num_reg >= MAX_MOVE_REG) { for (i = 0; i < num_reg; i++) *************** rs6000_reverse_condition (mode, code) *** 7008,7014 **** { /* Reversal of FP compares takes care -- an ordered compare becomes an unordered compare and vice versa. */ ! if (mode == CCFPmode) return reverse_condition_maybe_unordered (code); else return reverse_condition (code); --- 6921,6927 ---- { /* Reversal of FP compares takes care -- an ordered compare becomes an unordered compare and vice versa. */ ! if (mode == CCFPmode && !flag_unsafe_math_optimizations) return reverse_condition_maybe_unordered (code); else return reverse_condition (code); *************** output_cbranch (op, label, reversed, ins *** 7161,7167 **** reverse_condition_maybe_unordered here always but this makes the resulting assembler clearer. */ if (really_reversed) ! code = rs6000_reverse_condition (mode, code); switch (code) { --- 7074,7087 ---- reverse_condition_maybe_unordered here always but this makes the resulting assembler clearer. */ if (really_reversed) ! { ! /* Reversal of FP compares takes care -- an ordered compare ! becomes an unordered compare and vice versa. */ ! if (mode == CCFPmode) ! code = reverse_condition_maybe_unordered (code); ! else ! code = reverse_condition (code); ! } switch (code) { *************** first_reg_to_save () *** 7434,7486 **** || (DEFAULT_ABI == ABI_DARWIN && flag_pic))))) break; - if (current_function_profile) - { - /* AIX must save/restore every register that contains a parameter - before/after the .__mcount call plus an additional register - for the static chain, if needed; use registers from 30 down to 22 - to do this. */ - if (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) - { - int last_parm_reg, profile_first_reg; - - /* Figure out last used parameter register. The proper thing - to do is to walk incoming args of the function. A function - might have live parameter registers even if it has no - incoming args. */ - for (last_parm_reg = 10; - last_parm_reg > 2 && ! regs_ever_live [last_parm_reg]; - last_parm_reg--) - ; - - /* Calculate first reg for saving parameter registers - and static chain. - Skip reg 31 which may contain the frame pointer. */ - profile_first_reg = (33 - last_parm_reg - - (current_function_needs_context ? 1 : 0)); - #if TARGET_MACHO - /* Need to skip another reg to account for R31 being PICBASE - (when flag_pic is set) or R30 being used as the frame - pointer (when flag_pic is not set). */ - --profile_first_reg; - #endif - /* Do not save frame pointer if no parameters needs to be saved. */ - if (profile_first_reg == 31) - profile_first_reg = 32; - - if (first_reg > profile_first_reg) - first_reg = profile_first_reg; - } - - /* SVR4 may need one register to preserve the static chain. */ - else if (current_function_needs_context) - { - /* Skip reg 31 which may contain the frame pointer. */ - if (first_reg > 30) - first_reg = 30; - } - } - #if TARGET_MACHO if (flag_pic && current_function_uses_pic_offset_table && (first_reg > RS6000_PIC_OFFSET_TABLE_REGNUM)) --- 7354,7359 ---- *************** rs6000_emit_load_toc_table (fromprolog) *** 8124,8214 **** rtx dest; dest = gen_rtx_REG (Pmode, RS6000_PIC_OFFSET_TABLE_REGNUM); ! if (TARGET_ELF && DEFAULT_ABI != ABI_AIX) { ! if (DEFAULT_ABI == ABI_V4 && flag_pic == 1) { ! rtx temp = (fromprolog ! ? gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM) ! : gen_reg_rtx (Pmode)); ! rs6000_maybe_dead (emit_insn (gen_load_toc_v4_pic_si (temp))); ! rs6000_maybe_dead (emit_move_insn (dest, temp)); } - else if (flag_pic == 2) - { - char buf[30]; - rtx tempLR = (fromprolog - ? gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM) - : gen_reg_rtx (Pmode)); - rtx temp0 = (fromprolog - ? gen_rtx_REG (Pmode, 0) - : gen_reg_rtx (Pmode)); - rtx symF; ! /* possibly create the toc section */ ! if (! toc_initialized) ! { ! toc_section (); ! function_section (current_function_decl); ! } ! ! if (fromprolog) ! { ! rtx symL; ! ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno); ! symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCL", rs6000_pic_labelno); ! symL = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! rs6000_maybe_dead (emit_insn (gen_load_toc_v4_PIC_1 (tempLR, ! symF))); ! rs6000_maybe_dead (emit_move_insn (dest, tempLR)); ! rs6000_maybe_dead (emit_insn (gen_load_toc_v4_PIC_2 (temp0, dest, ! symL, ! symF))); ! } ! else ! { ! rtx tocsym; ! static int reload_toc_labelno = 0; ! tocsym = gen_rtx_SYMBOL_REF (Pmode, toc_label_name); ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCG", reload_toc_labelno++); ! symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! rs6000_maybe_dead (emit_insn (gen_load_toc_v4_PIC_1b (tempLR, ! symF, ! tocsym))); ! rs6000_maybe_dead (emit_move_insn (dest, tempLR)); ! rs6000_maybe_dead (emit_move_insn (temp0, ! gen_rtx_MEM (Pmode, dest))); ! } ! rs6000_maybe_dead (emit_insn (gen_addsi3 (dest, temp0, dest))); ! } ! else if (flag_pic == 0 && TARGET_MINIMAL_TOC) ! { ! /* This is for AIX code running in non-PIC ELF. */ ! char buf[30]; ! rtx realsym; ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCTOC", 1); ! realsym = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! ! rs6000_maybe_dead (emit_insn (gen_elf_high (dest, realsym))); ! rs6000_maybe_dead (emit_insn (gen_elf_low (dest, dest, realsym))); } ! else ! abort (); } ! else { if (TARGET_32BIT) ! rs6000_maybe_dead (emit_insn (gen_load_toc_aix_si (dest))); else ! rs6000_maybe_dead (emit_insn (gen_load_toc_aix_di (dest))); } } int --- 7997,8084 ---- rtx dest; dest = gen_rtx_REG (Pmode, RS6000_PIC_OFFSET_TABLE_REGNUM); ! if (TARGET_ELF && DEFAULT_ABI == ABI_V4 && flag_pic == 1) { ! rtx temp = (fromprolog ! ? gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM) ! : gen_reg_rtx (Pmode)); ! rs6000_maybe_dead (emit_insn (gen_load_toc_v4_pic_si (temp))); ! rs6000_maybe_dead (emit_move_insn (dest, temp)); ! } ! else if (TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2) ! { ! char buf[30]; ! rtx tempLR = (fromprolog ! ? gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM) ! : gen_reg_rtx (Pmode)); ! rtx temp0 = (fromprolog ! ? gen_rtx_REG (Pmode, 0) ! : gen_reg_rtx (Pmode)); ! rtx symF; ! ! /* possibly create the toc section */ ! if (! toc_initialized) { ! toc_section (); ! function_section (current_function_decl); } ! if (fromprolog) ! { ! rtx symL; ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno); ! symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCL", rs6000_pic_labelno); ! symL = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! rs6000_maybe_dead (emit_insn (gen_load_toc_v4_PIC_1 (tempLR, ! symF))); ! rs6000_maybe_dead (emit_move_insn (dest, tempLR)); ! rs6000_maybe_dead (emit_insn (gen_load_toc_v4_PIC_2 (temp0, dest, ! symL, ! symF))); ! } ! else ! { ! rtx tocsym; ! static int reload_toc_labelno = 0; ! tocsym = gen_rtx_SYMBOL_REF (Pmode, toc_label_name); ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCG", reload_toc_labelno++); ! symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! ! rs6000_maybe_dead (emit_insn (gen_load_toc_v4_PIC_1b (tempLR, ! symF, ! tocsym))); ! rs6000_maybe_dead (emit_move_insn (dest, tempLR)); ! rs6000_maybe_dead (emit_move_insn (temp0, ! gen_rtx_MEM (Pmode, dest))); } ! rs6000_maybe_dead (emit_insn (gen_addsi3 (dest, temp0, dest))); } ! else if (TARGET_ELF && !TARGET_AIX && flag_pic == 0 && TARGET_MINIMAL_TOC) ! { ! /* This is for AIX code running in non-PIC ELF32. */ ! char buf[30]; ! rtx realsym; ! ASM_GENERATE_INTERNAL_LABEL (buf, "LCTOC", 1); ! realsym = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf)); ! ! rs6000_maybe_dead (emit_insn (gen_elf_high (dest, realsym))); ! rs6000_maybe_dead (emit_insn (gen_elf_low (dest, dest, realsym))); ! } ! else if (DEFAULT_ABI == ABI_AIX) { if (TARGET_32BIT) ! rs6000_maybe_dead (emit_insn (gen_load_toc_aix_si (dest))); else ! rs6000_maybe_dead (emit_insn (gen_load_toc_aix_di (dest))); } + else + abort (); } int *************** output_mi_thunk (file, thunk_fndecl, del *** 9735,9757 **** fprintf (file, "\taddi %s,%s,%d\n", this_reg, this_reg, delta); } /* Large constants that can be done by one addis instruction. */ ! else if ((delta & 0xffff) == 0 && num_insns_constant_wide (delta) == 1) asm_fprintf (file, "\t{cau|addis} %s,%s,%d\n", this_reg, this_reg, delta >> 16); /* 32-bit constants that can be done by an add and addis instruction. */ ! else if (TARGET_32BIT || num_insns_constant_wide (delta) == 1) { /* Break into two pieces, propagating the sign bit from the low word to the upper word. */ ! int delta_high = delta >> 16; ! int delta_low = delta & 0xffff; ! if ((delta_low & 0x8000) != 0) ! { ! delta_high++; ! delta_low = (delta_low ^ 0x8000) - 0x8000; /* sign extend */ ! } asm_fprintf (file, "\t{cau|addis} %s,%s,%d\n", this_reg, this_reg, delta_high); --- 9605,9626 ---- fprintf (file, "\taddi %s,%s,%d\n", this_reg, this_reg, delta); } + /* 64-bit constants. If "int" is 32 bits, we'll never hit this abort. */ + else if (TARGET_64BIT && (delta < -2147483647 - 1 || delta > 2147483647)) + abort (); + /* Large constants that can be done by one addis instruction. */ ! else if ((delta & 0xffff) == 0) asm_fprintf (file, "\t{cau|addis} %s,%s,%d\n", this_reg, this_reg, delta >> 16); /* 32-bit constants that can be done by an add and addis instruction. */ ! else { /* Break into two pieces, propagating the sign bit from the low word to the upper word. */ ! int delta_low = ((delta & 0xffff) ^ 0x8000) - 0x8000; ! int delta_high = (delta - delta_low) >> 16; asm_fprintf (file, "\t{cau|addis} %s,%s,%d\n", this_reg, this_reg, delta_high); *************** output_mi_thunk (file, thunk_fndecl, del *** 9762,9771 **** fprintf (file, "\taddi %s,%s,%d\n", this_reg, this_reg, delta_low); } - /* 64-bit constants, fixme */ - else - abort (); - /* Get the prefix in front of the names. */ switch (DEFAULT_ABI) { --- 9631,9636 ---- *************** output_mi_thunk (file, thunk_fndecl, del *** 9821,9827 **** } assemble_name (file, fname); putc ('\n', file); ! text_section (); if (TARGET_MINIMAL_TOC) asm_fprintf (file, (TARGET_32BIT) ? "\t{l|lwz} %s,%s(%s)\n" : "\tld %s,%s(%s)\n", r12, --- 9686,9695 ---- } assemble_name (file, fname); putc ('\n', file); ! if (TARGET_ELF) ! function_section (current_function_decl); ! else ! text_section (); if (TARGET_MINIMAL_TOC) asm_fprintf (file, (TARGET_32BIT) ? "\t{l|lwz} %s,%s(%s)\n" : "\tld %s,%s(%s)\n", r12, *************** output_toc (file, x, labelno, mode) *** 10240,10247 **** abort ();/* It would be easy to make this work, but it doesn't now. */ if (POINTER_SIZE > GET_MODE_BITSIZE (mode)) ! lshift_double (low, high, POINTER_SIZE - GET_MODE_BITSIZE (mode), ! POINTER_SIZE, &low, &high, 0); if (TARGET_64BIT) { --- 10108,10124 ---- abort ();/* It would be easy to make this work, but it doesn't now. */ if (POINTER_SIZE > GET_MODE_BITSIZE (mode)) ! { ! #if HOST_BITS_PER_WIDE_INT == 32 ! lshift_double (low, high, POINTER_SIZE - GET_MODE_BITSIZE (mode), ! POINTER_SIZE, &low, &high, 0); ! #else ! low |= high << 32; ! low <<= POINTER_SIZE - GET_MODE_BITSIZE (mode); ! high = (HOST_WIDE_INT) low >> 32; ! low &= 0xffffffff; ! #endif ! } if (TARGET_64BIT) { *************** rs6000_gen_section_name (buf, filename, *** 10459,10468 **** void output_profile_hook (labelno) ! int labelno; { if (DEFAULT_ABI == ABI_AIX) { char buf[30]; const char *label_name; rtx fun; --- 10336,10348 ---- void output_profile_hook (labelno) ! int labelno ATTRIBUTE_UNUSED; { if (DEFAULT_ABI == ABI_AIX) { + #ifdef NO_PROFILE_COUNTERS + emit_library_call (init_one_libfunc (RS6000_MCOUNT), 0, VOIDmode, 0); + #else char buf[30]; const char *label_name; rtx fun; *************** output_profile_hook (labelno) *** 10473,10478 **** --- 10353,10359 ---- emit_library_call (init_one_libfunc (RS6000_MCOUNT), 0, VOIDmode, 1, fun, Pmode); + #endif } else if (DEFAULT_ABI == ABI_DARWIN) { *************** output_function_profiler (file, labelno) *** 10506,10511 **** --- 10387,10393 ---- int labelno; { char buf[100]; + int save_lr = 8; ASM_GENERATE_INTERNAL_LABEL (buf, "LP", labelno); switch (DEFAULT_ABI) *************** output_function_profiler (file, labelno) *** 10514,10526 **** abort (); case ABI_V4: case ABI_AIX_NODESC: fprintf (file, "\tmflr %s\n", reg_names[0]); if (flag_pic == 1) { fputs ("\tbl _GLOBAL_OFFSET_TABLE_@local-4\n", file); ! asm_fprintf (file, "\t{st|stw} %s,4(%s)\n", ! reg_names[0], reg_names[1]); asm_fprintf (file, "\tmflr %s\n", reg_names[12]); asm_fprintf (file, "\t{l|lwz} %s,", reg_names[0]); assemble_name (file, buf); --- 10396,10416 ---- abort (); case ABI_V4: + save_lr = 4; + /* Fall through. */ + case ABI_AIX_NODESC: + if (!TARGET_32BIT) + { + warning ("no profiling of 64-bit code for this ABI"); + return; + } fprintf (file, "\tmflr %s\n", reg_names[0]); if (flag_pic == 1) { fputs ("\tbl _GLOBAL_OFFSET_TABLE_@local-4\n", file); ! asm_fprintf (file, "\t{st|stw} %s,%d(%s)\n", ! reg_names[0], save_lr, reg_names[1]); asm_fprintf (file, "\tmflr %s\n", reg_names[12]); asm_fprintf (file, "\t{l|lwz} %s,", reg_names[0]); assemble_name (file, buf); *************** output_function_profiler (file, labelno) *** 10528,10535 **** } else if (flag_pic > 1) { ! asm_fprintf (file, "\t{st|stw} %s,4(%s)\n", ! reg_names[0], reg_names[1]); /* Now, we need to get the address of the label. */ fputs ("\tbl 1f\n\t.long ", file); assemble_name (file, buf); --- 10418,10425 ---- } else if (flag_pic > 1) { ! asm_fprintf (file, "\t{st|stw} %s,%d(%s)\n", ! reg_names[0], save_lr, reg_names[1]); /* Now, we need to get the address of the label. */ fputs ("\tbl 1f\n\t.long ", file); assemble_name (file, buf); *************** output_function_profiler (file, labelno) *** 10545,10571 **** asm_fprintf (file, "\t{liu|lis} %s,", reg_names[12]); assemble_name (file, buf); fputs ("@ha\n", file); ! asm_fprintf (file, "\t{st|stw} %s,4(%s)\n", ! reg_names[0], reg_names[1]); asm_fprintf (file, "\t{cal|la} %s,", reg_names[0]); assemble_name (file, buf); asm_fprintf (file, "@l(%s)\n", reg_names[12]); } ! if (current_function_needs_context) ! asm_fprintf (file, "\tmr %s,%s\n", ! reg_names[30], reg_names[STATIC_CHAIN_REGNUM]); ! fprintf (file, "\tbl %s\n", RS6000_MCOUNT); ! if (current_function_needs_context) ! asm_fprintf (file, "\tmr %s,%s\n", ! reg_names[STATIC_CHAIN_REGNUM], reg_names[30]); break; case ABI_AIX: case ABI_DARWIN: /* Don't do anything, done in output_profile_hook (). */ break; - } } --- 10435,10466 ---- asm_fprintf (file, "\t{liu|lis} %s,", reg_names[12]); assemble_name (file, buf); fputs ("@ha\n", file); ! asm_fprintf (file, "\t{st|stw} %s,%d(%s)\n", ! reg_names[0], save_lr, reg_names[1]); asm_fprintf (file, "\t{cal|la} %s,", reg_names[0]); assemble_name (file, buf); asm_fprintf (file, "@l(%s)\n", reg_names[12]); } ! if (current_function_needs_context && DEFAULT_ABI == ABI_AIX_NODESC) ! { ! asm_fprintf (file, "\t{st|stw} %s,%d(%s)\n", ! reg_names[STATIC_CHAIN_REGNUM], ! 12, reg_names[1]); ! fprintf (file, "\tbl %s\n", RS6000_MCOUNT); ! asm_fprintf (file, "\t{l|lwz} %s,%d(%s)\n", ! reg_names[STATIC_CHAIN_REGNUM], ! 12, reg_names[1]); ! } ! else ! /* ABI_V4 saves the static chain reg with ASM_OUTPUT_REG_PUSH. */ ! fprintf (file, "\tbl %s\n", RS6000_MCOUNT); break; case ABI_AIX: case ABI_DARWIN: /* Don't do anything, done in output_profile_hook (). */ break; } } *************** rs6000_select_section (decl, reloc) *** 10886,10903 **** 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 if (TREE_CODE (decl) == CONSTRUCTOR) ! readonly = (! (flag_pic && reloc) && ! TREE_SIDE_EFFECTS (decl) && TREE_CONSTANT (decl)); else ! readonly = 1; if (needs_sdata && rs6000_sdata != SDATA_EABI) readonly = 0; --- 10781,10799 ---- if (TREE_CODE (decl) == STRING_CST) readonly = ! flag_writable_strings; else if (TREE_CODE (decl) == VAR_DECL) ! readonly = (! ((flag_pic || DEFAULT_ABI == ABI_AIX) && reloc) && TREE_READONLY (decl) && ! TREE_SIDE_EFFECTS (decl) && DECL_INITIAL (decl) && DECL_INITIAL (decl) != error_mark_node && TREE_CONSTANT (DECL_INITIAL (decl))); else if (TREE_CODE (decl) == CONSTRUCTOR) ! readonly = (! ((flag_pic || DEFAULT_ABI == ABI_AIX) && reloc) && ! TREE_SIDE_EFFECTS (decl) && TREE_CONSTANT (decl)); else ! readonly = ! ((flag_pic || DEFAULT_ABI == ABI_AIX) && reloc); ! if (needs_sdata && rs6000_sdata != SDATA_EABI) readonly = 0; *************** rs6000_unique_section (decl, reloc) *** 10942,10955 **** 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 --- 10838,10852 ---- int needs_sdata; int size; if (TREE_CODE (decl) == STRING_CST) readonly = ! flag_writable_strings; else if (TREE_CODE (decl) == VAR_DECL) ! readonly = (! ((flag_pic || DEFAULT_ABI == ABI_AIX) && reloc) && TREE_READONLY (decl) && ! TREE_SIDE_EFFECTS (decl) && TREE_CONSTANT (DECL_INITIAL (decl))); + else + readonly = ! ((flag_pic || DEFAULT_ABI == ABI_AIX) && reloc); size = int_size_in_bytes (TREE_TYPE (decl)); needs_sdata = (size > 0 diff -Nrc3pad gcc-3.2/gcc/config/rs6000/rs6000.md gcc-3.2.1/gcc/config/rs6000/rs6000.md *** gcc-3.2/gcc/config/rs6000/rs6000.md Mon Jul 15 05:29:43 2002 --- gcc-3.2.1/gcc/config/rs6000/rs6000.md Mon Oct 7 04:21:05 2002 *************** *** 9641,9647 **** [(set (match_operand:SI 0 "register_operand" "=l") (match_operand:SI 1 "immediate_operand" "s")) (unspec [(match_dup 1)] 7)] ! "TARGET_ELF && flag_pic == 2" "bl %1\\n%1:" [(set_attr "type" "branch") (set_attr "length" "4")]) --- 9641,9647 ---- [(set (match_operand:SI 0 "register_operand" "=l") (match_operand:SI 1 "immediate_operand" "s")) (unspec [(match_dup 1)] 7)] ! "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2" "bl %1\\n%1:" [(set_attr "type" "branch") (set_attr "length" "4")]) *************** *** 9650,9666 **** [(set (match_operand:SI 0 "register_operand" "=l") (match_operand:SI 1 "immediate_operand" "s")) (unspec [(match_dup 1) (match_operand 2 "immediate_operand" "s")] 6)] ! "TARGET_ELF && flag_pic == 2" "bl %1\\n\\t.long %2-%1+4\\n%1:" [(set_attr "type" "branch") (set_attr "length" "8")]) (define_insn "load_toc_v4_PIC_2" [(set (match_operand:SI 0 "register_operand" "=r") ! (mem:SI (plus:SI (match_operand:SI 1 "register_operand" "r") (minus:SI (match_operand:SI 2 "immediate_operand" "s") (match_operand:SI 3 "immediate_operand" "s")))))] ! "TARGET_ELF && flag_pic == 2" "{l|lwz} %0,%2-%3(%1)" [(set_attr "type" "load")]) --- 9650,9666 ---- [(set (match_operand:SI 0 "register_operand" "=l") (match_operand:SI 1 "immediate_operand" "s")) (unspec [(match_dup 1) (match_operand 2 "immediate_operand" "s")] 6)] ! "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2" "bl %1\\n\\t.long %2-%1+4\\n%1:" [(set_attr "type" "branch") (set_attr "length" "8")]) (define_insn "load_toc_v4_PIC_2" [(set (match_operand:SI 0 "register_operand" "=r") ! (mem:SI (plus:SI (match_operand:SI 1 "register_operand" "b") (minus:SI (match_operand:SI 2 "immediate_operand" "s") (match_operand:SI 3 "immediate_operand" "s")))))] ! "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2" "{l|lwz} %0,%2-%3(%1)" [(set_attr "type" "load")]) *************** *** 11253,11267 **** "") (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (plus:SI (le:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "r,O")) ! (match_operand:SI 3 "gpc_reg_operand" "r,r"))) ! (clobber (match_scratch:SI 4 "=&r,&r"))] "TARGET_POWER" "@ ! doz %4,%2,%1\;{sfi|subfic} %4,%4,0\;{aze|addze} %0,%3 ! {srai|srawi} %4,%1,31\;{sf|subfc} %4,%1,%4\;{aze|addze} %0,%3" [(set_attr "length" "12")]) (define_insn "" --- 11253,11266 ---- "") (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r") (plus:SI (le:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "r,O")) ! (match_operand:SI 3 "gpc_reg_operand" "r,r")))] "TARGET_POWER" "@ ! doz %0,%2,%1\;{sfi|subfic} %0,%0,0\;{aze|addze} %0,%3 ! {srai|srawi} %0,%1,31\;{sf|subfc} %0,%1,%0\;{aze|addze} %0,%3" [(set_attr "length" "12")]) (define_insn "" *************** *** 11292,11337 **** "TARGET_POWER && reload_completed" [(set (match_dup 4) (plus:SI (le:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:SI (le:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_short_operand" "r,O,r,O")) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r") ! (plus:SI (le:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))] "TARGET_POWER" "@ ! doz %4,%2,%1\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %0,%3 ! {srai|srawi} %4,%1,31\;{sf|subfc} %4,%1,%4\;{aze.|addze.} %0,%3 # #" [(set_attr "type" "compare") (set_attr "length" "12,12,16,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (le:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (le:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "TARGET_POWER && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (le:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 11291,11333 ---- "TARGET_POWER && reload_completed" [(set (match_dup 4) (plus:SI (le:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:SI (le:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_short_operand" "r,O,r,O")) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r") ! (plus:SI (le:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWER" "@ ! doz %0,%2,%1\;{sfi|subfic} %0,%0,0\;{aze.|addze.} %0,%3 ! {srai|srawi} %0,%1,31\;{sf|subfc} %0,%1,%0\;{aze.|addze.} %0,%3 # #" [(set_attr "type" "compare") (set_attr "length" "12,12,16,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (le:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (le:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWER && reload_completed" ! [(set (match_dup 0) (plus:SI (le:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 11481,11517 **** "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") ! (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r"))] "! TARGET_POWERPC64" "@ ! {sf%I2|subf%I2c} %4,%1,%2\;{aze.|addze.} %0,%3 #" [(set_attr "type" "compare") (set_attr "length" "8,12")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 11477,11510 ---- "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r") ! (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "! TARGET_POWERPC64" "@ ! {sf%I2|subf%I2c} %0,%1,%2\;{aze.|addze.} %0,%3 #" [(set_attr "type" "compare") (set_attr "length" "8,12")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "! TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 11525,11538 **** [(set_attr "length" "12")]) (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (and:SI (neg:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_short_operand" "rI"))) ! (match_operand:SI 3 "gpc_reg_operand" "r"))) ! (clobber (match_scratch:SI 4 "=&r"))] "! TARGET_POWERPC64" ! "{sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;andc %0,%3,%4" [(set_attr "length" "12")]) (define_insn "" --- 11518,11530 ---- [(set_attr "length" "12")]) (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=&r") (and:SI (neg:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_short_operand" "rI"))) ! (match_operand:SI 3 "gpc_reg_operand" "r")))] "! TARGET_POWERPC64" ! "{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;andc %0,%3,%0" [(set_attr "length" "12")]) (define_insn "" *************** *** 11562,11595 **** (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" [(set (match_dup 4) ! (and:SI (neg:SI (leu:SI (match_dup 1) ! (match_dup 2))) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,?y") (compare:CC (and:SI (neg:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "rI,rI"))) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") ! (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r"))] "! TARGET_POWERPC64" "@ ! {sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;andc. %0,%3,%4 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (and:SI (neg:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "") --- 11554,11585 ---- (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" [(set (match_dup 4) ! (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,?y") (compare:CC (and:SI (neg:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "rI,rI"))) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r") ! (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))] "! TARGET_POWERPC64" "@ ! {sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;andc. %0,%3,%0 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (and:SI (neg:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "") *************** *** 11597,11609 **** (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) ! (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 11587,11598 ---- (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))] "! TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) ! (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) ! (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 11648,11660 **** "") (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_short_operand" "rI")) ! (match_operand:SI 3 "gpc_reg_operand" "r"))) ! (clobber (match_scratch:SI 4 "=&r"))] "TARGET_POWER" ! "doz%I2 %4,%1,%2\;{ai|addic} %4,%4,-1\;{aze|addze} %0,%3" [(set_attr "length" "12")]) (define_insn "" --- 11637,11648 ---- "") (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=&r") (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_short_operand" "rI")) ! (match_operand:SI 3 "gpc_reg_operand" "r")))] "TARGET_POWER" ! "doz%I2 %0,%1,%2\;{ai|addic} %0,%0,-1\;{aze|addze} %0,%3" [(set_attr "length" "12")]) (define_insn "" *************** *** 11683,11726 **** "TARGET_POWER && reload_completed" [(set (match_dup 4) (plus:SI (lt:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") ! (plus:SI (lt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r"))] "TARGET_POWER" "@ ! doz%I2 %4,%1,%2\;{ai|addic} %4,%4,-1\;{aze.|addze.} %0,%3 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (lt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "TARGET_POWER && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (lt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 11671,11711 ---- "TARGET_POWER && reload_completed" [(set (match_dup 4) (plus:SI (lt:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r") ! (plus:SI (lt:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWER" "@ ! doz%I2 %0,%1,%2\;{ai|addic} %0,%0,-1\;{aze.|addze.} %0,%3 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (lt:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (lt:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWER && reload_completed" ! [(set (match_dup 0) (plus:SI (lt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 11815,11860 **** "! TARGET_POWERPC64 && reload_completed" [(set (match_dup 4) (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_neg_short_operand" "r,P,r,P")) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r") ! (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))] "! TARGET_POWERPC64" "@ ! {sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %0,%4,%3 ! {ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %0,%4,%3 # #" [(set_attr "type" "compare") (set_attr "length" "12,12,16,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_neg_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 11800,11842 ---- "! TARGET_POWERPC64 && reload_completed" [(set (match_dup 4) (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_neg_short_operand" "r,P,r,P")) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r") ! (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "! TARGET_POWERPC64" "@ ! {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;{sf.|subfc.} %0,%0,%3 ! {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;{sf.|subfc.} %0,%0,%3 # #" [(set_attr "type" "compare") (set_attr "length" "12,12,16,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_neg_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "! TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 11905,11925 **** (clobber (match_scratch:SI 3 ""))] "TARGET_POWER && reload_completed" [(parallel [(set (match_dup 0) ! (ge:SI (match_dup 1) (match_dup 2))) ! (clobber (match_dup 3))]) (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (plus:SI (ge:SI (match_operand:SI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_short_operand" "rI")) ! (match_operand:SI 3 "gpc_reg_operand" "r"))) ! (clobber (match_scratch:SI 4 "=&r"))] "TARGET_POWER" ! "doz%I2 %4,%1,%2\;{sfi|subfic} %4,%4,0\;{aze|addze} %0,%3" [(set_attr "length" "12")]) (define_insn "" --- 11887,11906 ---- (clobber (match_scratch:SI 3 ""))] "TARGET_POWER && reload_completed" [(parallel [(set (match_dup 0) ! (ge:SI (match_dup 1) (match_dup 2))) ! (clobber (match_dup 3))]) (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=&r") (plus:SI (ge:SI (match_operand:SI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_short_operand" "rI")) ! (match_operand:SI 3 "gpc_reg_operand" "r")))] "TARGET_POWER" ! "doz%I2 %0,%1,%2\;{sfi|subfic} %0,%0,0\;{aze|addze} %0,%3" [(set_attr "length" "12")]) (define_insn "" *************** *** 11948,11991 **** "TARGET_POWER && reload_completed" [(set (match_dup 4) (plus:SI (ge:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (ge:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") ! (plus:SI (ge:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r"))] "TARGET_POWER" "@ ! doz%I2 %4,%1,%2\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %0,%3 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (ge:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (ge:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "TARGET_POWER && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (ge:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 11929,11969 ---- "TARGET_POWER && reload_completed" [(set (match_dup 4) (plus:SI (ge:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (ge:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r") ! (plus:SI (ge:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWER" "@ ! doz%I2 %0,%1,%2\;{sfi|subfic} %0,%0,0\;{aze.|addze.} %0,%3 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (ge:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (ge:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWER && reload_completed" ! [(set (match_dup 0) (plus:SI (ge:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 12130,12168 **** "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_neg_short_operand" "r,P,r,P")) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r") ! (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))] "! TARGET_POWERPC64" "@ ! {sf|subfc} %4,%2,%1\;{aze.|addze.} %0,%3 ! {ai|addic} %4,%1,%n2\;{aze.|addze.} %0,%3 # #" [(set_attr "type" "compare") (set_attr "length" "8,8,12,12")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_neg_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 12108,12143 ---- "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_neg_short_operand" "r,P,r,P")) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r") ! (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "! TARGET_POWERPC64" "@ ! {sf|subfc} %0,%2,%1\;{aze.|addze.} %0,%3 ! {ai|addic} %0,%1,%n2\;{aze.|addze.} %0,%3 # #" [(set_attr "type" "compare") (set_attr "length" "8,8,12,12")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_neg_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "! TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 12178,12193 **** [(set_attr "length" "12")]) (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (and:SI (neg:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_neg_short_operand" "r,P"))) ! (match_operand:SI 3 "gpc_reg_operand" "r,r"))) ! (clobber (match_scratch:SI 4 "=&r,&r"))] "! TARGET_POWERPC64" "@ ! {sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;andc %0,%3,%4 ! {ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;andc %0,%3,%4" [(set_attr "length" "12")]) (define_insn "" --- 12153,12167 ---- [(set_attr "length" "12")]) (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r") (and:SI (neg:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_neg_short_operand" "r,P"))) ! (match_operand:SI 3 "gpc_reg_operand" "r,r")))] "! TARGET_POWERPC64" "@ ! {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;andc %0,%3,%0 ! {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;andc %0,%3,%0" [(set_attr "length" "12")]) (define_insn "" *************** *** 12219,12254 **** (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" [(set (match_dup 4) ! (and:SI (neg:SI (geu:SI (match_dup 1) ! (match_dup 2))) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (and:SI (neg:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_neg_short_operand" "r,P,r,P"))) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r") ! (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))] "! TARGET_POWERPC64" "@ ! {sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;andc. %0,%3,%4 ! {ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;andc. %0,%3,%4 # #" [(set_attr "type" "compare") (set_attr "length" "12,12,16,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (and:SI (neg:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "") --- 12193,12226 ---- (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" [(set (match_dup 4) ! (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (and:SI (neg:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_neg_short_operand" "r,P,r,P"))) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r") ! (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))] "! TARGET_POWERPC64" "@ ! {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;andc. %0,%3,%0 ! {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;andc. %0,%3,%0 # #" [(set_attr "type" "compare") (set_attr "length" "12,12,16,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (and:SI (neg:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "") *************** *** 12256,12268 **** (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 12228,12238 ---- (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))] "! TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 12394,12406 **** [(set_attr "length" "12")]) (define_insn "" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=r") (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r") (const_int 0)) ! (match_operand:DI 2 "gpc_reg_operand" "r"))) ! (clobber (match_scratch:DI 3 "=&r"))] "TARGET_POWERPC64" ! "addc %3,%1,%1\;subfe %3,%1,%3\;addze %0,%2" [(set_attr "length" "12")]) (define_insn "" --- 12364,12375 ---- [(set_attr "length" "12")]) (define_insn "" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=&r") (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r") (const_int 0)) ! (match_operand:DI 2 "gpc_reg_operand" "r")))] "TARGET_POWERPC64" ! "addc %0,%1,%1\;subfe %0,%1,%0\;addze %0,%2" [(set_attr "length" "12")]) (define_insn "" *************** *** 12461,12552 **** "TARGET_POWERPC64 && reload_completed" [(set (match_dup 3) (plus:DI (gt:DI (match_dup 1) (const_int 0)) ! (match_dup 2))) (set (match_dup 0) (compare:CC (match_dup 3) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (const_int 0)) (match_operand:SI 2 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") ! (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2))) ! (clobber (match_scratch:SI 3 "=&r,&r"))] "! TARGET_POWERPC64" "@ ! {a|addc} %3,%1,%1\;{sfe|subfe} %3,%1,%3\;{aze.|addze.} %0,%2 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "") (const_int 0)) (match_operand:SI 2 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2))) ! (clobber (match_scratch:SI 3 ""))] "! TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2))) ! (clobber (match_dup 3))]) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,?y") (compare:CC (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r") (const_int 0)) (match_operand:DI 2 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:DI 0 "gpc_reg_operand" "=r,r") ! (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2))) ! (clobber (match_scratch:DI 3 "=&r,&r"))] "TARGET_POWERPC64" "@ ! addc %3,%1,%1\;subfe %3,%1,%3\;addze. %0,%2 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "") (const_int 0)) (match_operand:DI 2 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "") ! (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2))) ! (clobber (match_scratch:DI 3 ""))] "TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2))) ! (clobber (match_dup 3))]) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_short_operand" "r")) ! (match_operand:SI 3 "gpc_reg_operand" "r"))) ! (clobber (match_scratch:SI 4 "=&r"))] "TARGET_POWER" ! "doz %4,%2,%1\;{ai|addic} %4,%4,-1\;{aze|addze} %0,%3" [(set_attr "length" "12")]) (define_insn "" --- 12430,12514 ---- "TARGET_POWERPC64 && reload_completed" [(set (match_dup 3) (plus:DI (gt:DI (match_dup 1) (const_int 0)) ! (match_dup 2))) (set (match_dup 0) (compare:CC (match_dup 3) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 3 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (const_int 0)) (match_operand:SI 2 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r") ! (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2)))] "! TARGET_POWERPC64" "@ ! {a|addc} %0,%1,%1\;{sfe|subfe} %0,%1,%0\;{aze.|addze.} %0,%2 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "") (const_int 0)) (match_operand:SI 2 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2)))] "! TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2))) ! (set (match_dup 3) (compare:CC (match_dup 0) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 3 "cc_reg_operand" "=x,?y") (compare:CC (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r") (const_int 0)) (match_operand:DI 2 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r") ! (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2)))] "TARGET_POWERPC64" "@ ! addc %0,%1,%1\;subfe %0,%1,%0\;addze. %0,%2 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "") (compare:CC (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "") (const_int 0)) (match_operand:DI 2 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "") ! (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2)))] "TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2))) ! (set (match_dup 3) (compare:CC (match_dup 0) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:SI 0 "gpc_reg_operand" "=&r") (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "reg_or_short_operand" "r")) ! (match_operand:SI 3 "gpc_reg_operand" "r")))] "TARGET_POWER" ! "doz %0,%2,%1\;{ai|addic} %0,%0,-1\;{aze|addze} %0,%3" [(set_attr "length" "12")]) (define_insn "" *************** *** 12574,12618 **** (clobber (match_scratch:SI 4 ""))] "TARGET_POWER && reload_completed" [(set (match_dup 4) ! (plus:SI (gt:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "r,r")) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") ! (plus:SI (gt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r"))] "TARGET_POWER" "@ ! doz %4,%2,%1\;{ai|addic} %4,%4,-1\;{aze.|addze.} %0,%3 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (gt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "TARGET_POWER && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (gt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 12536,12576 ---- (clobber (match_scratch:SI 4 ""))] "TARGET_POWER && reload_completed" [(set (match_dup 4) ! (plus:SI (gt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,?y") (compare:CC (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") (match_operand:SI 2 "reg_or_short_operand" "r,r")) (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r") ! (plus:SI (gt:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWER" "@ ! doz %0,%2,%1\;{ai|addic} %0,%0,-1\;{aze.|addze.} %0,%3 #" [(set_attr "type" "compare") (set_attr "length" "12,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (gt:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWER && reload_completed" ! [(set (match_dup 0) (plus:SI (gt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") *************** *** 12731,12745 **** [(set_attr "length" "8,12")]) (define_insn "" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r") (match_operand:DI 2 "reg_or_short_operand" "I,rI")) ! (match_operand:DI 3 "reg_or_short_operand" "r,rI"))) ! (clobber (match_scratch:DI 4 "=&r,&r"))] "TARGET_POWERPC64" "@ ! addic %4,%1,%k2\;addze %0,%3 ! subf%I2c %4,%1,%2\;subfe %4,%4,%4\;subf%I3c %0,%4,%3" [(set_attr "length" "8,12")]) (define_insn "" --- 12689,12702 ---- [(set_attr "length" "8,12")]) (define_insn "" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r") (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r") (match_operand:DI 2 "reg_or_short_operand" "I,rI")) ! (match_operand:DI 3 "reg_or_short_operand" "r,rI")))] "TARGET_POWERPC64" "@ ! addic %0,%1,%k2\;addze %0,%3 ! subf%I2c %0,%1,%2\;subfe %0,%0,%0\;subf%I3c %0,%0,%3" [(set_attr "length" "8,12")]) (define_insn "" *************** *** 12770,12776 **** "! TARGET_POWERPC64 && reload_completed" [(set (match_dup 4) (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] --- 12727,12733 ---- "! TARGET_POWERPC64 && reload_completed" [(set (match_dup 4) (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) ! (match_dup 3))) (set (match_dup 0) (compare:CC (match_dup 4) (const_int 0)))] *************** *** 12811,12887 **** "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_short_operand" "I,r,I,r")) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r") ! (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))] "! TARGET_POWERPC64" "@ ! {ai|addic} %4,%1,%k2\;{aze.|addze.} %0,%3 ! {sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %0,%4,%3 # #" [(set_attr "type" "compare") (set_attr "length" "8,12,12,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:SI 4 ""))] "! TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:DI 2 "reg_or_short_operand" "I,r,I,r")) (match_operand:DI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r,r") ! (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:DI 4 "=&r,&r,&r,&r"))] "TARGET_POWERPC64" "@ ! addic %4,%1,%k2\;addze. %0,%3 ! subf%I2c %4,%1,%2\;subfe %4,%4,%4\;subfc. %0,%4,%3 # #" [(set_attr "type" "compare") (set_attr "length" "8,12,12,16")]) (define_split ! [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "") (compare:CC (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "") (match_operand:DI 2 "reg_or_short_operand" "")) (match_operand:DI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "") ! (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_scratch:DI 4 ""))] "TARGET_POWERPC64 && reload_completed" ! [(parallel [(set (match_dup 0) (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (clobber (match_dup 4))]) ! (set (match_dup 5) (compare:CC (match_dup 0) (const_int 0)))] "") --- 12768,12838 ---- "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:SI 2 "reg_or_short_operand" "I,r,I,r")) (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r") ! (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "! TARGET_POWERPC64" "@ ! {ai|addic} %0,%1,%k2\;{aze.|addze.} %0,%3 ! {sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;{sf.|subfc.} %0,%0,%3 # #" [(set_attr "type" "compare") (set_attr "length" "8,12,12,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "") (match_operand:SI 2 "reg_or_short_operand" "")) (match_operand:SI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") ! (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))] "! TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") (define_insn "" ! [(set (match_operand:CC 4 "cc_reg_operand" "=x,x,?y,?y") (compare:CC (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r,r,r") (match_operand:DI 2 "reg_or_short_operand" "I,r,I,r")) (match_operand:DI 3 "gpc_reg_operand" "r,r,r,r")) (const_int 0))) ! (set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r,&r,&r") ! (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWERPC64" "@ ! addic %0,%1,%k2\;addze. %0,%3 ! subf%I2c %0,%1,%2\;subfe %0,%0,%0\;subfc. %0,%0,%3 # #" [(set_attr "type" "compare") (set_attr "length" "8,12,12,16")]) (define_split ! [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "") (compare:CC (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "") (match_operand:DI 2 "reg_or_short_operand" "")) (match_operand:DI 3 "gpc_reg_operand" "")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "") ! (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3)))] "TARGET_POWERPC64 && reload_completed" ! [(set (match_dup 0) (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3))) ! (set (match_dup 4) (compare:CC (match_dup 0) (const_int 0)))] "") diff -Nrc3pad gcc-3.2/gcc/config/rs6000/sysv4.h gcc-3.2.1/gcc/config/rs6000/sysv4.h *** gcc-3.2/gcc/config/rs6000/sysv4.h Thu Aug 8 17:52:40 2002 --- gcc-3.2.1/gcc/config/rs6000/sysv4.h Fri Sep 13 06:53:05 2002 *************** do { \ *** 770,775 **** --- 770,807 ---- ASM_OUTPUT_ALIGNED_LOCAL (FILE, NAME, SIZE, ALIGN); \ } while (0) + /* This is how to output code to push a register on the stack. + It need not be very fast code. + + On the rs6000, we must keep the backchain up to date. In order + to simplify things, always allocate 16 bytes for a push (System V + wants to keep stack aligned to a 16 byte boundary). */ + + #define ASM_OUTPUT_REG_PUSH(FILE, REGNO) \ + do { \ + if (DEFAULT_ABI == ABI_V4) \ + asm_fprintf (FILE, \ + (TARGET_32BIT \ + ? "\t{stu|stwu} %s,-16(%s)\n\t{st|stw} %s,12(%s)\n" \ + : "\tstdu %s,-32(%s)\n\tstd %s,24(%s)\n"), \ + reg_names[1], reg_names[1], reg_names[REGNO], \ + reg_names[1]); \ + } while (0) + + /* This is how to output an insn to pop a register from the stack. + It need not be very fast code. */ + + #define ASM_OUTPUT_REG_POP(FILE, REGNO) \ + do { \ + if (DEFAULT_ABI == ABI_V4) \ + asm_fprintf (FILE, \ + (TARGET_32BIT \ + ? "\t{l|lwz} %s,12(%s)\n\t{ai|addic} %s,%s,16\n" \ + : "\tld %s,24(%s)\n\t{ai|addic} %s,%s,32\n"), \ + reg_names[REGNO], reg_names[1], reg_names[1], \ + reg_names[1]); \ + } while (0) + /* Switch Recognition by gcc.c. Add -G xx support. */ /* Override svr4.h definition. */ diff -Nrc3pad gcc-3.2/gcc/config/s390/s390.md gcc-3.2.1/gcc/config/s390/s390.md *** gcc-3.2/gcc/config/s390/s390.md Tue Jun 11 14:49:17 2002 --- gcc-3.2.1/gcc/config/s390/s390.md Wed Oct 23 10:46:00 2002 *************** *** 957,963 **** ldr\\t%0,%1 ld\\t%0,%1 std\\t%1,%0" ! [(set_attr "op_type" "RR,RXE,RXE,RR,RX,RX") (set_attr "atype" "reg,mem,mem,reg,mem,mem")]) (define_insn "*movdi_31" --- 957,963 ---- ldr\\t%0,%1 ld\\t%0,%1 std\\t%1,%0" ! [(set_attr "op_type" "RRE,RXE,RXE,RR,RX,RX") (set_attr "atype" "reg,mem,mem,reg,mem,mem")]) (define_insn "*movdi_31" *************** *** 1240,1246 **** lgr\\t%0,%1 lg\\t%0,%1 stg\\t%1,%0" ! [(set_attr "op_type" "RR,RX,RX,RR,RXE,RXE") (set_attr "atype" "reg,mem,mem,reg,mem,mem")]) (define_insn "*movdf_31" --- 1240,1246 ---- lgr\\t%0,%1 lg\\t%0,%1 stg\\t%1,%0" ! [(set_attr "op_type" "RR,RX,RX,RRE,RXE,RXE") (set_attr "atype" "reg,mem,mem,reg,mem,mem")]) (define_insn "*movdf_31" *************** *** 2111,2125 **** reg1 = gen_reg_rtx (DImode); } - if (! CONSTANT_P (len)) - len = force_reg (Pmode, len); - /* Load up the address+length pairs. */ emit_move_insn (gen_highpart (Pmode, reg0), addr0); ! emit_move_insn (gen_lowpart (Pmode, reg0), len); emit_move_insn (gen_highpart (Pmode, reg1), addr1); ! emit_move_insn (gen_lowpart (Pmode, reg1), len); /* Compare! */ if (TARGET_64BIT) --- 2111,2122 ---- reg1 = gen_reg_rtx (DImode); } /* Load up the address+length pairs. */ emit_move_insn (gen_highpart (Pmode, reg0), addr0); ! convert_move (gen_lowpart (Pmode, reg0), len, 1); emit_move_insn (gen_highpart (Pmode, reg1), addr1); ! convert_move (gen_lowpart (Pmode, reg1), len, 1); /* Compare! */ if (TARGET_64BIT) *************** *** 3226,3231 **** --- 3223,3241 ---- [(set_attr "op_type" "RR,RI,RX") (set_attr "atype" "reg,reg,mem")]) + (define_insn "*addsi3_inv" + [(set (match_operand:SI 0 "register_operand" "=d,d,d") + (plus:SI (match_operand:SI 1 "general_operand" "%d,K,m") + (match_operand:SI 2 "register_operand" "0,0,0"))) + (clobber (reg:CC 33))] + "" + "@ + ar\\t%0,%1 + ahi\\t%0,%h1 + a\\t%0,%1" + [(set_attr "op_type" "RR,RI,RX") + (set_attr "atype" "reg,reg,mem")]) + (define_insn "*la_31" [(set (match_operand:SI 0 "register_operand" "=d") (match_operand:QI 1 "address_operand" "p"))] *************** *** 5462,5468 **** "@ srlg\\t%0,%1,%c2 srlg\\t%0,%1,0(%2)" ! [(set_attr "op_type" "RS,RS")]) ; ; lshrsi3 instruction pattern(s). --- 5472,5478 ---- "@ srlg\\t%0,%1,%c2 srlg\\t%0,%1,0(%2)" ! [(set_attr "op_type" "RSE,RSE")]) ; ; lshrsi3 instruction pattern(s). diff -Nrc3pad gcc-3.2/gcc/config/sparc/freebsd.h gcc-3.2.1/gcc/config/sparc/freebsd.h *** gcc-3.2/gcc/config/sparc/freebsd.h Mon Apr 8 17:17:18 2002 --- gcc-3.2.1/gcc/config/sparc/freebsd.h Wed Nov 6 21:30:59 2002 *************** You should have received a copy of the G *** 18,28 **** along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! /* FreeBSD needs's the platform name (sparc64) defined. */ #undef CPP_CPU64_DEFAULT_SPEC ! #define CPP_CPU64_DEFAULT_SPEC "-D__sparc64__ -D__sparc_v9__" #undef CPP_PREDEFINES #define CPP_PREDEFINES FBSD_CPP_PREDEFINES --- 18,30 ---- along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! /* FreeBSD needs the platform name (sparc64) defined. ! Emacs needs to know if the arch is 64 or 32-bits. */ #undef CPP_CPU64_DEFAULT_SPEC ! #define CPP_CPU64_DEFAULT_SPEC "-D__sparc64__ -D__sparc_v9__ -D__arch64__" + /* Because we include sparc/sysv4.h. */ #undef CPP_PREDEFINES #define CPP_PREDEFINES FBSD_CPP_PREDEFINES *************** the Free Software Foundation, 675 Mass A *** 99,104 **** --- 101,131 ---- #undef SPARC_DEFAULT_CMODEL #define SPARC_DEFAULT_CMODEL CM_MEDLOW + #define TRANSFER_FROM_TRAMPOLINE \ + static int need_enable_exec_stack; \ + static void check_enabling(void) __attribute__ ((constructor)); \ + static void check_enabling(void) \ + { \ + extern int sysctlbyname(const char *, void *, size_t *, void *, size_t);\ + int prot = 0; \ + size_t len = sizeof(prot); \ + \ + sysctlbyname ("kern.stackprot", &prot, &len, NULL, 0); \ + if (prot != 7) \ + need_enable_exec_stack = 1; \ + } \ + extern void __enable_execute_stack (void *); \ + void __enable_execute_stack (void *addr) \ + { \ + if (!need_enable_exec_stack) \ + return; \ + else { \ + /* 7 is PROT_READ | PROT_WRITE | PROT_EXEC */ \ + if (mprotect (addr, TRAMPOLINE_SIZE, 7) < 0) \ + perror ("mprotect of trampoline code"); \ + } \ + } + /************************[ Assembler stuff ]********************************/ diff -Nrc3pad gcc-3.2/gcc/config/sparc/linux64.h gcc-3.2.1/gcc/config/sparc/linux64.h *** gcc-3.2/gcc/config/sparc/linux64.h Mon Apr 29 04:09:50 2002 --- gcc-3.2.1/gcc/config/sparc/linux64.h Sat Oct 5 21:32:10 2002 *************** *** 1,5 **** /* Definitions for 64-bit SPARC running Linux-based GNU systems with ELF. ! Copyright 1996, 1997, 1998, 2000 Free Software Foundation, Inc. Contributed by David S. Miller (davem@caip.rutgers.edu) This file is part of GNU CC. --- 1,5 ---- /* Definitions for 64-bit SPARC running Linux-based GNU systems with ELF. ! Copyright 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. Contributed by David S. Miller (davem@caip.rutgers.edu) This file is part of GNU CC. *************** Boston, MA 02111-1307, USA. */ *** 56,93 **** #undef STARTFILE_SPEC ! #define STARTFILE_SPEC32 \ ! "%{!shared: \ ! %{pg:/usr/lib/gcrt1.o%s} %{!pg:%{/usr/lib/p:gcrt1.o%s} %{!p:/usr/lib/crt1.o%s}}}\ ! /usr/lib/crti.o%s %{static:crtbeginT.o%s}\ ! %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}" ! ! #define STARTFILE_SPEC64 \ "%{!shared: \ ! %{pg:/usr/lib64/gcrt1.o%s} %{!pg:%{p:/usr/lib64/gcrt1.o%s} %{!p:/usr/lib64/crt1.o%s}}}\ ! /usr/lib64/crti.o%s %{static:crtbeginT.o%s}\ %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}" - #ifdef SPARC_BI_ARCH - - #if DEFAULT_ARCH32_P - #define STARTFILE_SPEC "\ - %{m32:" STARTFILE_SPEC32 "} \ - %{m64:" STARTFILE_SPEC64 "} \ - %{!m32:%{!m64:" STARTFILE_SPEC32 "}}" - #else - #define STARTFILE_SPEC "\ - %{m32:" STARTFILE_SPEC32 "} \ - %{m64:" STARTFILE_SPEC64 "} \ - %{!m32:%{!m64:" STARTFILE_SPEC64 "}}" - #endif - - #else - - #define STARTFILE_SPEC STARTFILE_SPEC64 - - #endif - /* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on the GNU/Linux magical crtend.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static --- 56,67 ---- #undef STARTFILE_SPEC ! #define STARTFILE_SPEC \ "%{!shared: \ ! %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\ ! crti.o%s %{static:crtbeginT.o%s}\ %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}" /* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on the GNU/Linux magical crtend.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static *************** Boston, MA 02111-1307, USA. */ *** 96,131 **** #undef ENDFILE_SPEC ! #define ENDFILE_SPEC32 \ ! "%{!shared:crtend.o%s} %{shared:crtendS.o%s} /usr/lib/crtn.o%s" ! ! #define ENDFILE_SPEC64 \ ! "%{!shared:crtend.o%s} %{shared:crtendS.o%s} /usr/lib64/crtn.o%s" ! ! #define ENDFILE_SPEC_COMMON \ ! "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s}" ! ! #ifdef SPARC_BI_ARCH ! ! #if DEFAULT_ARCH32_P ! #define ENDFILE_SPEC "\ ! %{m32:" ENDFILE_SPEC32 "} \ ! %{m64:" ENDFILE_SPEC64 "} \ ! %{!m32:%{!m64:" ENDFILE_SPEC32 "}} " \ ! ENDFILE_SPEC_COMMON ! #else ! #define ENDFILE_SPEC "\ ! %{m32:" ENDFILE_SPEC32 "} \ ! %{m64:" ENDFILE_SPEC64 "} \ ! %{!m32:%{!m64:" ENDFILE_SPEC64 "}} " \ ! ENDFILE_SPEC_COMMON ! #endif ! ! #else ! ! #define ENDFILE_SPEC ENDFILE_SPEC64 " " ENDFILE_SPEC_COMMON ! ! #endif /* The GNU C++ standard library requires that these macros be defined. */ #undef CPLUSPLUS_CPP_SPEC --- 70,78 ---- #undef ENDFILE_SPEC ! #define ENDFILE_SPEC \ ! "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s\ ! %{ffast-math|funsafe-math-optimizations:crtfastmath.o%s}" /* The GNU C++ standard library requires that these macros be defined. */ #undef CPLUSPLUS_CPP_SPEC diff -Nrc3pad gcc-3.2/gcc/config/sparc/sol2-bi.h gcc-3.2.1/gcc/config/sparc/sol2-bi.h *** gcc-3.2/gcc/config/sparc/sol2-bi.h Mon Apr 22 19:53:42 2002 --- gcc-3.2.1/gcc/config/sparc/sol2-bi.h Sat Oct 5 21:32:10 2002 *************** *** 72,101 **** %{!mcpu*:%(asm_cpu_default)} \ " - #define STARTFILE_SPEC32 "\ - %{ansi:values-Xc.o%s} \ - %{!ansi: \ - %{traditional:values-Xt.o%s} \ - %{!traditional:values-Xa.o%s}}" - - #define STARTFILE_SPEC64 "\ - %{ansi:/usr/lib/sparcv9/values-Xc.o%s} \ - %{!ansi: \ - %{traditional:/usr/lib/sparcv9/values-Xt.o%s} \ - %{!traditional:/usr/lib/sparcv9/values-Xa.o%s}}" - - #if DEFAULT_ARCH32_P - #define STARTFILE_ARCH_SPEC "\ - %{m32:" STARTFILE_SPEC32 "} \ - %{m64:" STARTFILE_SPEC64 "} \ - %{!m32:%{!m64:" STARTFILE_SPEC32 "}}" - #else - #define STARTFILE_ARCH_SPEC "\ - %{m32:" STARTFILE_SPEC32 "} \ - %{m64:" STARTFILE_SPEC64 "} \ - %{!m32:%{!m64:" STARTFILE_SPEC64 "}}" - #endif - #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared: \ %{!symbolic: \ --- 72,77 ---- *************** *** 103,109 **** %{!p: \ %{pg:gcrt1.o%s gmon.o%s} \ %{!pg:crt1.o%s}}}} \ ! crti.o%s " STARTFILE_ARCH_SPEC " \ crtbegin.o%s" #undef CPP_CPU_DEFAULT_SPEC --- 79,88 ---- %{!p: \ %{pg:gcrt1.o%s gmon.o%s} \ %{!pg:crt1.o%s}}}} \ ! crti.o%s \ ! %{ansi:values-Xc.o%s} \ ! %{!ansi: %{traditional:values-Xt.o%s} \ ! %{!traditional:values-Xa.o%s}} \ crtbegin.o%s" #undef CPP_CPU_DEFAULT_SPEC diff -Nrc3pad gcc-3.2/gcc/config/sparc/sparc.c gcc-3.2.1/gcc/config/sparc/sparc.c *** gcc-3.2/gcc/config/sparc/sparc.c Sun May 26 02:42:21 2002 --- gcc-3.2.1/gcc/config/sparc/sparc.c Thu Sep 26 10:20:03 2002 *************** set_extends (insn) *** 8650,8656 **** return INTVAL (op1) >= 0; return (GET_CODE (op1) == REG && sparc_check_64 (op1, insn) == 1); } - case ASHIFT: case LSHIFTRT: return GET_MODE (SET_SRC (pat)) == SImode; /* Positive integers leave the high bits zero. */ --- 8650,8655 ---- diff -Nrc3pad gcc-3.2/gcc/config/sparc/sparc.md gcc-3.2.1/gcc/config/sparc/sparc.md *** gcc-3.2/gcc/config/sparc/sparc.md Sun May 5 21:45:02 2002 --- gcc-3.2.1/gcc/config/sparc/sparc.md Wed Oct 2 03:47:05 2002 *************** *** 2517,2523 **** ; }") ! ;; Be careful, fmovd does not exist when !arch64. ;; We match MEM moves directly when we have correct even ;; numbered registers, but fall into splits otherwise. ;; The constraint ordering here is really important to --- 2517,2523 ---- ; }") ! ;; Be careful, fmovd does not exist when !v9. ;; We match MEM moves directly when we have correct even ;; numbered registers, but fall into splits otherwise. ;; The constraint ordering here is really important to *************** *** 2531,2539 **** (define_insn "*movdi_insn_sp32_v9" [(set (match_operand:DI 0 "nonimmediate_operand" ! "=T,o,T,U,o,r,r,r,?T,?f,?f,?o,?f") (match_operand:DI 1 "input_operand" ! " J,J,U,T,r,o,i,r, f, T, o, f, f"))] "! TARGET_ARCH64 && TARGET_V9 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ --- 2531,2539 ---- (define_insn "*movdi_insn_sp32_v9" [(set (match_operand:DI 0 "nonimmediate_operand" ! "=T,o,T,U,o,r,r,r,?T,?f,?f,?o,?f,?e,?e,?W") (match_operand:DI 1 "input_operand" ! " J,J,U,T,r,o,i,r, f, T, o, f, f, e, W, e"))] "! TARGET_ARCH64 && TARGET_V9 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ *************** *** 2549,2557 **** ldd\\t%1, %0 # # ! #" ! [(set_attr "type" "store,store,store,load,*,*,*,*,fpstore,fpload,*,*,*") ! (set_attr "length" "*,2,*,*,2,2,2,2,*,*,2,2,2")]) (define_insn "*movdi_insn_sp32" [(set (match_operand:DI 0 "nonimmediate_operand" --- 2549,2561 ---- ldd\\t%1, %0 # # ! # ! fmovd\\t%1, %0 ! ldd\\t%1, %0 ! std\\t%1, %0" ! [(set_attr "type" "store,store,store,load,*,*,*,*,fpstore,fpload,*,*,*,fpmove,fpload,fpstore") ! (set_attr "length" "*,2,*,*,2,2,2,2,*,*,2,2,2,*,*,*") ! (set_attr "fptype" "*,*,*,*,*,*,*,*,*,*,*,*,*,double,*,*")]) (define_insn "*movdi_insn_sp32" [(set (match_operand:DI 0 "nonimmediate_operand" *************** *** 2861,2867 **** (define_split [(set (match_operand:DI 0 "register_operand" "") (match_operand:DI 1 "const_double_operand" ""))] ! "! TARGET_ARCH64 && reload_completed" [(clobber (const_int 0))] " { --- 2865,2878 ---- (define_split [(set (match_operand:DI 0 "register_operand" "") (match_operand:DI 1 "const_double_operand" ""))] ! "reload_completed ! && (! TARGET_V9 ! || (! TARGET_ARCH64 ! && ((GET_CODE (operands[0]) == REG ! && REGNO (operands[0]) < 32) ! || (GET_CODE (operands[0]) == SUBREG ! && GET_CODE (SUBREG_REG (operands[0])) == REG ! && REGNO (SUBREG_REG (operands[0])) < 32))))" [(clobber (const_int 0))] " { diff -Nrc3pad gcc-3.2/gcc/config/sparc/t-linux64 gcc-3.2.1/gcc/config/sparc/t-linux64 *** gcc-3.2/gcc/config/sparc/t-linux64 Fri Jun 21 11:25:58 2002 --- gcc-3.2.1/gcc/config/sparc/t-linux64 Tue Oct 8 21:58:53 2002 *************** *** 1,8 **** ! MULTILIB_OPTIONS = m64/m32 mno-app-regs|mcmodel=medany ! MULTILIB_DIRNAMES = 64 32 alt ! MULTILIB_MATCHES = mcmodel?medany=mcmodel?medmid ! MULTILIB_EXCEPTIONS = m32/mno-app-regs* m32/mcmodel=* ! MULTILIB_EXCLUSIONS = m32/!m64/mno-app-regs m32/!m64/mcmodel=medany LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib --- 1,6 ---- ! MULTILIB_OPTIONS = m64/m32 ! MULTILIB_DIRNAMES = 64 32 ! MULTILIB_OSDIRNAMES = ../lib64 ../lib LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib *************** INSTALL_LIBGCC = install-multilib *** 10,19 **** EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ crtfastmath.o - SHLIB_SLIBDIR_SUFFIXES = 64:64 32: - # Override t-slibgcc-elf-ver to export some libgcc symbols with # the symbol versions that glibc used. # Avoid the t-linux version file. SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \ $(srcdir)/config/sparc/libgcc-sparc-glibc.ver --- 8,19 ---- EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ crtfastmath.o # Override t-slibgcc-elf-ver to export some libgcc symbols with # the symbol versions that glibc used. # Avoid the t-linux version file. SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \ $(srcdir)/config/sparc/libgcc-sparc-glibc.ver + + CRTSTUFF_T_CFLAGS = `if test x$$($(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) \ + -print-multi-os-directory) \ + = x../lib64; then echo -mcmodel=medany; fi` diff -Nrc3pad gcc-3.2/gcc/config/sparc/t-netbsd64 gcc-3.2.1/gcc/config/sparc/t-netbsd64 *** gcc-3.2/gcc/config/sparc/t-netbsd64 Tue Feb 19 17:43:25 2002 --- gcc-3.2.1/gcc/config/sparc/t-netbsd64 Wed Sep 4 21:34:47 2002 *************** *** 1,6 **** ! MULTILIB_OPTIONS = m32/m64 ! MULTILIB_DIRNAMES = 32 64 ! MULTILIB_MATCHES = ! LIBGCC = stmp-multilib ! INSTALL_LIBGCC = install-multilib --- 1,8 ---- ! # Disable multilib fow now, as NetBSD/sparc64 does not ship with ! # a 32-bit environment. ! #MULTILIB_OPTIONS = m32/m64 ! #MULTILIB_DIRNAMES = 32 64 ! #MULTILIB_MATCHES = ! #LIBGCC = stmp-multilib ! #INSTALL_LIBGCC = install-multilib diff -Nrc3pad gcc-3.2/gcc/config/sparc/t-sol2-64 gcc-3.2.1/gcc/config/sparc/t-sol2-64 *** gcc-3.2/gcc/config/sparc/t-sol2-64 Fri Jun 21 11:25:58 2002 --- gcc-3.2.1/gcc/config/sparc/t-sol2-64 Sat Oct 5 21:32:10 2002 *************** *** 1,11 **** MULTILIB_OPTIONS = m32/m64 MULTILIB_DIRNAMES = sparcv7 sparcv9 MULTILIB_MATCHES = LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o gmon.o crt1.o crti.o crtn.o gcrt1.o \ crtfastmath.o - - SHLIB_SLIBDIR_SUFFIXES = sparcv9:/sparcv9 sparcv7: --- 1,10 ---- MULTILIB_OPTIONS = m32/m64 MULTILIB_DIRNAMES = sparcv7 sparcv9 MULTILIB_MATCHES = + MULTILIB_OSDIRNAMES = . sparcv9 LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o gmon.o crt1.o crti.o crtn.o gcrt1.o \ crtfastmath.o diff -Nrc3pad gcc-3.2/gcc/config/xtensa/elf.h gcc-3.2.1/gcc/config/xtensa/elf.h *** gcc-3.2/gcc/config/xtensa/elf.h Wed Jan 23 21:03:50 2002 --- gcc-3.2.1/gcc/config/xtensa/elf.h Tue Nov 5 21:33:24 2002 *************** Software Foundation, 59 Temple Place - S *** 58,64 **** #undef ASM_FINAL_SPEC #undef LIB_SPEC ! #define LIB_SPEC "-lc -lsim -lc -lhandlers-sim" #undef STARTFILE_SPEC #define STARTFILE_SPEC "crt1-sim%O%s crti%O%s crtbegin%O%s _vectors%O%s" --- 58,64 ---- #undef ASM_FINAL_SPEC #undef LIB_SPEC ! #define LIB_SPEC "-lc -lsim -lc -lhandlers-sim -lhal" #undef STARTFILE_SPEC #define STARTFILE_SPEC "crt1-sim%O%s crti%O%s crtbegin%O%s _vectors%O%s" diff -Nrc3pad gcc-3.2/gcc/config/xtensa/xtensa-protos.h gcc-3.2.1/gcc/config/xtensa/xtensa-protos.h *** gcc-3.2/gcc/config/xtensa/xtensa-protos.h Fri Jun 28 19:40:31 2002 --- gcc-3.2.1/gcc/config/xtensa/xtensa-protos.h Mon Sep 30 20:34:09 2002 *************** *** 1,5 **** /* Prototypes of target machine for GNU compiler for Xtensa. ! Copyright (C) 2001 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. --- 1,5 ---- /* Prototypes of target machine for GNU compiler for Xtensa. ! Copyright 2001,2002 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. *************** extern void xtensa_reorg PARAMS ((rtx)); *** 89,95 **** extern rtx xtensa_return_addr PARAMS ((int, rtx)); extern rtx xtensa_builtin_saveregs PARAMS ((void)); extern enum reg_class xtensa_preferred_reload_class ! PARAMS ((rtx, enum reg_class)); extern enum reg_class xtensa_secondary_reload_class PARAMS ((enum reg_class, enum machine_mode, rtx, int)); extern int a7_overlap_mentioned_p PARAMS ((rtx x)); --- 89,95 ---- extern rtx xtensa_return_addr PARAMS ((int, rtx)); extern rtx xtensa_builtin_saveregs PARAMS ((void)); extern enum reg_class xtensa_preferred_reload_class ! PARAMS ((rtx, enum reg_class, int)); extern enum reg_class xtensa_secondary_reload_class PARAMS ((enum reg_class, enum machine_mode, rtx, int)); extern int a7_overlap_mentioned_p PARAMS ((rtx x)); diff -Nrc3pad gcc-3.2/gcc/config/xtensa/xtensa.c gcc-3.2.1/gcc/config/xtensa/xtensa.c *** gcc-3.2/gcc/config/xtensa/xtensa.c Fri Jun 28 19:40:31 2002 --- gcc-3.2.1/gcc/config/xtensa/xtensa.c Mon Sep 30 20:34:09 2002 *************** *** 1,5 **** /* Subroutines for insn-output.c for Tensilica's Xtensa architecture. ! Copyright (C) 2001 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. --- 1,5 ---- /* Subroutines for insn-output.c for Tensilica's Xtensa architecture. ! Copyright 2001,2002 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. *************** const char xtensa_leaf_regs[FIRST_PSEUDO *** 104,113 **** /* Map hard register number to register class */ const enum reg_class xtensa_regno_to_class[FIRST_PSEUDO_REGISTER] = { ! GR_REGS, SP_REG, GR_REGS, GR_REGS, ! GR_REGS, GR_REGS, GR_REGS, GR_REGS, ! GR_REGS, GR_REGS, GR_REGS, GR_REGS, ! GR_REGS, GR_REGS, GR_REGS, GR_REGS, AR_REGS, AR_REGS, BR_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, --- 104,113 ---- /* Map hard register number to register class */ const enum reg_class xtensa_regno_to_class[FIRST_PSEUDO_REGISTER] = { ! RL_REGS, SP_REG, RL_REGS, RL_REGS, ! RL_REGS, RL_REGS, RL_REGS, GR_REGS, ! RL_REGS, RL_REGS, RL_REGS, RL_REGS, ! RL_REGS, RL_REGS, RL_REGS, RL_REGS, AR_REGS, AR_REGS, BR_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, FP_REGS, *************** xtensa_va_arg (valist, type) *** 2625,2640 **** enum reg_class ! xtensa_preferred_reload_class (x, class) rtx x; enum reg_class class; { ! if (CONSTANT_P (x) && GET_CODE (x) == CONST_DOUBLE) return NO_REGS; ! /* Don't use sp for reloads! */ ! if (class == AR_REGS) ! return GR_REGS; return class; } --- 2625,2646 ---- enum reg_class ! xtensa_preferred_reload_class (x, class, isoutput) rtx x; enum reg_class class; + int isoutput; { ! if (!isoutput && CONSTANT_P (x) && GET_CODE (x) == CONST_DOUBLE) return NO_REGS; ! /* Don't use the stack pointer or hard frame pointer for reloads! ! The hard frame pointer would normally be OK except that it may ! briefly hold an incoming argument in the prologue, and reload ! won't know that it is live because the hard frame pointer is ! treated specially. */ ! ! if (class == AR_REGS || class == GR_REGS) ! return RL_REGS; return class; } *************** xtensa_secondary_reload_class (class, mo *** 2656,2668 **** if (!isoutput) { if (class == FP_REGS && constantpool_mem_p (x)) ! return GR_REGS; } if (ACC_REG_P (regno)) ! return (class == GR_REGS ? NO_REGS : GR_REGS); if (class == ACC_REG) ! return (GP_REG_P (regno) ? NO_REGS : GR_REGS); return NO_REGS; } --- 2662,2674 ---- if (!isoutput) { if (class == FP_REGS && constantpool_mem_p (x)) ! return RL_REGS; } if (ACC_REG_P (regno)) ! return ((class == GR_REGS || class == RL_REGS) ? NO_REGS : RL_REGS); if (class == ACC_REG) ! return (GP_REG_P (regno) ? NO_REGS : RL_REGS); return NO_REGS; } diff -Nrc3pad gcc-3.2/gcc/config/xtensa/xtensa.h gcc-3.2.1/gcc/config/xtensa/xtensa.h *** gcc-3.2/gcc/config/xtensa/xtensa.h Fri Jun 28 19:40:31 2002 --- gcc-3.2.1/gcc/config/xtensa/xtensa.h Mon Sep 30 20:34:09 2002 *************** *** 1,5 **** /* Definitions of Tensilica's Xtensa target machine for GNU compiler. ! Copyright (C) 2001 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. --- 1,5 ---- /* Definitions of Tensilica's Xtensa target machine for GNU compiler. ! Copyright 2001,2002 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. *************** enum reg_class *** 570,575 **** --- 570,576 ---- FP_REGS, /* floating point registers */ ACC_REG, /* MAC16 accumulator */ SP_REG, /* sp register (aka a1) */ + RL_REGS, /* preferred reload regs (not sp or fp) */ GR_REGS, /* integer registers except sp */ AR_REGS, /* all integer registers */ ALL_REGS, /* all registers */ *************** enum reg_class *** 590,595 **** --- 591,597 ---- "FP_REGS", \ "ACC_REG", \ "SP_REG", \ + "RL_REGS", \ "GR_REGS", \ "AR_REGS", \ "ALL_REGS" \ *************** enum reg_class *** 605,610 **** --- 607,613 ---- { 0xfff80000, 0x00000007 }, /* floating-point registers */ \ { 0x00000000, 0x00000008 }, /* MAC16 accumulator */ \ { 0x00000002, 0x00000000 }, /* stack pointer register */ \ + { 0x0000ff7d, 0x00000000 }, /* preferred reload registers */ \ { 0x0000fffd, 0x00000000 }, /* general-purpose registers */ \ { 0x0003ffff, 0x00000000 }, /* integer registers */ \ { 0xffffffff, 0x0000000f } /* all registers */ \ *************** extern enum reg_class xtensa_char_to_cla *** 720,729 **** : FALSE) #define PREFERRED_RELOAD_CLASS(X, CLASS) \ ! xtensa_preferred_reload_class (X, CLASS) #define PREFERRED_OUTPUT_RELOAD_CLASS(X, CLASS) \ ! (CLASS) #define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \ xtensa_secondary_reload_class (CLASS, MODE, X, 0) --- 723,732 ---- : FALSE) #define PREFERRED_RELOAD_CLASS(X, CLASS) \ ! xtensa_preferred_reload_class (X, CLASS, 0) #define PREFERRED_OUTPUT_RELOAD_CLASS(X, CLASS) \ ! xtensa_preferred_reload_class (X, CLASS, 1) #define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \ xtensa_secondary_reload_class (CLASS, MODE, X, 0) diff -Nrc3pad gcc-3.2/gcc/config.gcc gcc-3.2.1/gcc/config.gcc *** gcc-3.2/gcc/config.gcc Tue Aug 6 15:20:55 2002 --- gcc-3.2.1/gcc/config.gcc Wed Oct 23 17:28:29 2002 *************** i[34567]86-*-rtems*|i[34567]86-*-rtemsel *** 1405,1411 **** i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5 xm_defines=POSIX install_headers_dir=install-headers-cpio ! tm_file=i386/sco5.h if test x$gas = xyes then tm_file="usegas.h ${tm_file}" --- 1405,1411 ---- i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5 xm_defines=POSIX install_headers_dir=install-headers-cpio ! tm_file="${tm_file} i386/att.h i386/sco5.h" if test x$gas = xyes then tm_file="usegas.h ${tm_file}" diff -Nrc3pad gcc-3.2/gcc/configure gcc-3.2.1/gcc/configure *** gcc-3.2/gcc/configure Sat Jun 29 00:20:11 2002 --- gcc-3.2.1/gcc/configure Fri Sep 6 10:58:48 2002 *************** EOF *** 7578,7619 **** fi ! if test "x$gcc_cv_as_flags64" != xno; then ! echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6 echo "configure:7584: checking for assembler offsetable %lo() support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ! gcc_cv_as_offsetable_lo10=unknown ! if test "x$gcc_cv_as" != x; then ! # Check if assembler has offsetable %lo() ! echo "or %g1, %lo(ab) + 12, %g1" > conftest.s ! echo "or %g1, %lo(ab + 12), %g1" > conftest1.s ! if $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s \ ! > /dev/null 2>&1 && ! $gcc_cv_as $gcc_cv_as_flags64 -o conftest1.o conftest1.s \ ! > /dev/null 2>&1; then ! if cmp conftest.o conftest1.o > /dev/null 2>&1; then ! gcc_cv_as_offsetable_lo10=no ! else ! gcc_cv_as_offsetable_lo10=yes ! fi ! else gcc_cv_as_offsetable_lo10=no fi ! rm -f conftest.s conftest.o conftest1.s conftest1.o fi ! fi echo "$ac_t""$gcc_cv_as_offsetable_lo10" 1>&6 ! if test "x$gcc_cv_as_offsetable_lo10" = xyes; then ! cat >> confdefs.h <<\EOF #define HAVE_AS_OFFSETABLE_LO10 1 EOF - fi fi ;; --- 7578,7617 ---- fi ! echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6 echo "configure:7584: checking for assembler offsetable %lo() support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ! gcc_cv_as_offsetable_lo10=unknown ! if test "x$gcc_cv_as" != x; then ! # Check if assembler has offsetable %lo() ! echo "or %g1, %lo(ab) + 12, %g1" > conftest.s ! echo "or %g1, %lo(ab + 12), %g1" > conftest1.s ! if $gcc_cv_as -xarch=v9 -o conftest.o conftest.s \ ! > /dev/null 2>&1 && ! $gcc_cv_as -xarch=v9 -o conftest1.o conftest1.s \ ! > /dev/null 2>&1; then ! if cmp conftest.o conftest1.o > /dev/null 2>&1; then gcc_cv_as_offsetable_lo10=no + else + gcc_cv_as_offsetable_lo10=yes fi ! else ! gcc_cv_as_offsetable_lo10=no fi ! rm -f conftest.s conftest.o conftest1.s conftest1.o ! fi ! fi echo "$ac_t""$gcc_cv_as_offsetable_lo10" 1>&6 ! if test "x$gcc_cv_as_offsetable_lo10" = xyes; then ! cat >> confdefs.h <<\EOF #define HAVE_AS_OFFSETABLE_LO10 1 EOF fi ;; diff -Nrc3pad gcc-3.2/gcc/configure.in gcc-3.2.1/gcc/configure.in *** gcc-3.2/gcc/configure.in Sat Jun 29 00:20:11 2002 --- gcc-3.2.1/gcc/configure.in Fri Sep 6 10:58:47 2002 *************** EOF *** 1846,1878 **** [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.]) fi ! if test "x$gcc_cv_as_flags64" != xno; then ! AC_CACHE_CHECK([for assembler offsetable %lo() support], ! gcc_cv_as_offsetable_lo10, [ ! gcc_cv_as_offsetable_lo10=unknown ! if test "x$gcc_cv_as" != x; then ! # Check if assembler has offsetable %lo() ! echo "or %g1, %lo(ab) + 12, %g1" > conftest.s ! echo "or %g1, %lo(ab + 12), %g1" > conftest1.s ! if $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s \ ! > /dev/null 2>&1 && ! $gcc_cv_as $gcc_cv_as_flags64 -o conftest1.o conftest1.s \ ! > /dev/null 2>&1; then ! if cmp conftest.o conftest1.o > /dev/null 2>&1; then ! gcc_cv_as_offsetable_lo10=no ! else ! gcc_cv_as_offsetable_lo10=yes ! fi ! else gcc_cv_as_offsetable_lo10=no fi ! rm -f conftest.s conftest.o conftest1.s conftest1.o fi ! ]) ! if test "x$gcc_cv_as_offsetable_lo10" = xyes; then ! AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1, ! [Define if your assembler supports offsetable %lo().]) fi fi ;; --- 1846,1876 ---- [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.]) fi ! AC_CACHE_CHECK([for assembler offsetable %lo() support], ! gcc_cv_as_offsetable_lo10, [ ! gcc_cv_as_offsetable_lo10=unknown ! if test "x$gcc_cv_as" != x; then ! # Check if assembler has offsetable %lo() ! echo "or %g1, %lo(ab) + 12, %g1" > conftest.s ! echo "or %g1, %lo(ab + 12), %g1" > conftest1.s ! if $gcc_cv_as -xarch=v9 -o conftest.o conftest.s \ ! > /dev/null 2>&1 && ! $gcc_cv_as -xarch=v9 -o conftest1.o conftest1.s \ ! > /dev/null 2>&1; then ! if cmp conftest.o conftest1.o > /dev/null 2>&1; then gcc_cv_as_offsetable_lo10=no + else + gcc_cv_as_offsetable_lo10=yes fi ! else ! gcc_cv_as_offsetable_lo10=no fi ! rm -f conftest.s conftest.o conftest1.s conftest1.o fi + ]) + if test "x$gcc_cv_as_offsetable_lo10" = xyes; then + AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1, + [Define if your assembler supports offsetable %lo().]) fi ;; diff -Nrc3pad gcc-3.2/gcc/cp/ChangeLog gcc-3.2.1/gcc/cp/ChangeLog *** gcc-3.2/gcc/cp/ChangeLog Wed Aug 14 09:00:06 2002 --- gcc-3.2.1/gcc/cp/ChangeLog Tue Nov 19 17:48:55 2002 *************** *** 1,3 **** --- 1,280 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-11 Nathan Sidwell + + PR c++/7788 + * rtti.c (unemitted_tinfo_decl_p): Check it has a field. + + 2002-11-02 Zack Weinberg + + PR c/7353 redux + * decl2.c (grokfield): Reject TYPE_DECLs with initializers. + + 2002-11-01 Gabriel Dos Reis + + PR C++/2521 + * typeck.c (build_x_unary_op): Handle pointer-to-member. + + 2002-10-30 Mark Mitchell + + PR c++/8160 + * typeck2.c (process_init_constructor): Call complete_array_type. + + PR c++/8149 + * decl.c (make_typename_type): Issue errors about invalid results. + + 2002-10-29 Mark Mitchell + + PR c++/8287 + * decl.c (finish_destructor_body): Create the label to jump to + when returning from a destructor here. + (finish_function_body): Rather than here. + + * semantics.c (finish_alignof): Call complete_type before calling + c_alignof. + * decl2.c (build_expr_from_tree): Use + finish_sizeof/finish_alignof. + + 2002-10-10 Jim Wilson + + * decl.c (duplicate_decls): Don't call decl_attributes. + + 2002-10-25 Zack Weinberg + + PR middle-end/6994 + * cp-lang.c (cp_var_mod_type_p): New: C++ hook for + variably_modified_type_p. + * cp-tree.h: Remove prototype of variably_modified_type_p. + * tree.c (variably_modified_type_p): Remove; now implemented + in language-independent code. + + PR c++/7266 + * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a + SCOPE_REF is not null before dereferencing it. + + 2002-10-24 David Edelsohn + + PR c++/7228 + * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that + lang_type structure exists before accessing field. + (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro. + (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar. + (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro. + * class.c (check_field_decls): Use new macros. + * typeck2.c (process_init_constructor): Remove redundant check for + existence of lang_type structure. + + 2002-10-23 Mark Mitchell + + PR c++/8067 + * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and + related variables. + + 2002-10-23 Mark Mitchell + + PR c++/7679 + * spew.c (next_token): Do not return an endless stream of + END_OF_SAVED_INPUT tokens. + (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of + the cached token stream. + (snarf_defarg): Likewise. + + 2002-10-22 Mark Mitchell + + PR c++/6579 + * spew.c (snarf_parenthesized_expression): New function. + (snarf_block): Use it. + + 2002-10-21 Matthias Klose + + * Backport, without whitespace change: + 2002-06-19 Akim Demaille + * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with + decl.h's TYPENAME. + * spew.c, lex.c: Adjust. + * parse.y (explicit_instantiation): Add empty action to override + the default $$ = $1 where it introduces a type clash. + + 2002-10-21 Mark Mitchell + + PR c++/8218 + * cp-tree.h (lang_type_class): Add contains_empty_class_p. + (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro. + * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P. + (check_field_decls): Likewise. + (layout_class_type): Likewise. + (finish_struct_1): Initialize it. + (walk_subobject_offsets): Use it to prune searches. + + 2002-10-18 Zack Weinberg + + * decl.c (start_decl): Point users of the old initialized- + typedef extension at __typeof__. + + 2002-10-18 Nathan Sidwell + + PR c++/7676 + * class.c (add_method): Compare template parms too. + + 2002-10-17 Mark Mitchell + + * mangle.c (globals): Add entity and need_abi_warning. + (write_prefix): Likewise. + (write_template_prefix): Likewise. + (start_mangling): Add entity parameter. + (finish_mangling): Warn about names whose mangling will change. + (mangle_decl_string): Adjust. + (mangle_type_string): Likewise. + (mangle_special_for_type): Likewise. + (mangle_ctor_vtbl_for_type): Likewise. + (mangle_thunk): Likewise. + (mangle_guard_variable): Likewise. + (mangle_ref_init_variable): Likewise. + + PR c++/7584 + * class.c (handle_using_decl): Allow the declaration used to be + from an ambiguous base. + + 2002-10-16 Mark Mitchell + + PR c++/7478 + * cvt.c (convert_to_reference): Allow references as the incoming + type. + + PR c++/8134 + * tree.c (zero_init_p): Always return 1. + + PR c++/7524 + * method.c (do_build_assign_ref): Use cp_build_qualified_type, not + build_qualified_type. + + 2002-10-14 Mark Mitchell + + PR c++/7176 + * lex.c (do_identifier): Add another option for the parsing + parameter. + * parse.y (do_id): Use it. + + 2002-10-11 Mark Mitchell + + PR c++/5661 + * cp-tree.h (variably_modified_type_p): New function. + (grokdeclarator) Tighten check for variably modified types as + fields. + * pt.c (convert_template_argument): Do not allow variably modified + types as template arguments. + * tree.c (variably_modified_type_p): New function. + + 2002-10-11 Jason Molenda + + * init.c (build_field_list): Provide uses_unions_p with a default + value. + + 2002-10-10 Gabriel Dos Reis + + PRs C++/6803, C++/7721 and C++/7803 + * decl.c (grokdeclarator): Gracefully handle template-name as + decl-specifier. + + 2002-10-09 Zack Weinberg + + PR c/7353 + * decl.c (start_decl): Unconditionally issue error for + 'typedef foo = bar'. + (cp_finish_decl): Remove special case for TYPE_DECL with initializer. + (grokdeclarator): Remove redundant error for 'typedef foo = bar'. + + 2002-10-03 Mark Mitchell + + PR c++/7754 + * decl2.c (finish_anon_union): Do not expand anonymous unions when + procesing template functions. + * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable + type. Call layout_decl. + (tsubst_expr, case DECL_STMT): Handle anonymous unions. + + 2002-10-07 Richard Henderson + + * decl2.c: Complete reversion of c++/7754. + + 2002-10-06 Roger Sayle + + PR optimization/6627 + * cp/cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition + from here, and move it to tree.h. + * cp/decl.c (cxx_init_decl_processing): If storing the vbit + in function pointers, ensure that force_align_functions_log + is atleast one. + + 2002-10-04 H.J. Lu (hjl@gnu.org) + + * pt.c (tsubst_decl, case VAR_DECL): Back out the last change. + (tsubst_expr, case DECL_STMT): Likewise. + + 2002-10-02 Mark Mitchell + + PR c++/7754 + * decl2.c (finish_anon_union): Do not expand anonymous unions when + procesing template functions. + * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable + type. Call layout_decl. + (tsubst_expr, case DECL_STMT): Handle anonymous unions. + + 2002-10-02 Mark Mitchell + + PR c++/7188. + * init.c (expand_member_init): Allow a FIELD_DECL to be passed in + directly. + * pt.c (tsubst_initializer_list): Use expand_member_init. + + 2002-09-04 Jakub Jelinek + + * decl.c (start_cleanup_fn): Clear interface_only before + start_function, restore it afterwards. + + 2002-09-01 Alexandre Oliva + + * parse.y (sizeof, alignof, typeof): New non-terminals to + increment skip_evaluation. Replace terminals with them and + decrement skip_evaluation at the end of rules using them. + * decl2.c (mark_used): Don't assemble_external if + skipping evaluation. + + 2002-08-31 Jason Merrill + + * cp-lang.c (cp_expr_size): Don't abort. + + 2002-08-27 Mark Mitchell + + * cp-tree.h (warn_abi): Declare it. + * decl.c (warn_abi): Define it. + (cxx_decode_option): Set it. + * class.c (layout_virtual_bases): Warn about bugs in G++ that + result in incorrect object layouts. + (layout_class_type): Likewise. + + 2002-08-22 Jason Merrill + + PR c++/5607 + * search.c (check_final_overrider): No longer static. + * class.c (update_vtable_entry_for_fn): Call it. + * cp-tree.h: Adjust. + + * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define. + (cp_expr_size): New fn. + * call.c (convert_arg_to_ellipsis): Promote non-POD warning to error. + * typeck.c (build_modify_expr): Don't use save_expr on an lvalue. + 2002-08-14 Release Manager * GCC 3.2 Released. *************** *** 298,304 **** 2002-04-29 Nathan Sidwell PR c++/5719 ! * decl.c (grok_op_properties): Assignment ops don't have to return by value. operator% should. 2002-04-28 Franz Sirl --- 575,581 ---- 2002-04-29 Nathan Sidwell PR c++/5719 ! * decl.c (grok_op_properties): Assignment ops don't have to return by value. operator% should. 2002-04-28 Franz Sirl *************** *** 382,388 **** (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. * semantics.c (begin_gobal_stmt_expr): Adjust call to expand_start_stmt_expr. ! 2002-04-15 Mark Mitchell * decl.c (register_dtor_fn): Pass the address of dso_handle, not --- 659,665 ---- (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. * semantics.c (begin_gobal_stmt_expr): Adjust call to expand_start_stmt_expr. ! 2002-04-15 Mark Mitchell * decl.c (register_dtor_fn): Pass the address of dso_handle, not *************** *** 411,421 **** * typeck.c (type_after_usual_arithmetic_conversions): If two types have the same variant, return immediately. ! When two floating-point operands are the same precision: convert to float if one of the operands is float; if neither operand is one of the standard types, return the type of the first operand. ! 2002-04-12 Richard Sandiford * decl.c (duplicate_decls): Don't try to unify an implicit typedef --- 688,698 ---- * typeck.c (type_after_usual_arithmetic_conversions): If two types have the same variant, return immediately. ! When two floating-point operands are the same precision: convert to float if one of the operands is float; if neither operand is one of the standard types, return the type of the first operand. ! 2002-04-12 Richard Sandiford * decl.c (duplicate_decls): Don't try to unify an implicit typedef *************** *** 473,479 **** set before checking it. PR c++/6179 ! * method.c (implicitly_declare_fn): Pass unqualified type to synthesize_exception_spec. 2002-04-03 Jason Merrill --- 750,756 ---- set before checking it. PR c++/6179 ! * method.c (implicitly_declare_fn): Pass unqualified type to synthesize_exception_spec. 2002-04-03 Jason Merrill *************** *** 538,544 **** PR c++/4884 * call.c (build_op_delete_call): Allow for the fact the placement may be a COMPOUND_EXPR. ! 2002-03-26 Nathan Sidwell PR c++/5682 --- 815,821 ---- PR c++/4884 * call.c (build_op_delete_call): Allow for the fact the placement may be a COMPOUND_EXPR. ! 2002-03-26 Nathan Sidwell PR c++/5682 *************** *** 592,598 **** 2002-03-18 Ashif Harji ! * lang-specs.h (compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. 2002-03-18 Jason Merrill --- 869,875 ---- 2002-03-18 Ashif Harji ! * lang-specs.h (compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. 2002-03-18 Jason Merrill *************** *** 709,715 **** with pointer to member conversions. 2002-03-08 Craig Rodrigues ! * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of conditional return void. --- 986,992 ---- with pointer to member conversions. 2002-03-08 Craig Rodrigues ! * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of conditional return void. *************** *** 743,749 **** * decl.c (finish_function): Only warn about missing return statement with -Wreturn-type. ! 2002-02-24 Craig Rodrigues PR c++/4093 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition --- 1020,1026 ---- * decl.c (finish_function): Only warn about missing return statement with -Wreturn-type. ! 2002-02-24 Craig Rodrigues PR c++/4093 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition *************** *** 797,803 **** 2002-02-19 Jason Merrill ! ABI change: Mangle `void (A::*)() const' as M1AKFvvE, not MK1AFvvE. * mangle.c (write_function_type): Write cv-quals for member function type here. --- 1074,1080 ---- 2002-02-19 Jason Merrill ! ABI change: Mangle `void (A::*)() const' as M1AKFvvE, not MK1AFvvE. * mangle.c (write_function_type): Write cv-quals for member function type here. *************** *** 872,885 **** (coerce_template_template_parms, convert_template_argument, coerce_template_parms, maybe_get_template_decl_from_type_decl, lookup_template_class, tsubst_friend_function, tsubst_friend_class, ! instantiate_class_template, tsubst_template_arg_vector, ! tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, tsubst_decl, tsubst_arg_types, tsubst_function_type, ! tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, instantiate_template, fn_type_unification, ! resolve_overloaded_unification, verify_class_unification, ! unify, get_bindings_real, do_type_instantiation, ! regenerate_decl_from_template, instantiate_decl, tsubst_initializer_list, tsubst_enum, get_mostly_instantiated_function_type, invalid_nontype_parm_type_p): Likewise. --- 1149,1162 ---- (coerce_template_template_parms, convert_template_argument, coerce_template_parms, maybe_get_template_decl_from_type_decl, lookup_template_class, tsubst_friend_function, tsubst_friend_class, ! instantiate_class_template, tsubst_template_arg_vector, ! tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, tsubst_decl, tsubst_arg_types, tsubst_function_type, ! tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, instantiate_template, fn_type_unification, ! resolve_overloaded_unification, verify_class_unification, ! unify, get_bindings_real, do_type_instantiation, ! regenerate_decl_from_template, instantiate_decl, tsubst_initializer_list, tsubst_enum, get_mostly_instantiated_function_type, invalid_nontype_parm_type_p): Likewise. *************** *** 940,946 **** 2002-02-01 Jason Merrill PR c++/4872 ! * decl.c (finish_function): Warn about a non-void function with no return statement and no abnormal exit. * cp-tree.h (struct cp_language_function): Add returns_abnormally. (current_function_returns_abnormally): New macro. --- 1217,1223 ---- 2002-02-01 Jason Merrill PR c++/4872 ! * decl.c (finish_function): Warn about a non-void function with no return statement and no abnormal exit. * cp-tree.h (struct cp_language_function): Add returns_abnormally. (current_function_returns_abnormally): New macro. diff -Nrc3pad gcc-3.2/gcc/cp/call.c gcc-3.2.1/gcc/cp/call.c *** gcc-3.2/gcc/cp/call.c Sat Apr 13 01:31:06 2002 --- gcc-3.2.1/gcc/cp/call.c Fri Aug 23 12:00:40 2002 *************** convert_arg_to_ellipsis (arg) *** 4022,4030 **** if (arg != error_mark_node && ! pod_type_p (TREE_TYPE (arg))) { ! /* Undefined behaviour [expr.call] 5.2.2/7. */ ! warning ("cannot pass objects of non-POD type `%#T' through `...'", ! TREE_TYPE (arg)); } return arg; --- 4022,4033 ---- if (arg != error_mark_node && ! pod_type_p (TREE_TYPE (arg))) { ! /* Undefined behaviour [expr.call] 5.2.2/7. We used to just warn ! here and do a bitwise copy, but now cp_expr_size will abort if we ! try to do that. */ ! error ("cannot pass objects of non-POD type `%#T' through `...'", ! TREE_TYPE (arg)); ! arg = error_mark_node; } return arg; diff -Nrc3pad gcc-3.2/gcc/cp/class.c gcc-3.2.1/gcc/cp/class.c *** gcc-3.2/gcc/cp/class.c Sun Aug 4 13:09:31 2002 --- gcc-3.2.1/gcc/cp/class.c Fri Oct 25 15:20:28 2002 *************** add_method (type, method, error_p) *** 945,950 **** --- 945,957 ---- && (TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms1))) != TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms2))))) same = 0; + + /* For templates, the template parms must be identical. */ + if (TREE_CODE (fn) == TEMPLATE_DECL + && !comp_template_parms (DECL_TEMPLATE_PARMS (fn), + DECL_TEMPLATE_PARMS (method))) + same = 0; + if (! DECL_STATIC_FUNCTION_P (fn)) parms1 = TREE_CHAIN (parms1); if (! DECL_STATIC_FUNCTION_P (method)) *************** handle_using_decl (using_decl, t) *** 1150,1158 **** tree flist = NULL_TREE; tree old_value; ! binfo = binfo_or_else (ctype, t); if (! binfo) ! return; if (name == constructor_name (ctype) || name == constructor_name_full (ctype)) --- 1157,1168 ---- tree flist = NULL_TREE; tree old_value; ! binfo = lookup_base (t, ctype, ba_any, NULL); if (! binfo) ! { ! error_not_base_type (t, ctype); ! return; ! } if (name == constructor_name (ctype) || name == constructor_name_full (ctype)) *************** check_bases (t, cant_have_default_ctor_p *** 1338,1343 **** --- 1348,1355 ---- TYPE_OVERLOADS_ARRAY_REF (t) |= TYPE_OVERLOADS_ARRAY_REF (basetype); TYPE_OVERLOADS_ARROW (t) |= TYPE_OVERLOADS_ARROW (basetype); TYPE_POLYMORPHIC_P (t) |= TYPE_POLYMORPHIC_P (basetype); + CLASSTYPE_CONTAINS_EMPTY_CLASS_P (t) + |= CLASSTYPE_CONTAINS_EMPTY_CLASS_P (basetype); } } *************** update_vtable_entry_for_fn (t, binfo, fn *** 2454,2459 **** --- 2466,2475 ---- if (overrider == error_mark_node) return; + /* Check for unsupported covariant returns again now that we've + calculated the base offsets. */ + check_final_overrider (TREE_PURPOSE (overrider), fn); + /* Assume that we will produce a thunk that convert all the way to the final overrider, and not to an intermediate virtual base. */ virtual_base = NULL_TREE; *************** check_field_decls (t, access_decls, empt *** 3233,3242 **** --- 3249,3266 ---- ; else { + tree element_type; + /* The class is non-empty. */ *empty_p = 0; /* The class is not even nearly empty. */ CLASSTYPE_NEARLY_EMPTY_P (t) = 0; + /* If one of the data members contains an empty class, + so does T. */ + element_type = strip_array_types (type); + if (CLASS_TYPE_P (element_type) + && CLASSTYPE_CONTAINS_EMPTY_CLASS_P (element_type)) + CLASSTYPE_CONTAINS_EMPTY_CLASS_P (t) = 1; } } *************** check_field_decls (t, access_decls, empt *** 3318,3324 **** { CLASSTYPE_NON_POD_P (t) = 1; if (DECL_INITIAL (x) == NULL_TREE) ! CLASSTYPE_REF_FIELDS_NEED_INIT (t) = 1; /* ARM $12.6.2: [A member initializer list] (or, for an aggregate, initialization by a brace-enclosed list) is the --- 3342,3348 ---- { CLASSTYPE_NON_POD_P (t) = 1; if (DECL_INITIAL (x) == NULL_TREE) ! SET_CLASSTYPE_REF_FIELDS_NEED_INIT (t, 1); /* ARM $12.6.2: [A member initializer list] (or, for an aggregate, initialization by a brace-enclosed list) is the *************** check_field_decls (t, access_decls, empt *** 3352,3358 **** { C_TYPE_FIELDS_READONLY (t) = 1; if (DECL_INITIAL (x) == NULL_TREE) ! CLASSTYPE_READONLY_FIELDS_NEED_INIT (t) = 1; /* ARM $12.6.2: [A member initializer list] (or, for an aggregate, initialization by a brace-enclosed list) is the --- 3376,3382 ---- { C_TYPE_FIELDS_READONLY (t) = 1; if (DECL_INITIAL (x) == NULL_TREE) ! SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT (t, 1); /* ARM $12.6.2: [A member initializer list] (or, for an aggregate, initialization by a brace-enclosed list) is the *************** check_field_decls (t, access_decls, empt *** 3368,3375 **** else if (IS_AGGR_TYPE (type)) { C_TYPE_FIELDS_READONLY (t) |= C_TYPE_FIELDS_READONLY (type); ! CLASSTYPE_READONLY_FIELDS_NEED_INIT (t) ! |= CLASSTYPE_READONLY_FIELDS_NEED_INIT (type); } /* Core issue 80: A nonstatic data member is required to have a --- 3392,3400 ---- else if (IS_AGGR_TYPE (type)) { C_TYPE_FIELDS_READONLY (t) |= C_TYPE_FIELDS_READONLY (type); ! SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT (t, ! CLASSTYPE_READONLY_FIELDS_NEED_INIT (t) ! | CLASSTYPE_READONLY_FIELDS_NEED_INIT (type)); } /* Core issue 80: A nonstatic data member is required to have a *************** walk_subobject_offsets (type, f, offset, *** 3503,3508 **** --- 3528,3537 ---- tree field; int i; + /* Avoid recursing into objects that are not interesting. */ + if (!CLASSTYPE_CONTAINS_EMPTY_CLASS_P (type)) + return 0; + /* Record the location of TYPE. */ r = (*f) (type, offset, offsets); if (r) *************** walk_subobject_offsets (type, f, offset, *** 3548,3556 **** --- 3577,3591 ---- } else if (TREE_CODE (type) == ARRAY_TYPE) { + tree element_type = strip_array_types (type); tree domain = TYPE_DOMAIN (type); tree index; + /* Avoid recursing into objects that are not interesting. */ + if (!CLASS_TYPE_P (element_type) + || !CLASSTYPE_CONTAINS_EMPTY_CLASS_P (element_type)) + return 0; + /* Step through each of the elements in the array. */ for (index = size_zero_node; INT_CST_LT (index, TYPE_MAX_VALUE (domain)); *************** check_bases_and_members (t, empty_p) *** 4263,4268 **** --- 4298,4304 ---- /* Assume that the class is nearly empty; we'll clear this flag if it turns out not to be nearly empty. */ CLASSTYPE_NEARLY_EMPTY_P (t) = 1; + CLASSTYPE_CONTAINS_EMPTY_CLASS_P (t) = 0; /* Check all the base-classes. */ check_bases (t, &cant_have_default_ctor, &cant_have_const_ctor, *************** layout_virtual_bases (t, offsets) *** 4553,4558 **** --- 4589,4595 ---- { tree vbases, dsize; unsigned HOST_WIDE_INT eoc; + bool first_vbase = true; if (CLASSTYPE_N_BASECLASSES (t) == 0) return; *************** layout_virtual_bases (t, offsets) *** 4580,4585 **** --- 4617,4623 ---- if (!TREE_VIA_VIRTUAL (vbases)) continue; + vbase = binfo_for_vbase (BINFO_TYPE (vbases), t); if (!BINFO_PRIMARY_P (vbase)) *************** layout_virtual_bases (t, offsets) *** 4597,4603 **** /* Add padding so that we can put the virtual base class at an appropriately aligned offset. */ dsize = round_up (dsize, desired_align); - usize = size_binop (CEIL_DIV_EXPR, dsize, bitsize_unit_node); /* We try to squish empty virtual bases in just like --- 4635,4640 ---- *************** layout_virtual_bases (t, offsets) *** 4625,4635 **** --- 4662,4691 ---- CLASSTYPE_SIZE (basetype))); } + /* If the first virtual base might have been placed at a + lower address, had we started from CLASSTYPE_SIZE, rather + than TYPE_SIZE, issue a warning. There can be both false + positives and false negatives from this warning in rare + cases; to deal with all the possibilities would probably + require performing both layout algorithms and comparing + the results which is not particularly tractable. */ + if (warn_abi + && first_vbase + && tree_int_cst_lt (size_binop (CEIL_DIV_EXPR, + round_up (CLASSTYPE_SIZE (t), + desired_align), + bitsize_unit_node), + BINFO_OFFSET (vbase))) + warning ("offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC", + basetype); + /* Keep track of the offsets assigned to this virtual base. */ record_subobject_offsets (BINFO_TYPE (vbase), BINFO_OFFSET (vbase), offsets, /*vbases_p=*/0); + + first_vbase = false; } } *************** layout_class_type (t, empty_p, vfuns_p, *** 4767,4772 **** --- 4823,4830 ---- /* Maps offsets (represented as INTEGER_CSTs) to a TREE_LIST of types that appear at that offset. */ splay_tree empty_base_offsets; + /* True if the last field layed out was a bit-field. */ + bool last_field_was_bitfield = false; /* Keep track of the first non-static data member. */ non_static_data_members = TYPE_FIELDS (t); *************** layout_class_type (t, empty_p, vfuns_p, *** 4856,4861 **** --- 4914,4931 ---- layout_nonempty_base_or_field (rli, field, NULL_TREE, empty_base_offsets, t); + /* If a bit-field does not immediately follow another bit-field, + and yet it starts in the middle of a byte, we have failed to + comply with the ABI. */ + if (warn_abi + && DECL_C_BIT_FIELD (field) + && !last_field_was_bitfield + && !integer_zerop (size_binop (TRUNC_MOD_EXPR, + DECL_FIELD_BIT_OFFSET (field), + bitsize_unit_node))) + cp_warning_at ("offset of `%D' is not ABI-compliant and may change in a future version of GCC", + field); + /* If we needed additional padding after this field, add it now. */ if (padding) *************** layout_class_type (t, empty_p, vfuns_p, *** 4873,4878 **** --- 4943,4950 ---- NULL_TREE, empty_base_offsets, t); } + + last_field_was_bitfield = DECL_C_BIT_FIELD (field); } /* It might be the case that we grew the class to allocate a *************** layout_class_type (t, empty_p, vfuns_p, *** 4934,4939 **** --- 5006,5015 ---- CLASSTYPE_ALIGN (t) = TYPE_ALIGN (t); CLASSTYPE_USER_ALIGN (t) = TYPE_USER_ALIGN (t); + /* Every empty class contains an empty class. */ + if (*empty_p) + CLASSTYPE_CONTAINS_EMPTY_CLASS_P (t) = 1; + /* Set the TYPE_DECL for this type to contain the right value for DECL_OFFSET, so that we can use it as part of a COMPONENT_REF for multiple inheritance. */ diff -Nrc3pad gcc-3.2/gcc/cp/cp-lang.c gcc-3.2.1/gcc/cp/cp-lang.c *** gcc-3.2/gcc/cp/cp-lang.c Thu May 23 17:57:42 2002 --- gcc-3.2.1/gcc/cp/cp-lang.c Fri Oct 25 22:11:13 2002 *************** Boston, MA 02111-1307, USA. */ *** 28,34 **** #include "langhooks.h" #include "langhooks-def.h" ! static HOST_WIDE_INT cxx_get_alias_set PARAMS ((tree)); #undef LANG_HOOKS_NAME #define LANG_HOOKS_NAME "GNU C++" --- 28,36 ---- #include "langhooks.h" #include "langhooks-def.h" ! static HOST_WIDE_INT cxx_get_alias_set PARAMS ((tree)); ! static tree cp_expr_size PARAMS ((tree)); ! static bool cp_var_mod_type_p PARAMS ((tree)); #undef LANG_HOOKS_NAME #define LANG_HOOKS_NAME "GNU C++" *************** static HOST_WIDE_INT cxx_get_alias_set P *** 83,88 **** --- 85,92 ---- cp_copy_res_decl_for_inlining #undef LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P #define LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P anon_aggr_type_p + #undef LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P + #define LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P cp_var_mod_type_p #undef LANG_HOOKS_TREE_INLINING_START_INLINING #define LANG_HOOKS_TREE_INLINING_START_INLINING cp_start_inlining #undef LANG_HOOKS_TREE_INLINING_END_INLINING *************** static HOST_WIDE_INT cxx_get_alias_set P *** 91,96 **** --- 95,102 ---- #define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN cp_dump_tree #undef LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN #define LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN cp_type_quals + #undef LANG_HOOKS_EXPR_SIZE + #define LANG_HOOKS_EXPR_SIZE cp_expr_size /* Each front end provides its own hooks, for toplev.c. */ const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; *************** cxx_get_alias_set (t) *** 108,110 **** --- 114,153 ---- return c_common_get_alias_set (t); } + + /* Langhook for expr_size: Tell the backend that the value of an expression + of non-POD class type does not include any tail padding; a derived class + might have allocated something there. */ + + static tree + cp_expr_size (exp) + tree exp; + { + if (CLASS_TYPE_P (TREE_TYPE (exp))) + { + /* This would be wrong for a type with virtual bases, but they should + not get here. */ + return CLASSTYPE_SIZE_UNIT (TREE_TYPE (exp)); + } + else + /* Use the default code. */ + return lhd_expr_size (exp); + } + + /* Returns true if T is a variably modified type, in the sense of C99. + This routine needs only check cases that cannot be handled by the + language-independent logic in tree-inline.c. */ + + static bool + cp_var_mod_type_p (tree type) + { + /* If TYPE is a pointer-to-member, it is variably modified if either + the class or the member are variably modified. */ + if (TYPE_PTRMEM_P (type) || TYPE_PTRMEMFUNC_P (type)) + return (variably_modified_type_p (TYPE_PTRMEM_CLASS_TYPE (type)) + || variably_modified_type_p (TYPE_PTRMEM_POINTED_TO_TYPE (type))); + + /* All other types are not variably modified. */ + return false; + } + diff -Nrc3pad gcc-3.2/gcc/cp/cp-tree.h gcc-3.2.1/gcc/cp/cp-tree.h *** gcc-3.2/gcc/cp/cp-tree.h Fri Jul 26 23:23:00 2002 --- gcc-3.2.1/gcc/cp/cp-tree.h Fri Oct 25 22:11:14 2002 *************** extern int flag_operator_names; *** 934,939 **** --- 934,944 ---- extern int flag_gnu_binutils; + /* Nonzero means warn about things that will change when compiling + with an ABI-compliant compiler. */ + + extern int warn_abi; + /* Nonzero means warn about implicit declarations. */ extern int warn_implicit; *************** struct lang_type *** 1246,1251 **** --- 1251,1257 ---- unsigned java_interface : 1; unsigned non_zero_init : 1; + unsigned contains_empty_class_p : 1; /* When adding a flag here, consider whether or not it ought to apply to a template instance if it applies to the template. If *************** struct lang_type *** 1254,1260 **** /* There are some bits left to fill out a 32-bit word. Keep track of this by updating the size of this bitfield whenever you add or remove a flag. */ ! unsigned dummy : 7; int vsize; --- 1260,1266 ---- /* There are some bits left to fill out a 32-bit word. Keep track of this by updating the size of this bitfield whenever you add or remove a flag. */ ! unsigned dummy : 6; int vsize; *************** struct lang_type *** 1515,1520 **** --- 1521,1530 ---- #define CLASSTYPE_NEARLY_EMPTY_P(NODE) \ (TYPE_LANG_SPECIFIC (NODE)->nearly_empty_p) + /* Nonzero if this class contains an empty subobject. */ + #define CLASSTYPE_CONTAINS_EMPTY_CLASS_P(NODE) \ + (TYPE_LANG_SPECIFIC (NODE)->contains_empty_class_p) + /* A list of class types of which this type is a friend. The TREE_VALUE is normally a TYPE, but will be a TEMPLATE_DECL in the case of a template friend. */ *************** struct lang_type *** 1529,1541 **** #define CLASSTYPE_DECLARED_CLASS(NODE) \ (TYPE_LANG_SPECIFIC (NODE)->declared_class) ! /* Nonzero if this class has const members which have no specified initialization. */ ! #define CLASSTYPE_READONLY_FIELDS_NEED_INIT(NODE) \ ! (TYPE_LANG_SPECIFIC (NODE)->const_needs_init) ! /* Nonzero if this class has ref members which have no specified initialization. */ ! #define CLASSTYPE_REF_FIELDS_NEED_INIT(NODE) \ ! (TYPE_LANG_SPECIFIC (NODE)->ref_needs_init) /* Nonzero if this class is included from a header file which employs `#pragma interface', and it is not included in its implementation file. */ --- 1539,1559 ---- #define CLASSTYPE_DECLARED_CLASS(NODE) \ (TYPE_LANG_SPECIFIC (NODE)->declared_class) ! /* Nonzero if this class has const members ! which have no specified initialization. */ ! #define CLASSTYPE_READONLY_FIELDS_NEED_INIT(NODE) \ ! (TYPE_LANG_SPECIFIC (NODE) \ ! ? TYPE_LANG_SPECIFIC (NODE)->const_needs_init : 0) ! #define SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT(NODE, VALUE) \ ! (TYPE_LANG_SPECIFIC (NODE)->const_needs_init = (VALUE)) ! /* Nonzero if this class has ref members ! which have no specified initialization. */ ! #define CLASSTYPE_REF_FIELDS_NEED_INIT(NODE) \ ! (TYPE_LANG_SPECIFIC (NODE) \ ! ? TYPE_LANG_SPECIFIC (NODE)->ref_needs_init : 0) ! #define SET_CLASSTYPE_REF_FIELDS_NEED_INIT(NODE, VALUE) \ ! (TYPE_LANG_SPECIFIC (NODE)->ref_needs_init = (VALUE)) /* Nonzero if this class is included from a header file which employs `#pragma interface', and it is not included in its implementation file. */ *************** extern int flag_new_for_scope; *** 2552,2583 **** member function. [expr.unary.op]/3 */ #define PTRMEM_OK_P(NODE) TREE_LANG_FLAG_0 (NODE) - /* A pointer-to-function member type looks like: - - struct { - __P __pfn; - ptrdiff_t __delta; - }; - - If __pfn is NULL, it is a NULL pointer-to-member-function. - - (Because the vtable is always the first thing in the object, we - don't need its offset.) 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 - addresses, or that use the lowest bit to tell one ISA from another, - for example. For such architectures, we use the lowest bit of - DELTA instead of the lowest bit of the PFN, and DELTA will be - multiplied by 2. */ - enum ptrmemfunc_vbit_where_t - { - ptrmemfunc_vbit_in_pfn, - ptrmemfunc_vbit_in_delta - }; - /* Get the POINTER_TYPE to the METHOD_TYPE associated with this pointer to member function. TYPE_PTRMEMFUNC_P _must_ be true, before using this macro. */ --- 2570,2575 ---- *************** extern tree lookup_conversions PARAMS *** 4084,4089 **** --- 4076,4082 ---- extern tree binfo_for_vtable PARAMS ((tree)); extern tree binfo_from_vbase PARAMS ((tree)); extern tree look_for_overrides_here PARAMS ((tree, tree)); + extern int check_final_overrider PARAMS ((tree, tree)); extern tree dfs_walk PARAMS ((tree, tree (*) (tree, void *), tree (*) (tree, void *), diff -Nrc3pad gcc-3.2/gcc/cp/cvt.c gcc-3.2.1/gcc/cp/cvt.c *** gcc-3.2/gcc/cp/cvt.c Fri Jul 5 22:11:38 2002 --- gcc-3.2.1/gcc/cp/cvt.c Thu Oct 17 00:15:37 2002 *************** convert_to_reference (reftype, expr, con *** 464,475 **** tree decl; { register tree type = TYPE_MAIN_VARIANT (TREE_TYPE (reftype)); ! register tree intype = TREE_TYPE (expr); tree rval = NULL_TREE; tree rval_as_conversion = NULL_TREE; int i; ! if (TREE_CODE (type) == FUNCTION_TYPE && intype == unknown_type_node) { expr = instantiate_type (type, expr, (flags & LOOKUP_COMPLAIN) --- 464,476 ---- tree decl; { register tree type = TYPE_MAIN_VARIANT (TREE_TYPE (reftype)); ! register tree intype; tree rval = NULL_TREE; tree rval_as_conversion = NULL_TREE; int i; ! if (TREE_CODE (type) == FUNCTION_TYPE ! && TREE_TYPE (expr) == unknown_type_node) { expr = instantiate_type (type, expr, (flags & LOOKUP_COMPLAIN) *************** convert_to_reference (reftype, expr, con *** 479,484 **** --- 480,490 ---- intype = TREE_TYPE (expr); } + else + { + expr = convert_from_reference (expr); + intype = TREE_TYPE (expr); + } my_friendly_assert (TREE_CODE (intype) != REFERENCE_TYPE, 364); diff -Nrc3pad gcc-3.2/gcc/cp/decl.c gcc-3.2.1/gcc/cp/decl.c *** gcc-3.2/gcc/cp/decl.c Tue Jul 9 23:46:07 2002 --- gcc-3.2.1/gcc/cp/decl.c Thu Oct 31 00:02:33 2002 *************** duplicate_decls (newdecl, olddecl) *** 3500,3506 **** except for any that we copy here from the old type. */ DECL_ATTRIBUTES (newdecl) = (*targetm.merge_decl_attributes) (olddecl, newdecl); - decl_attributes (&newdecl, DECL_ATTRIBUTES (newdecl), 0); if (TREE_CODE (newdecl) == TEMPLATE_DECL) { --- 3500,3505 ---- *************** make_typename_type (context, name, compl *** 5760,5765 **** --- 5759,5770 ---- t = lookup_field (context, name, 0, 1); if (t) { + if (TREE_CODE (t) != TYPE_DECL) + { + if (complain & tf_error) + error ("no type named `%#T' in `%#T'", name, context); + return error_mark_node; + } if (DECL_ARTIFICIAL (t) || !(complain & tf_keep_type_decl)) t = TREE_TYPE (t); if (IMPLICIT_TYPENAME_P (t)) *************** cxx_init_decl_processing () *** 6517,6522 **** --- 6522,6533 ---- flag_inline_functions = 0; } + /* Force minimum function alignment if using the least significant + bit of function pointers to store the virtual bit. */ + if (TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_pfn + && force_align_functions_log < 1) + force_align_functions_log = 1; + /* Initially, C. */ current_lang_name = lang_name_c; *************** start_decl (declarator, declspecs, initi *** 7322,7335 **** switch (TREE_CODE (decl)) { case TYPE_DECL: ! /* typedef foo = bar means give foo the same type as bar. ! We haven't parsed bar yet, so `cp_finish_decl' will fix that up. ! Any other case of an initialization in a TYPE_DECL is an error. */ ! if (pedantic || list_length (declspecs) > 1) ! { ! error ("typedef `%D' is initialized", decl); ! initialized = 0; ! } break; case FUNCTION_DECL: --- 7333,7340 ---- switch (TREE_CODE (decl)) { case TYPE_DECL: ! error ("typedef `%D' is initialized (use __typeof__ instead)", decl); ! initialized = 0; break; case FUNCTION_DECL: *************** maybe_inject_for_scope_var (decl) *** 8026,8031 **** --- 8031,8042 ---- { if (!DECL_NAME (decl)) return; + + /* Declarations of __FUNCTION__ and its ilk appear magically when + the variable is first used. If that happens to be inside a + for-loop, we don't want to do anything special. */ + if (DECL_PRETTY_FUNCTION_P (decl)) + return; if (current_binding_level->is_for_scope) { *************** cp_finish_decl (decl, init, asmspec_tree *** 8241,8252 **** /* Take care of TYPE_DECLs up front. */ if (TREE_CODE (decl) == TYPE_DECL) { - if (init && DECL_INITIAL (decl)) - { - /* typedef foo = bar; store the type of bar as the type of foo. */ - TREE_TYPE (decl) = type = TREE_TYPE (init); - DECL_INITIAL (decl) = init = NULL_TREE; - } if (type != error_mark_node && IS_AGGR_TYPE (type) && DECL_NAME (decl)) { --- 8252,8257 ---- *************** static tree *** 8515,8520 **** --- 8520,8526 ---- start_cleanup_fn () { static int counter = 0; + int old_interface_only = interface_only; int old_interface_unknown = interface_unknown; char name[32]; tree parmtypes; *************** start_cleanup_fn () *** 8526,8531 **** --- 8532,8538 ---- /* No need to mangle this. */ push_lang_context (lang_name_c); + interface_only = 0; interface_unknown = 1; /* Build the parameter-types. */ *************** start_cleanup_fn () *** 8567,8572 **** --- 8574,8580 ---- start_function (/*specs=*/NULL_TREE, fndecl, NULL_TREE, SF_PRE_PARSED); interface_unknown = old_interface_unknown; + interface_only = old_interface_only; pop_lang_context (); *************** grokdeclarator (declarator, declspecs, d *** 10063,10068 **** --- 10071,10086 ---- next = 0; break; + case TEMPLATE_DECL: + /* Sometimes, we see a template-name used as part of a + decl-specifier like in + std::allocator alloc; + Handle that gracefully. */ + error ("invalid use of template-name '%E' in a declarator", + decl); + return error_mark_node; + break; + default: internal_error ("`%D' as declarator", decl); } *************** grokdeclarator (declarator, declspecs, d *** 10703,10721 **** type = create_array_type_for_decl (dname, type, size); - /* VLAs never work as fields. */ - if (decl_context == FIELD && !processing_template_decl - && TREE_CODE (type) == ARRAY_TYPE - && TYPE_DOMAIN (type) != NULL_TREE - && !TREE_CONSTANT (TYPE_MAX_VALUE (TYPE_DOMAIN (type)))) - { - error ("size of member `%D' is not constant", dname); - /* Proceed with arbitrary constant size, so that offset - computations don't get confused. */ - type = create_array_type_for_decl (dname, TREE_TYPE (type), - integer_one_node); - } - ctype = NULL_TREE; } break; --- 10721,10726 ---- *************** grokdeclarator (declarator, declspecs, d *** 11022,11029 **** pop_decl_namespace (); else if (friendp && (TREE_COMPLEXITY (declarator) < 2)) /* Don't fall out into global scope. Hides real bug? --eichin */ ; ! else if (! IS_AGGR_TYPE_CODE ! (TREE_CODE (TREE_OPERAND (declarator, 0)))) ; else if (TREE_COMPLEXITY (declarator) == current_class_depth) { --- 11027,11035 ---- pop_decl_namespace (); else if (friendp && (TREE_COMPLEXITY (declarator) < 2)) /* Don't fall out into global scope. Hides real bug? --eichin */ ; ! else if (!TREE_OPERAND (declarator, 0) ! || !IS_AGGR_TYPE_CODE ! (TREE_CODE (TREE_OPERAND (declarator, 0)))) ; else if (TREE_COMPLEXITY (declarator) == current_class_depth) { *************** grokdeclarator (declarator, declspecs, d *** 11203,11208 **** --- 11209,11222 ---- type = error_mark_node; } + if (decl_context == FIELD + && !processing_template_decl + && variably_modified_type_p (type)) + { + error ("data member may not have variably modified type `%T'", type); + type = error_mark_node; + } + if (explicitp == 1 || (explicitp && friendp)) { /* [dcl.fct.spec] The explicit specifier shall only be used in *************** grokdeclarator (declarator, declspecs, d *** 11342,11350 **** bad_specifiers (decl, "type", virtualp, quals != NULL_TREE, inlinep, friendp, raises != NULL_TREE); - if (initialized) - error ("typedef declaration includes an initializer"); - return decl; } --- 11356,11361 ---- *************** finish_destructor_body () *** 14107,14112 **** --- 14118,14127 ---- { tree exprstmt; + /* Any return from a destructor will end up here; that way all base + and member cleanups will be run when the function returns. */ + add_stmt (build_stmt (LABEL_STMT, dtor_label)); + /* And perform cleanups for our bases and members. */ perform_base_cleanups (); *************** void *** 14182,14195 **** finish_function_body (compstmt) tree compstmt; { ! if (processing_template_decl) ! /* Do nothing now. */; ! else if (DECL_DESTRUCTOR_P (current_function_decl)) ! /* Any return from a destructor will end up here. Put it before the ! cleanups so that an explicit return doesn't duplicate them. */ ! add_stmt (build_stmt (LABEL_STMT, dtor_label)); ! ! /* Close the block; in a destructor, run the member cleanups. */ finish_compound_stmt (0, compstmt); if (processing_template_decl) --- 14197,14203 ---- finish_function_body (compstmt) tree compstmt; { ! /* Close the block. */ finish_compound_stmt (0, compstmt); if (processing_template_decl) diff -Nrc3pad gcc-3.2/gcc/cp/decl2.c gcc-3.2.1/gcc/cp/decl2.c *** gcc-3.2/gcc/cp/decl2.c Fri Jul 26 23:22:59 2002 --- gcc-3.2.1/gcc/cp/decl2.c Sat Nov 2 10:28:42 2002 *************** int flag_implicit_templates = 1; *** 172,177 **** --- 172,182 ---- int flag_implicit_inline_templates = 1; + /* Nonzero means warn about things that will change when compiling + with an ABI-compliant compiler. */ + + int warn_abi = 0; + /* Nonzero means warn about implicit declarations. */ int warn_implicit = 1; *************** cxx_decode_option (argc, argv) *** 600,606 **** if (p[0] == 'n' && p[1] == 'o' && p[2] == '-') setting = 0, p += 3; ! if (!strcmp (p, "implicit")) warn_implicit = setting; else if (!strcmp (p, "long-long")) warn_long_long = setting; --- 605,613 ---- if (p[0] == 'n' && p[1] == 'o' && p[2] == '-') setting = 0, p += 3; ! if (!strcmp (p, "abi")) ! warn_abi = setting; ! else if (!strcmp (p, "implicit")) warn_implicit = setting; else if (!strcmp (p, "long-long")) warn_long_long = setting; *************** grokfield (declarator, declspecs, init, *** 1512,1518 **** /* friend or constructor went bad. */ return value; if (TREE_TYPE (value) == error_mark_node) ! return error_mark_node; /* Pass friendly classes back. */ if (TREE_CODE (value) == VOID_TYPE) --- 1519,1531 ---- /* friend or constructor went bad. */ return value; if (TREE_TYPE (value) == error_mark_node) ! return error_mark_node; ! ! if (TREE_CODE (value) == TYPE_DECL && init) ! { ! error ("typedef `%D' is initialized (use __typeof__ instead)", value); ! init = NULL_TREE; ! } /* Pass friendly classes back. */ if (TREE_CODE (value) == VOID_TYPE) *************** finish_anon_union (anon_union_decl) *** 1968,1993 **** return; } ! main_decl = build_anon_union_vars (anon_union_decl, ! &DECL_ANON_UNION_ELEMS (anon_union_decl), ! static_p, external_p); ! ! if (main_decl == NULL_TREE) { ! warning ("anonymous aggregate with no members"); ! return; ! } ! if (static_p) ! { ! make_decl_rtl (main_decl, 0); ! COPY_DECL_RTL (main_decl, anon_union_decl); ! expand_anon_union_decl (anon_union_decl, ! NULL_TREE, ! DECL_ANON_UNION_ELEMS (anon_union_decl)); } ! else ! add_decl_stmt (anon_union_decl); } /* Finish processing a builtin type TYPE. It's name is NAME, --- 1981,2011 ---- return; } ! if (!processing_template_decl) { ! main_decl ! = build_anon_union_vars (anon_union_decl, ! &DECL_ANON_UNION_ELEMS (anon_union_decl), ! static_p, external_p); ! ! if (main_decl == NULL_TREE) ! { ! warning ("anonymous aggregate with no members"); ! return; ! } ! if (static_p) ! { ! make_decl_rtl (main_decl, 0); ! COPY_DECL_RTL (main_decl, anon_union_decl); ! expand_anon_union_decl (anon_union_decl, ! NULL_TREE, ! DECL_ANON_UNION_ELEMS (anon_union_decl)); ! return; ! } } ! ! add_decl_stmt (anon_union_decl); } /* Finish processing a builtin type TYPE. It's name is NAME, *************** build_expr_from_tree (t) *** 3783,3792 **** case ALIGNOF_EXPR: { tree r = build_expr_from_tree (TREE_OPERAND (t, 0)); ! if (!TYPE_P (r)) ! return TREE_CODE (t) == SIZEOF_EXPR ? expr_sizeof (r) : c_alignof_expr (r); ! else ! return TREE_CODE (t) == SIZEOF_EXPR ? c_sizeof (r) : c_alignof (r); } case MODOP_EXPR: --- 3801,3808 ---- case ALIGNOF_EXPR: { tree r = build_expr_from_tree (TREE_OPERAND (t, 0)); ! return (TREE_CODE (t) == SIZEOF_EXPR ! ? finish_sizeof (r) : finish_alignof (r)); } case MODOP_EXPR: *************** mark_used (decl) *** 5179,5185 **** TREE_USED (decl) = 1; if (processing_template_decl) return; ! assemble_external (decl); /* Is it a synthesized method that needs to be synthesized? */ if (TREE_CODE (decl) == FUNCTION_DECL --- 5195,5202 ---- TREE_USED (decl) = 1; if (processing_template_decl) return; ! if (!skip_evaluation) ! assemble_external (decl); /* Is it a synthesized method that needs to be synthesized? */ if (TREE_CODE (decl) == FUNCTION_DECL diff -Nrc3pad gcc-3.2/gcc/cp/init.c gcc-3.2.1/gcc/cp/init.c *** gcc-3.2/gcc/cp/init.c Wed Jul 3 15:02:09 2002 --- gcc-3.2.1/gcc/cp/init.c Fri Oct 11 18:10:59 2002 *************** build_field_list (t, list, uses_unions_p *** 348,353 **** --- 348,355 ---- { tree fields; + *uses_unions_p = 0; + /* Note whether or not T is a union. */ if (TREE_CODE (t) == UNION_TYPE) *uses_unions_p = 1; *************** expand_member_init (exp, name, init) *** 1094,1100 **** } else { ! field = lookup_field (type, name, 1, 0); if (! member_init_ok_or_else (field, type, name)) return NULL_TREE; --- 1096,1105 ---- } else { ! if (TREE_CODE (name) == IDENTIFIER_NODE) ! field = lookup_field (type, name, 1, 0); ! else ! field = name; if (! member_init_ok_or_else (field, type, name)) return NULL_TREE; diff -Nrc3pad gcc-3.2/gcc/cp/lex.c gcc-3.2.1/gcc/cp/lex.c *** gcc-3.2/gcc/cp/lex.c Thu May 23 17:57:44 2002 --- gcc-3.2.1/gcc/cp/lex.c Mon Oct 21 18:38:39 2002 *************** extern YYSTYPE yylval; /* the semantic *** 90,99 **** int warn_traditional = 0; int flag_digraphs = 1; ! /* the declaration found for the last IDENTIFIER token read in. ! yylex must look this up to detect typedefs, which get token type TYPENAME, ! so it is left around in case the identifier is not a typedef but is ! used in a context which makes it a reference to a variable. */ tree lastiddecl; /* Array for holding counts of the numbers of tokens seen. */ --- 90,100 ---- int warn_traditional = 0; int flag_digraphs = 1; ! /* the declaration found for the last IDENTIFIER token read in. yylex ! must look this up to detect typedefs, which get token type ! tTYPENAME, so it is left around in case the identifier is not a ! typedef but is used in a context which makes it a reference to a ! variable. */ tree lastiddecl; /* Array for holding counts of the numbers of tokens seen. */ *************** yyprint (file, yychar, yylval) *** 739,745 **** switch (yychar) { case IDENTIFIER: ! case TYPENAME: case TYPESPEC: case PTYPENAME: case PFUNCNAME: --- 740,746 ---- switch (yychar) { case IDENTIFIER: ! case tTYPENAME: case TYPESPEC: case PTYPENAME: case PFUNCNAME: *************** check_for_missing_semicolon (type) *** 977,983 **** if ((yychar > 255 && yychar != SCSPEC && yychar != IDENTIFIER ! && yychar != TYPENAME && yychar != CV_QUALIFIER && yychar != SELFNAME) || yychar == 0 /* EOF */) --- 978,984 ---- if ((yychar > 255 && yychar != SCSPEC && yychar != IDENTIFIER ! && yychar != tTYPENAME && yychar != CV_QUALIFIER && yychar != SELFNAME) || yychar == 0 /* EOF */) *************** do_identifier (token, parsing, args) *** 1194,1200 **** tree args; { register tree id; ! int lexing = (parsing == 1); if (! lexing) id = lookup_name (token, 0); --- 1195,1201 ---- tree args; { register tree id; ! int lexing = (parsing == 1 || parsing == 3); if (! lexing) id = lookup_name (token, 0); *************** do_identifier (token, parsing, args) *** 1216,1222 **** /* Remember that this name has been used in the class definition, as per [class.scope0] */ ! if (id && parsing) maybe_note_name_used_in_class (token, id); if (id == error_mark_node) --- 1217,1223 ---- /* Remember that this name has been used in the class definition, as per [class.scope0] */ ! if (id && parsing && parsing != 3) maybe_note_name_used_in_class (token, id); if (id == error_mark_node) diff -Nrc3pad gcc-3.2/gcc/cp/mangle.c gcc-3.2.1/gcc/cp/mangle.c *** gcc-3.2/gcc/cp/mangle.c Fri Jul 26 23:22:58 2002 --- gcc-3.2.1/gcc/cp/mangle.c Fri Oct 18 08:11:44 2002 *************** static struct globals *** 93,98 **** --- 93,105 ---- /* An array of the current substitution candidates, in the order we've seen them. */ varray_type substitutions; + + /* The entity that is being mangled. */ + tree entity; + + /* True if the mangling will be different in a future version of the + ABI. */ + bool need_abi_warning; } G; /* Indices into subst_identifiers. These are identifiers used in *************** static const char *mangle_decl_string PA *** 186,193 **** /* Control functions. */ ! static inline void start_mangling PARAMS ((void)); ! static inline const char *finish_mangling PARAMS ((void)); static tree mangle_special_for_type PARAMS ((tree, const char *)); /* Foreign language functions. */ --- 193,200 ---- /* Control functions. */ ! static inline void start_mangling PARAMS ((tree)); ! static inline const char *finish_mangling PARAMS ((bool)); static tree mangle_special_for_type PARAMS ((tree, const char *)); /* Foreign language functions. */ *************** write_prefix (node) *** 884,889 **** --- 891,900 ---- template_info = CLASSTYPE_TEMPLATE_INFO (node); } + /* In G++ 3.2, the name of the template parameter was used. */ + if (TREE_CODE (node) == TEMPLATE_TYPE_PARM) + G.need_abi_warning = true; + if (template_info != NULL) /* Templated. */ { *************** write_template_prefix (node) *** 955,960 **** --- 966,975 ---- if (find_substitution (substitution)) return; + /* In G++ 3.2, the name of the template template parameter was used. */ + if (TREE_CODE (TREE_TYPE (template)) == TEMPLATE_TEMPLATE_PARM) + G.need_abi_warning = true; + write_prefix (context); write_unqualified_name (decl); *************** write_expression (expr) *** 1823,1828 **** --- 1838,1847 ---- write_template_arg_literal (expr); else if (DECL_P (expr)) { + /* G++ 3.2 incorrectly mangled non-type template arguments of + enumeration type using their names. */ + if (code == CONST_DECL) + G.need_abi_warning = 1; write_char ('L'); write_mangled_name (expr); write_char ('E'); *************** write_expression (expr) *** 1878,1884 **** 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: --- 1897,1908 ---- if (TREE_CODE (TREE_OPERAND (expr, 1)) == IDENTIFIER_NODE) write_source_name (TREE_OPERAND (expr, 1)); else ! { ! /* G++ 3.2 incorrectly put out both the "sr" code and ! the nested name of the qualified name. */ ! G.need_abi_warning = 1; ! write_encoding (TREE_OPERAND (expr, 1)); ! } break; default: *************** write_template_arg (node) *** 1983,1988 **** --- 2007,2016 ---- write_template_template_arg (node); else if (DECL_P (node)) { + /* G++ 3.2 incorrectly mangled non-type template arguments of + enumeration type using their names. */ + if (code == CONST_DECL) + G.need_abi_warning = 1; write_char ('L'); write_char ('Z'); write_encoding (node); *************** write_substitution (seq_id) *** 2152,2167 **** /* Start mangling a new name or type. */ static inline void ! start_mangling () { obstack_free (&G.name_obstack, obstack_base (&G.name_obstack)); } /* Done with mangling. Return the generated mangled name. */ static inline const char * ! finish_mangling () { /* Clear all the substitutions. */ VARRAY_POP_ALL (G.substitutions); --- 2180,2202 ---- /* Start mangling a new name or type. */ static inline void ! start_mangling (tree entity) { + G.entity = entity; + G.need_abi_warning = false; obstack_free (&G.name_obstack, obstack_base (&G.name_obstack)); } /* Done with mangling. Return the generated mangled name. */ static inline const char * ! finish_mangling (bool warn) { + if (warn_abi && warn && G.need_abi_warning) + warning ("the mangled name of `%D' will change in a future " + "version of GCC", + G.entity); + /* Clear all the substitutions. */ VARRAY_POP_ALL (G.substitutions); *************** mangle_decl_string (decl) *** 2197,2203 **** { const char *result; ! start_mangling (); if (TREE_CODE (decl) == TYPE_DECL) write_type (TREE_TYPE (decl)); --- 2232,2238 ---- { const char *result; ! start_mangling (decl); if (TREE_CODE (decl) == TYPE_DECL) write_type (TREE_TYPE (decl)); *************** mangle_decl_string (decl) *** 2224,2230 **** write_string (" *INTERNAL* "); } ! result = finish_mangling (); if (DEBUG_MANGLE) fprintf (stderr, "mangle_decl_string = '%s'\n\n", result); return result; --- 2259,2265 ---- write_string (" *INTERNAL* "); } ! result = finish_mangling (/*warn=*/true); if (DEBUG_MANGLE) fprintf (stderr, "mangle_decl_string = '%s'\n\n", result); return result; *************** mangle_type_string (type) *** 2249,2257 **** { const char *result; ! start_mangling (); write_type (type); ! result = finish_mangling (); if (DEBUG_MANGLE) fprintf (stderr, "mangle_type_string = '%s'\n\n", result); return result; --- 2284,2292 ---- { const char *result; ! start_mangling (type); write_type (type); ! result = finish_mangling (/*warn=*/false); if (DEBUG_MANGLE) fprintf (stderr, "mangle_type_string = '%s'\n\n", result); return result; *************** mangle_special_for_type (type, code) *** 2279,2285 **** /* We don't have an actual decl here for the special component, so we can't just process the . Instead, fake it. */ ! start_mangling (); /* Start the mangling. */ write_string ("_Z"); --- 2314,2320 ---- /* We don't have an actual decl here for the special component, so we can't just process the . Instead, fake it. */ ! start_mangling (type); /* Start the mangling. */ write_string ("_Z"); *************** mangle_special_for_type (type, code) *** 2287,2293 **** /* Add the type. */ write_type (type); ! result = finish_mangling (); if (DEBUG_MANGLE) fprintf (stderr, "mangle_special_for_type = %s\n\n", result); --- 2322,2328 ---- /* Add the type. */ write_type (type); ! result = finish_mangling (/*warn=*/false); if (DEBUG_MANGLE) fprintf (stderr, "mangle_special_for_type = %s\n\n", result); *************** mangle_ctor_vtbl_for_type (type, binfo) *** 2354,2360 **** { const char *result; ! start_mangling (); write_string ("_Z"); write_string ("TC"); --- 2389,2395 ---- { const char *result; ! start_mangling (type); write_string ("_Z"); write_string ("TC"); *************** mangle_ctor_vtbl_for_type (type, binfo) *** 2363,2369 **** write_char ('_'); write_type (BINFO_TYPE (binfo)); ! result = finish_mangling (); if (DEBUG_MANGLE) fprintf (stderr, "mangle_ctor_vtbl_for_type = %s\n\n", result); return get_identifier (result); --- 2398,2404 ---- write_char ('_'); write_type (BINFO_TYPE (binfo)); ! result = finish_mangling (/*warn=*/false); if (DEBUG_MANGLE) fprintf (stderr, "mangle_ctor_vtbl_for_type = %s\n\n", result); return get_identifier (result); *************** mangle_thunk (fn_decl, offset, vcall_off *** 2387,2393 **** { const char *result; ! start_mangling (); write_string ("_Z"); /* The for virtual thunks is Tv, for non-virtual --- 2422,2428 ---- { const char *result; ! start_mangling (fn_decl); write_string ("_Z"); /* The for virtual thunks is Tv, for non-virtual *************** mangle_thunk (fn_decl, offset, vcall_off *** 2413,2419 **** /* Scoped name. */ write_encoding (fn_decl); ! result = finish_mangling (); if (DEBUG_MANGLE) fprintf (stderr, "mangle_thunk = %s\n\n", result); return get_identifier (result); --- 2448,2454 ---- /* Scoped name. */ write_encoding (fn_decl); ! result = finish_mangling (/*warn=*/false); if (DEBUG_MANGLE) fprintf (stderr, "mangle_thunk = %s\n\n", result); return get_identifier (result); *************** tree *** 2454,2460 **** mangle_guard_variable (variable) tree variable; { ! start_mangling (); write_string ("_ZGV"); if (strncmp (IDENTIFIER_POINTER (DECL_NAME (variable)), "_ZGR", 4) == 0) /* The name of a guard variable for a reference temporary should refer --- 2489,2495 ---- mangle_guard_variable (variable) tree variable; { ! start_mangling (variable); write_string ("_ZGV"); if (strncmp (IDENTIFIER_POINTER (DECL_NAME (variable)), "_ZGR", 4) == 0) /* The name of a guard variable for a reference temporary should refer *************** mangle_guard_variable (variable) *** 2462,2468 **** write_string (IDENTIFIER_POINTER (DECL_NAME (variable)) + 4); else write_name (variable, /*ignore_local_scope=*/0); ! return get_identifier (finish_mangling ()); } /* Return an identifier for the name of a temporary variable used to --- 2497,2503 ---- write_string (IDENTIFIER_POINTER (DECL_NAME (variable)) + 4); else write_name (variable, /*ignore_local_scope=*/0); ! return get_identifier (finish_mangling (/*warn=*/false)); } /* Return an identifier for the name of a temporary variable used to *************** tree *** 2473,2482 **** mangle_ref_init_variable (variable) tree variable; { ! start_mangling (); write_string ("_ZGR"); write_name (variable, /*ignore_local_scope=*/0); ! return get_identifier (finish_mangling ()); } --- 2508,2517 ---- mangle_ref_init_variable (variable) tree variable; { ! start_mangling (variable); write_string ("_ZGR"); write_name (variable, /*ignore_local_scope=*/0); ! return get_identifier (finish_mangling (/*warn=*/false)); } diff -Nrc3pad gcc-3.2/gcc/cp/method.c gcc-3.2.1/gcc/cp/method.c *** gcc-3.2/gcc/cp/method.c Mon Apr 29 14:54:52 2002 --- gcc-3.2.1/gcc/cp/method.c Wed Oct 16 18:53:27 2002 *************** do_build_assign_ref (fndecl) *** 688,694 **** comp = build (COMPONENT_REF, TREE_TYPE (field), comp, field); init = build (COMPONENT_REF, ! build_qualified_type (TREE_TYPE (field), cvquals), init, field); if (DECL_NAME (field)) --- 688,694 ---- comp = build (COMPONENT_REF, TREE_TYPE (field), comp, field); init = build (COMPONENT_REF, ! cp_build_qualified_type (TREE_TYPE (field), cvquals), init, field); if (DECL_NAME (field)) diff -Nrc3pad gcc-3.2/gcc/cp/parse.c gcc-3.2.1/gcc/cp/parse.c *** gcc-3.2/gcc/cp/parse.c Wed Aug 14 09:46:23 2002 --- gcc-3.2.1/gcc/cp/parse.c Tue Nov 19 18:27:03 2002 *************** *** 5,11 **** #define YYBISON 1 /* Identify Bison output. */ #define IDENTIFIER 257 ! #define TYPENAME 258 #define SELFNAME 259 #define PFUNCNAME 260 #define SCSPEC 261 --- 5,11 ---- #define YYBISON 1 /* Identify Bison output. */ #define IDENTIFIER 257 ! #define tTYPENAME 258 #define SELFNAME 259 #define PFUNCNAME 260 #define SCSPEC 261 *************** extern void yyprint PARAMS ((FILE *, i *** 324,334 **** ! #define YYFINAL 1830 #define YYFLAG -32768 #define YYNTBASE 114 ! #define YYTRANSLATE(x) ((unsigned)(x) <= 343 ? yytranslate[x] : 404) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, --- 324,334 ---- ! #define YYFINAL 1833 #define YYFLAG -32768 #define YYNTBASE 114 ! #define YYTRANSLATE(x) ((unsigned)(x) <= 343 ? yytranslate[x] : 407) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, *************** static const short yyprhs[] = { 0, *** 413,468 **** 1377, 1379, 1382, 1385, 1388, 1391, 1393, 1395, 1397, 1399, 1402, 1405, 1409, 1413, 1417, 1422, 1424, 1427, 1430, 1432, 1434, 1437, 1440, 1443, 1445, 1448, 1451, 1455, 1457, 1460, ! 1463, 1465, 1467, 1469, 1471, 1476, 1481, 1486, 1491, 1493, ! 1495, 1497, 1499, 1503, 1505, 1509, 1511, 1515, 1516, 1521, ! 1522, 1529, 1533, 1534, 1539, 1541, 1545, 1549, 1550, 1555, ! 1559, 1560, 1562, 1564, 1567, 1574, 1576, 1580, 1581, 1583, ! 1588, 1595, 1600, 1602, 1604, 1606, 1608, 1610, 1614, 1615, ! 1618, 1620, 1623, 1627, 1632, 1634, 1636, 1640, 1645, 1649, ! 1655, 1659, 1663, 1667, 1668, 1672, 1676, 1680, 1681, 1684, ! 1687, 1688, 1695, 1696, 1702, 1705, 1708, 1711, 1712, 1713, ! 1714, 1726, 1728, 1729, 1731, 1732, 1734, 1736, 1739, 1742, ! 1745, 1748, 1751, 1754, 1758, 1763, 1767, 1770, 1774, 1779, ! 1781, 1784, 1786, 1789, 1792, 1795, 1798, 1802, 1806, 1809, ! 1810, 1813, 1817, 1819, 1824, 1826, 1830, 1832, 1834, 1837, ! 1840, 1844, 1848, 1849, 1851, 1855, 1858, 1861, 1863, 1866, ! 1869, 1872, 1875, 1878, 1881, 1884, 1886, 1889, 1892, 1896, ! 1898, 1901, 1904, 1909, 1914, 1917, 1919, 1925, 1930, 1932, ! 1933, 1935, 1939, 1940, 1942, 1946, 1948, 1950, 1952, 1954, ! 1959, 1964, 1969, 1974, 1979, 1983, 1988, 1993, 1998, 2003, ! 2007, 2010, 2012, 2014, 2018, 2020, 2024, 2027, 2029, 2036, ! 2037, 2040, 2042, 2045, 2047, 2050, 2054, 2058, 2060, 2064, ! 2066, 2069, 2073, 2077, 2080, 2083, 2087, 2089, 2094, 2099, ! 2103, 2107, 2110, 2112, 2114, 2117, 2119, 2121, 2124, 2127, ! 2129, 2132, 2136, 2140, 2143, 2146, 2150, 2152, 2156, 2160, ! 2163, 2166, 2170, 2172, 2177, 2181, 2186, 2190, 2192, 2195, ! 2198, 2201, 2204, 2207, 2210, 2213, 2215, 2218, 2223, 2228, ! 2231, 2233, 2235, 2237, 2239, 2242, 2247, 2251, 2255, 2258, ! 2261, 2264, 2267, 2269, 2272, 2275, 2278, 2281, 2285, 2287, ! 2290, 2294, 2299, 2302, 2305, 2308, 2311, 2314, 2317, 2322, ! 2325, 2327, 2330, 2333, 2337, 2339, 2343, 2346, 2350, 2353, ! 2356, 2360, 2362, 2366, 2371, 2373, 2376, 2380, 2383, 2386, ! 2388, 2392, 2395, 2398, 2400, 2403, 2407, 2409, 2413, 2420, ! 2425, 2430, 2434, 2440, 2444, 2448, 2452, 2455, 2457, 2459, ! 2462, 2465, 2468, 2469, 2471, 2473, 2476, 2480, 2481, 2486, ! 2488, 2489, 2490, 2496, 2498, 2499, 2503, 2505, 2508, 2510, ! 2513, 2514, 2519, 2521, 2522, 2523, 2529, 2530, 2531, 2539, ! 2540, 2541, 2542, 2543, 2556, 2557, 2558, 2566, 2567, 2573, ! 2574, 2582, 2583, 2588, 2591, 2594, 2597, 2601, 2608, 2617, ! 2628, 2637, 2650, 2661, 2672, 2677, 2681, 2684, 2687, 2689, ! 2691, 2693, 2695, 2697, 2698, 2699, 2705, 2706, 2707, 2713, ! 2715, 2718, 2719, 2720, 2721, 2727, 2729, 2731, 2735, 2739, ! 2742, 2745, 2748, 2751, 2754, 2756, 2759, 2760, 2762, 2763, ! 2765, 2767, 2768, 2770, 2772, 2776, 2781, 2789, 2791, 2795, ! 2796, 2798, 2800, 2802, 2805, 2808, 2811, 2813, 2816, 2819, ! 2820, 2824, 2826, 2828, 2830, 2833, 2836, 2839, 2844, 2847, ! 2850, 2853, 2856, 2859, 2862, 2864, 2867, 2869, 2872, 2874, ! 2876, 2877, 2878, 2880, 2886, 2890, 2891, 2895, 2896, 2897, ! 2902, 2905, 2907, 2909, 2911, 2915, 2916, 2920, 2924, 2928, ! 2930, 2931, 2935, 2939, 2943, 2947, 2951, 2955, 2959, 2963, ! 2967, 2971, 2975, 2979, 2983, 2987, 2991, 2995, 2999, 3003, ! 3007, 3011, 3015, 3019, 3023, 3028, 3032, 3036, 3040, 3044, ! 3049, 3053, 3057, 3063, 3069, 3074, 3078 }; static const short yyrhs[] = { -1, --- 413,468 ---- 1377, 1379, 1382, 1385, 1388, 1391, 1393, 1395, 1397, 1399, 1402, 1405, 1409, 1413, 1417, 1422, 1424, 1427, 1430, 1432, 1434, 1437, 1440, 1443, 1445, 1448, 1451, 1455, 1457, 1460, ! 1463, 1465, 1467, 1469, 1471, 1473, 1475, 1477, 1482, 1487, ! 1492, 1497, 1499, 1501, 1503, 1505, 1509, 1511, 1515, 1517, ! 1521, 1522, 1527, 1528, 1535, 1539, 1540, 1545, 1547, 1551, ! 1555, 1556, 1561, 1565, 1566, 1568, 1570, 1573, 1580, 1582, ! 1586, 1587, 1589, 1594, 1601, 1606, 1608, 1610, 1612, 1614, ! 1616, 1620, 1621, 1624, 1626, 1629, 1633, 1638, 1640, 1642, ! 1646, 1651, 1655, 1661, 1665, 1669, 1673, 1674, 1678, 1682, ! 1686, 1687, 1690, 1693, 1694, 1701, 1702, 1708, 1711, 1714, ! 1717, 1718, 1719, 1720, 1732, 1734, 1735, 1737, 1738, 1740, ! 1742, 1745, 1748, 1751, 1754, 1757, 1760, 1764, 1769, 1773, ! 1776, 1780, 1785, 1787, 1790, 1792, 1795, 1798, 1801, 1804, ! 1808, 1812, 1815, 1816, 1819, 1823, 1825, 1830, 1832, 1836, ! 1838, 1840, 1843, 1846, 1850, 1854, 1855, 1857, 1861, 1864, ! 1867, 1869, 1872, 1875, 1878, 1881, 1884, 1887, 1890, 1892, ! 1895, 1898, 1902, 1904, 1907, 1910, 1915, 1920, 1923, 1925, ! 1931, 1936, 1938, 1939, 1941, 1945, 1946, 1948, 1952, 1954, ! 1956, 1958, 1960, 1965, 1970, 1975, 1980, 1985, 1989, 1994, ! 1999, 2004, 2009, 2013, 2016, 2018, 2020, 2024, 2026, 2030, ! 2033, 2035, 2042, 2043, 2046, 2048, 2051, 2053, 2056, 2060, ! 2064, 2066, 2070, 2072, 2075, 2079, 2083, 2086, 2089, 2093, ! 2095, 2100, 2105, 2109, 2113, 2116, 2118, 2120, 2123, 2125, ! 2127, 2130, 2133, 2135, 2138, 2142, 2146, 2149, 2152, 2156, ! 2158, 2162, 2166, 2169, 2172, 2176, 2178, 2183, 2187, 2192, ! 2196, 2198, 2201, 2204, 2207, 2210, 2213, 2216, 2219, 2221, ! 2224, 2229, 2234, 2237, 2239, 2241, 2243, 2245, 2248, 2253, ! 2257, 2261, 2264, 2267, 2270, 2273, 2275, 2278, 2281, 2284, ! 2287, 2291, 2293, 2296, 2300, 2305, 2308, 2311, 2314, 2317, ! 2320, 2323, 2328, 2331, 2333, 2336, 2339, 2343, 2345, 2349, ! 2352, 2356, 2359, 2362, 2366, 2368, 2372, 2377, 2379, 2382, ! 2386, 2389, 2392, 2394, 2398, 2401, 2404, 2406, 2409, 2413, ! 2415, 2419, 2426, 2431, 2436, 2440, 2446, 2450, 2454, 2458, ! 2461, 2463, 2465, 2468, 2471, 2474, 2475, 2477, 2479, 2482, ! 2486, 2487, 2492, 2494, 2495, 2496, 2502, 2504, 2505, 2509, ! 2511, 2514, 2516, 2519, 2520, 2525, 2527, 2528, 2529, 2535, ! 2536, 2537, 2545, 2546, 2547, 2548, 2549, 2562, 2563, 2564, ! 2572, 2573, 2579, 2580, 2588, 2589, 2594, 2597, 2600, 2603, ! 2607, 2614, 2623, 2634, 2643, 2656, 2667, 2678, 2683, 2687, ! 2690, 2693, 2695, 2697, 2699, 2701, 2703, 2704, 2705, 2711, ! 2712, 2713, 2719, 2721, 2724, 2725, 2726, 2727, 2733, 2735, ! 2737, 2741, 2745, 2748, 2751, 2754, 2757, 2760, 2762, 2765, ! 2766, 2768, 2769, 2771, 2773, 2774, 2776, 2778, 2782, 2787, ! 2795, 2797, 2801, 2802, 2804, 2806, 2808, 2811, 2814, 2817, ! 2819, 2822, 2825, 2826, 2830, 2832, 2834, 2836, 2839, 2842, ! 2845, 2850, 2853, 2856, 2859, 2862, 2865, 2868, 2870, 2873, ! 2875, 2878, 2880, 2882, 2883, 2884, 2886, 2892, 2896, 2897, ! 2901, 2902, 2903, 2908, 2911, 2913, 2915, 2917, 2921, 2922, ! 2926, 2930, 2934, 2936, 2937, 2941, 2945, 2949, 2953, 2957, ! 2961, 2965, 2969, 2973, 2977, 2981, 2985, 2989, 2993, 2997, ! 3001, 3005, 3009, 3013, 3017, 3021, 3025, 3029, 3034, 3038, ! 3042, 3046, 3050, 3055, 3059, 3063, 3069, 3075, 3080, 3084 }; static const short yyrhs[] = { -1, *************** static const short yyrhs[] = { -1, *** 475,557 **** 126, 117, 111, 0, 0, 46, 61, 127, 117, 111, 0, 128, 0, 130, 63, 0, 132, 0, 120, 124, 0, 0, 46, 170, 67, 129, 135, 63, 0, 48, ! 312, 0, 48, 326, 312, 0, 48, 326, 213, 0, ! 48, 134, 170, 0, 48, 326, 170, 0, 48, 326, 134, 170, 0, 0, 48, 46, 133, 135, 63, 0, ! 60, 56, 0, 134, 60, 56, 0, 213, 0, 312, ! 0, 326, 312, 0, 326, 213, 0, 99, 0, 136, 99, 0, 0, 50, 77, 138, 141, 78, 0, 50, 77, 78, 0, 137, 0, 139, 0, 145, 0, 141, ! 62, 145, 0, 170, 0, 0, 272, 142, 0, 47, ! 142, 0, 137, 272, 142, 0, 143, 0, 143, 67, ! 229, 0, 390, 0, 390, 67, 208, 0, 144, 0, 144, 67, 191, 0, 140, 147, 0, 140, 1, 0, 155, 152, 0, 148, 0, 146, 0, 136, 118, 155, 119, 152, 0, 136, 118, 148, 119, 0, 120, 147, ! 0, 240, 63, 0, 233, 239, 63, 0, 230, 238, ! 63, 0, 264, 63, 0, 240, 63, 0, 233, 239, ! 63, 0, 230, 238, 63, 0, 233, 63, 0, 173, 63, 0, 230, 63, 0, 1, 63, 0, 1, 111, ! 0, 1, 109, 0, 63, 0, 393, 0, 224, 0, 166, 0, 0, 165, 0, 165, 63, 0, 0, 109, ! 0, 0, 167, 150, 403, 61, 154, 199, 0, 161, ! 151, 153, 0, 161, 151, 361, 0, 161, 151, 1, ! 0, 0, 317, 5, 95, 157, 381, 110, 299, 396, ! 0, 317, 5, 49, 299, 396, 0, 0, 326, 317, ! 5, 95, 158, 381, 110, 299, 396, 0, 326, 317, ! 5, 49, 299, 396, 0, 0, 317, 186, 95, 159, ! 381, 110, 299, 396, 0, 317, 186, 49, 299, 396, ! 0, 0, 326, 317, 186, 95, 160, 381, 110, 299, ! 396, 0, 326, 317, 186, 49, 299, 396, 0, 230, ! 227, 0, 233, 309, 0, 309, 0, 233, 156, 0, ! 156, 0, 5, 95, 381, 110, 299, 396, 0, 95, ! 5, 110, 95, 381, 110, 299, 396, 0, 5, 49, ! 299, 396, 0, 95, 5, 110, 49, 299, 396, 0, ! 186, 95, 381, 110, 299, 396, 0, 186, 49, 299, ! 396, 0, 233, 162, 0, 162, 0, 230, 227, 0, ! 233, 309, 0, 309, 0, 233, 156, 0, 156, 0, ! 26, 3, 0, 164, 257, 0, 164, 95, 201, 110, 0, 164, 49, 0, 65, 168, 0, 0, 0, 169, 0, 168, 62, 169, 0, 168, 1, 0, 95, 201, 110, 0, 49, 0, 171, 95, 201, 110, 0, 171, ! 49, 0, 305, 95, 201, 110, 0, 305, 49, 0, ! 319, 95, 201, 110, 0, 319, 49, 0, 1, 0, 3, 0, 4, 0, 5, 0, 59, 0, 60, 0, 3, 0, 59, 0, 60, 0, 106, 0, 105, 0, ! 107, 0, 0, 50, 182, 236, 63, 174, 183, 0, 0, 50, 182, 230, 227, 175, 183, 0, 0, 50, ! 182, 309, 176, 183, 0, 0, 50, 182, 156, 177, ! 183, 0, 0, 7, 50, 182, 236, 63, 178, 183, 0, 0, 7, 50, 182, 230, 227, 179, 183, 0, ! 0, 7, 50, 182, 309, 180, 183, 0, 0, 7, 50, 182, 156, 181, 183, 0, 0, 0, 59, 77, 189, 188, 187, 0, 4, 77, 189, 188, 187, 0, 186, 0, 184, 0, 170, 77, 189, 78, 187, 0, 5, 77, 189, 188, 187, 0, 0, 78, 0, 80, 0, 0, 190, 0, 191, 0, 190, 62, 191, 0, ! 229, 0, 59, 0, 326, 59, 0, 208, 0, 317, 50, 170, 0, 82, 0, 81, 0, 89, 0, 90, 0, 112, 0, 200, 0, 207, 0, 49, 0, 95, 193, 110, 0, 49, 0, 95, 197, 110, 0, 0, ! 197, 0, 1, 0, 0, 371, 227, 241, 250, 67, ! 198, 258, 0, 193, 0, 111, 0, 334, 332, 111, ! 0, 334, 332, 1, 111, 0, 334, 1, 111, 0, 207, 62, 207, 0, 207, 62, 1, 0, 200, 62, 207, 0, 200, 62, 1, 0, 207, 0, 200, 0, 218, 0, 120, 206, 0, 83, 206, 0, 73, 206, 0, 91, 206, 0, 192, 206, 0, 70, 170, 0, ! 14, 202, 0, 14, 95, 229, 110, 0, 30, 202, ! 0, 30, 95, 229, 110, 0, 220, 298, 0, 220, ! 298, 204, 0, 220, 203, 298, 0, 220, 203, 298, 204, 0, 220, 95, 229, 110, 0, 220, 95, 229, 110, 204, 0, 220, 203, 95, 229, 110, 0, 220, 203, 95, 229, 110, 204, 0, 221, 206, 0, 221, 96, 113, 206, 0, 221, 96, 193, 113, 206, 0, 35, 206, 0, 36, 206, 0, 95, 201, 110, 0, 61, 201, 111, 0, 95, 201, 110, 0, 49, 0, ! 95, 236, 110, 0, 67, 258, 0, 95, 229, 110, 0, 205, 95, 229, 110, 0, 202, 0, 205, 202, ! 0, 205, 61, 259, 270, 111, 0, 206, 0, 207, 86, 207, 0, 207, 87, 207, 0, 207, 81, 207, 0, 207, 82, 207, 0, 207, 83, 207, 0, 207, 84, 207, 0, 207, 85, 207, 0, 207, 79, 207, --- 475,557 ---- 126, 117, 111, 0, 0, 46, 61, 127, 117, 111, 0, 128, 0, 130, 63, 0, 132, 0, 120, 124, 0, 0, 46, 170, 67, 129, 135, 63, 0, 48, ! 315, 0, 48, 329, 315, 0, 48, 329, 213, 0, ! 48, 134, 170, 0, 48, 329, 170, 0, 48, 329, 134, 170, 0, 0, 48, 46, 133, 135, 63, 0, ! 60, 56, 0, 134, 60, 56, 0, 213, 0, 315, ! 0, 329, 315, 0, 329, 213, 0, 99, 0, 136, 99, 0, 0, 50, 77, 138, 141, 78, 0, 50, 77, 78, 0, 137, 0, 139, 0, 145, 0, 141, ! 62, 145, 0, 170, 0, 0, 275, 142, 0, 47, ! 142, 0, 137, 275, 142, 0, 143, 0, 143, 67, ! 229, 0, 393, 0, 393, 67, 208, 0, 144, 0, 144, 67, 191, 0, 140, 147, 0, 140, 1, 0, 155, 152, 0, 148, 0, 146, 0, 136, 118, 155, 119, 152, 0, 136, 118, 148, 119, 0, 120, 147, ! 0, 243, 63, 0, 233, 242, 63, 0, 230, 241, ! 63, 0, 267, 63, 0, 243, 63, 0, 233, 242, ! 63, 0, 230, 241, 63, 0, 233, 63, 0, 173, 63, 0, 230, 63, 0, 1, 63, 0, 1, 111, ! 0, 1, 109, 0, 63, 0, 396, 0, 224, 0, 166, 0, 0, 165, 0, 165, 63, 0, 0, 109, ! 0, 0, 167, 150, 406, 61, 154, 199, 0, 161, ! 151, 153, 0, 161, 151, 364, 0, 161, 151, 1, ! 0, 0, 320, 5, 95, 157, 384, 110, 302, 399, ! 0, 320, 5, 49, 302, 399, 0, 0, 329, 320, ! 5, 95, 158, 384, 110, 302, 399, 0, 329, 320, ! 5, 49, 302, 399, 0, 0, 320, 186, 95, 159, ! 384, 110, 302, 399, 0, 320, 186, 49, 302, 399, ! 0, 0, 329, 320, 186, 95, 160, 384, 110, 302, ! 399, 0, 329, 320, 186, 49, 302, 399, 0, 230, ! 227, 0, 233, 312, 0, 312, 0, 233, 156, 0, ! 156, 0, 5, 95, 384, 110, 302, 399, 0, 95, ! 5, 110, 95, 384, 110, 302, 399, 0, 5, 49, ! 302, 399, 0, 95, 5, 110, 49, 302, 399, 0, ! 186, 95, 384, 110, 302, 399, 0, 186, 49, 302, ! 399, 0, 233, 162, 0, 162, 0, 230, 227, 0, ! 233, 312, 0, 312, 0, 233, 156, 0, 156, 0, ! 26, 3, 0, 164, 260, 0, 164, 95, 201, 110, 0, 164, 49, 0, 65, 168, 0, 0, 0, 169, 0, 168, 62, 169, 0, 168, 1, 0, 95, 201, 110, 0, 49, 0, 171, 95, 201, 110, 0, 171, ! 49, 0, 308, 95, 201, 110, 0, 308, 49, 0, ! 322, 95, 201, 110, 0, 322, 49, 0, 1, 0, 3, 0, 4, 0, 5, 0, 59, 0, 60, 0, 3, 0, 59, 0, 60, 0, 106, 0, 105, 0, ! 107, 0, 0, 50, 182, 239, 63, 174, 183, 0, 0, 50, 182, 230, 227, 175, 183, 0, 0, 50, ! 182, 312, 176, 183, 0, 0, 50, 182, 156, 177, ! 183, 0, 0, 7, 50, 182, 239, 63, 178, 183, 0, 0, 7, 50, 182, 230, 227, 179, 183, 0, ! 0, 7, 50, 182, 312, 180, 183, 0, 0, 7, 50, 182, 156, 181, 183, 0, 0, 0, 59, 77, 189, 188, 187, 0, 4, 77, 189, 188, 187, 0, 186, 0, 184, 0, 170, 77, 189, 78, 187, 0, 5, 77, 189, 188, 187, 0, 0, 78, 0, 80, 0, 0, 190, 0, 191, 0, 190, 62, 191, 0, ! 229, 0, 59, 0, 329, 59, 0, 208, 0, 320, 50, 170, 0, 82, 0, 81, 0, 89, 0, 90, 0, 112, 0, 200, 0, 207, 0, 49, 0, 95, 193, 110, 0, 49, 0, 95, 197, 110, 0, 0, ! 197, 0, 1, 0, 0, 374, 227, 244, 253, 67, ! 198, 261, 0, 193, 0, 111, 0, 337, 335, 111, ! 0, 337, 335, 1, 111, 0, 337, 1, 111, 0, 207, 62, 207, 0, 207, 62, 1, 0, 200, 62, 207, 0, 200, 62, 1, 0, 207, 0, 200, 0, 218, 0, 120, 206, 0, 83, 206, 0, 73, 206, 0, 91, 206, 0, 192, 206, 0, 70, 170, 0, ! 236, 202, 0, 236, 95, 229, 110, 0, 237, 202, ! 0, 237, 95, 229, 110, 0, 220, 301, 0, 220, ! 301, 204, 0, 220, 203, 301, 0, 220, 203, 301, 204, 0, 220, 95, 229, 110, 0, 220, 95, 229, 110, 204, 0, 220, 203, 95, 229, 110, 0, 220, 203, 95, 229, 110, 204, 0, 221, 206, 0, 221, 96, 113, 206, 0, 221, 96, 193, 113, 206, 0, 35, 206, 0, 36, 206, 0, 95, 201, 110, 0, 61, 201, 111, 0, 95, 201, 110, 0, 49, 0, ! 95, 239, 110, 0, 67, 261, 0, 95, 229, 110, 0, 205, 95, 229, 110, 0, 202, 0, 205, 202, ! 0, 205, 61, 262, 273, 111, 0, 206, 0, 207, 86, 207, 0, 207, 87, 207, 0, 207, 81, 207, 0, 207, 82, 207, 0, 207, 83, 207, 0, 207, 84, 207, 0, 207, 85, 207, 0, 207, 79, 207, *************** static const short yyrhs[] = { -1, *** 559,565 **** 77, 207, 0, 207, 78, 207, 0, 207, 75, 207, 0, 207, 74, 207, 0, 207, 73, 207, 0, 207, 71, 207, 0, 207, 72, 207, 0, 207, 70, 207, ! 0, 207, 69, 207, 0, 207, 68, 376, 65, 207, 0, 207, 67, 207, 0, 207, 66, 207, 0, 64, 0, 64, 207, 0, 206, 0, 208, 86, 208, 0, 208, 87, 208, 0, 208, 81, 208, 0, 208, 82, --- 559,565 ---- 77, 207, 0, 207, 78, 207, 0, 207, 75, 207, 0, 207, 74, 207, 0, 207, 73, 207, 0, 207, 71, 207, 0, 207, 72, 207, 0, 207, 70, 207, ! 0, 207, 69, 207, 0, 207, 68, 379, 65, 207, 0, 207, 67, 207, 0, 207, 66, 207, 0, 64, 0, 64, 207, 0, 206, 0, 208, 86, 208, 0, 208, 87, 208, 0, 208, 81, 208, 0, 208, 82, *************** static const short yyrhs[] = { -1, *** 569,779 **** 208, 75, 208, 0, 208, 74, 208, 0, 208, 73, 208, 0, 208, 71, 208, 0, 208, 72, 208, 0, 208, 70, 208, 0, 208, 69, 208, 0, 208, 68, ! 376, 65, 208, 0, 208, 67, 208, 0, 208, 66, ! 208, 0, 64, 0, 64, 208, 0, 91, 391, 170, ! 0, 91, 391, 184, 0, 211, 0, 402, 0, 3, 0, 59, 0, 60, 0, 0, 6, 77, 210, 189, ! 188, 0, 402, 77, 210, 189, 188, 0, 50, 170, 77, 189, 188, 0, 50, 6, 77, 189, 188, 0, ! 50, 402, 77, 189, 188, 0, 209, 0, 4, 0, ! 5, 0, 215, 0, 251, 215, 0, 209, 0, 83, 214, 0, 73, 214, 0, 95, 214, 110, 0, 3, ! 77, 189, 188, 0, 60, 77, 190, 188, 0, 311, 0, 209, 0, 216, 0, 95, 214, 110, 0, 209, 0, 10, 0, 222, 0, 223, 0, 11, 0, 95, 193, 110, 0, 95, 214, 110, 0, 95, 1, 110, ! 0, 0, 95, 219, 337, 110, 0, 209, 95, 201, 110, 0, 209, 49, 0, 218, 95, 201, 110, 0, 218, 49, 0, 37, 95, 207, 62, 229, 110, 0, 218, 96, 193, 113, 0, 218, 89, 0, 218, 90, ! 0, 42, 0, 9, 95, 201, 110, 0, 315, 0, 52, 77, 229, 78, 95, 193, 110, 0, 53, 77, 229, 78, 95, 193, 110, 0, 54, 77, 229, 78, 95, 193, 110, 0, 55, 77, 229, 78, 95, 193, 110, 0, 51, 95, 193, 110, 0, 51, 95, 229, ! 110, 0, 326, 3, 0, 326, 211, 0, 326, 402, ! 0, 314, 0, 314, 95, 201, 110, 0, 314, 49, 0, 225, 212, 0, 225, 212, 95, 201, 110, 0, ! 225, 212, 49, 0, 225, 213, 0, 225, 314, 0, 225, 213, 95, 201, 110, 0, 225, 213, 49, 0, ! 225, 314, 95, 201, 110, 0, 225, 314, 49, 0, 225, 91, 8, 49, 0, 225, 8, 56, 91, 8, ! 49, 0, 225, 1, 0, 41, 0, 326, 41, 0, ! 40, 0, 326, 221, 0, 44, 0, 45, 0, 12, 0, 223, 12, 0, 0, 218, 94, 0, 218, 93, ! 0, 236, 238, 63, 0, 230, 238, 63, 0, 233, ! 239, 63, 0, 230, 63, 0, 233, 63, 0, 120, ! 226, 0, 303, 0, 309, 0, 49, 0, 228, 49, ! 0, 234, 330, 0, 300, 330, 0, 236, 330, 0, ! 234, 0, 300, 0, 234, 0, 231, 0, 233, 236, ! 0, 236, 232, 0, 236, 235, 232, 0, 233, 236, ! 232, 0, 233, 236, 235, 0, 233, 236, 235, 232, ! 0, 7, 0, 232, 237, 0, 232, 7, 0, 300, 0, 7, 0, 233, 9, 0, 233, 7, 0, 233, ! 251, 0, 236, 0, 300, 236, 0, 236, 235, 0, ! 300, 236, 235, 0, 237, 0, 235, 237, 0, 235, ! 251, 0, 251, 0, 264, 0, 8, 0, 306, 0, ! 29, 95, 193, 110, 0, 29, 95, 229, 110, 0, ! 31, 95, 193, 110, 0, 31, 95, 229, 110, 0, ! 8, 0, 9, 0, 264, 0, 246, 0, 238, 62, ! 242, 0, 247, 0, 239, 62, 242, 0, 248, 0, ! 240, 62, 242, 0, 0, 121, 95, 223, 110, 0, ! 0, 227, 241, 250, 67, 243, 258, 0, 227, 241, ! 250, 0, 0, 250, 67, 245, 258, 0, 250, 0, ! 227, 241, 244, 0, 309, 241, 244, 0, 0, 309, ! 241, 249, 244, 0, 156, 241, 250, 0, 0, 251, ! 0, 252, 0, 251, 252, 0, 32, 95, 95, 253, ! 110, 110, 0, 254, 0, 253, 62, 254, 0, 0, ! 255, 0, 255, 95, 3, 110, 0, 255, 95, 3, ! 62, 201, 110, 0, 255, 95, 201, 110, 0, 170, ! 0, 7, 0, 8, 0, 9, 0, 170, 0, 256, ! 62, 170, 0, 0, 67, 258, 0, 207, 0, 61, ! 111, 0, 61, 259, 111, 0, 61, 259, 62, 111, ! 0, 1, 0, 258, 0, 259, 62, 258, 0, 96, ! 207, 113, 258, 0, 170, 65, 258, 0, 259, 62, ! 170, 65, 258, 0, 104, 151, 153, 0, 104, 151, ! 361, 0, 104, 151, 1, 0, 0, 261, 260, 152, ! 0, 103, 207, 109, 0, 103, 1, 109, 0, 0, ! 263, 262, 0, 263, 1, 0, 0, 15, 170, 61, ! 265, 295, 111, 0, 0, 15, 61, 266, 295, 111, ! 0, 15, 170, 0, 15, 324, 0, 47, 319, 0, ! 0, 0, 0, 276, 277, 61, 267, 282, 111, 250, ! 268, 263, 269, 261, 0, 275, 0, 0, 62, 0, ! 0, 62, 0, 38, 0, 272, 7, 0, 272, 8, ! 0, 272, 9, 0, 272, 38, 0, 272, 251, 0, ! 272, 170, 0, 272, 317, 170, 0, 272, 326, 317, ! 170, 0, 272, 326, 170, 0, 272, 185, 0, 272, ! 317, 185, 0, 272, 326, 317, 185, 0, 273, 0, ! 272, 172, 0, 274, 0, 273, 61, 0, 273, 65, ! 0, 274, 61, 0, 274, 65, 0, 272, 172, 61, ! 0, 272, 172, 65, 0, 272, 61, 0, 0, 65, ! 391, 0, 65, 391, 278, 0, 279, 0, 278, 62, ! 391, 279, 0, 280, 0, 281, 391, 280, 0, 319, ! 0, 305, 0, 39, 391, 0, 7, 391, 0, 281, ! 39, 391, 0, 281, 7, 391, 0, 0, 284, 0, ! 282, 283, 284, 0, 282, 283, 0, 39, 65, 0, ! 285, 0, 284, 285, 0, 286, 63, 0, 286, 111, ! 0, 163, 65, 0, 163, 97, 0, 163, 26, 0, ! 163, 61, 0, 63, 0, 120, 285, 0, 140, 285, ! 0, 140, 230, 63, 0, 393, 0, 230, 287, 0, ! 233, 288, 0, 309, 241, 250, 257, 0, 156, 241, ! 250, 257, 0, 65, 207, 0, 1, 0, 233, 162, ! 241, 250, 257, 0, 162, 241, 250, 257, 0, 130, ! 0, 0, 289, 0, 287, 62, 290, 0, 0, 292, ! 0, 288, 62, 294, 0, 291, 0, 292, 0, 293, ! 0, 294, 0, 303, 241, 250, 257, 0, 4, 65, ! 207, 250, 0, 309, 241, 250, 257, 0, 156, 241, ! 250, 257, 0, 3, 65, 207, 250, 0, 65, 207, ! 250, 0, 303, 241, 250, 257, 0, 4, 65, 207, ! 250, 0, 309, 241, 250, 257, 0, 3, 65, 207, ! 250, 0, 65, 207, 250, 0, 296, 271, 0, 271, ! 0, 297, 0, 296, 62, 297, 0, 170, 0, 170, ! 67, 207, 0, 371, 327, 0, 371, 0, 95, 229, ! 110, 96, 193, 113, 0, 0, 299, 9, 0, 9, ! 0, 300, 9, 0, 251, 0, 300, 251, 0, 95, ! 201, 110, 0, 95, 381, 110, 0, 49, 0, 95, ! 1, 110, 0, 303, 0, 251, 303, 0, 83, 300, ! 302, 0, 73, 300, 302, 0, 83, 302, 0, 73, ! 302, 0, 325, 299, 302, 0, 304, 0, 304, 301, ! 299, 396, 0, 304, 96, 193, 113, 0, 304, 96, ! 113, 0, 95, 302, 110, 0, 317, 316, 0, 316, ! 0, 316, 0, 326, 316, 0, 305, 0, 307, 0, ! 326, 307, 0, 317, 316, 0, 309, 0, 251, 309, ! 0, 83, 300, 308, 0, 73, 300, 308, 0, 83, ! 308, 0, 73, 308, 0, 325, 299, 308, 0, 217, ! 0, 83, 300, 308, 0, 73, 300, 308, 0, 83, ! 310, 0, 73, 310, 0, 325, 299, 308, 0, 311, ! 0, 217, 301, 299, 396, 0, 95, 310, 110, 0, ! 217, 96, 193, 113, 0, 217, 96, 113, 0, 313, ! 0, 326, 313, 0, 326, 209, 0, 317, 216, 0, ! 317, 213, 0, 317, 212, 0, 317, 209, 0, 317, ! 212, 0, 313, 0, 326, 313, 0, 236, 95, 201, ! 110, 0, 236, 95, 214, 110, 0, 236, 228, 0, ! 4, 0, 5, 0, 184, 0, 318, 0, 317, 318, ! 0, 317, 50, 323, 56, 0, 317, 3, 56, 0, ! 317, 59, 56, 0, 4, 56, 0, 5, 56, 0, ! 60, 56, 0, 184, 56, 0, 320, 0, 326, 320, ! 0, 321, 170, 0, 321, 184, 0, 321, 323, 0, ! 321, 50, 323, 0, 322, 0, 321, 322, 0, 321, ! 323, 56, 0, 321, 50, 323, 56, 0, 4, 56, ! 0, 5, 56, 0, 184, 56, 0, 59, 56, 0, ! 3, 56, 0, 60, 56, 0, 170, 77, 189, 188, ! 0, 326, 316, 0, 307, 0, 326, 307, 0, 317, ! 83, 0, 326, 317, 83, 0, 56, 0, 83, 299, ! 327, 0, 83, 299, 0, 73, 299, 327, 0, 73, ! 299, 0, 325, 299, 0, 325, 299, 327, 0, 328, ! 0, 96, 193, 113, 0, 328, 96, 193, 113, 0, ! 330, 0, 251, 330, 0, 83, 300, 329, 0, 83, ! 329, 0, 83, 300, 0, 83, 0, 73, 300, 329, ! 0, 73, 329, 0, 73, 300, 0, 73, 0, 325, ! 299, 0, 325, 299, 329, 0, 331, 0, 95, 329, ! 110, 0, 331, 95, 381, 110, 299, 396, 0, 331, ! 49, 299, 396, 0, 331, 96, 193, 113, 0, 331, ! 96, 113, 0, 95, 382, 110, 299, 396, 0, 205, ! 299, 396, 0, 228, 299, 396, 0, 96, 193, 113, ! 0, 96, 113, 0, 345, 0, 333, 0, 332, 345, ! 0, 332, 333, 0, 1, 63, 0, 0, 335, 0, ! 336, 0, 335, 336, 0, 34, 256, 63, 0, 0, ! 403, 61, 338, 199, 0, 337, 0, 0, 0, 16, ! 341, 195, 342, 343, 0, 339, 0, 0, 344, 403, ! 346, 0, 339, 0, 403, 346, 0, 226, 0, 193, ! 63, 0, 0, 340, 17, 347, 343, 0, 340, 0, ! 0, 0, 18, 348, 195, 349, 343, 0, 0, 0, ! 19, 350, 343, 18, 351, 194, 63, 0, 0, 0, ! 0, 0, 20, 352, 95, 374, 353, 196, 63, 354, ! 376, 110, 355, 343, 0, 0, 0, 21, 356, 95, ! 197, 110, 357, 343, 0, 0, 22, 207, 65, 358, ! 345, 0, 0, 22, 207, 13, 207, 65, 359, 345, ! 0, 0, 23, 65, 360, 345, 0, 24, 63, 0, ! 25, 63, 0, 26, 63, 0, 26, 193, 63, 0, ! 121, 375, 95, 223, 110, 63, 0, 121, 375, 95, ! 223, 65, 377, 110, 63, 0, 121, 375, 95, 223, ! 65, 377, 65, 377, 110, 63, 0, 121, 375, 95, ! 223, 56, 377, 110, 63, 0, 121, 375, 95, 223, ! 65, 377, 65, 377, 65, 380, 110, 63, 0, 121, ! 375, 95, 223, 56, 377, 65, 380, 110, 63, 0, ! 121, 375, 95, 223, 65, 377, 56, 380, 110, 63, ! 0, 27, 83, 193, 63, 0, 27, 170, 63, 0, ! 373, 345, 0, 373, 111, 0, 63, 0, 364, 0, ! 132, 0, 131, 0, 128, 0, 0, 0, 97, 362, ! 153, 363, 367, 0, 0, 0, 97, 365, 339, 366, ! 367, 0, 368, 0, 367, 368, 0, 0, 0, 0, ! 98, 369, 372, 370, 339, 0, 234, 0, 300, 0, ! 95, 13, 110, 0, 95, 390, 110, 0, 3, 65, ! 0, 59, 65, 0, 4, 65, 0, 5, 65, 0, ! 376, 63, 0, 226, 0, 61, 199, 0, 0, 9, ! 0, 0, 193, 0, 1, 0, 0, 378, 0, 379, ! 0, 378, 62, 379, 0, 12, 95, 193, 110, 0, ! 96, 170, 113, 12, 95, 193, 110, 0, 223, 0, ! 380, 62, 223, 0, 0, 382, 0, 229, 0, 386, ! 0, 387, 13, 0, 386, 13, 0, 229, 13, 0, ! 13, 0, 386, 65, 0, 229, 65, 0, 0, 67, ! 384, 385, 0, 102, 0, 258, 0, 388, 0, 390, ! 383, 0, 387, 389, 0, 387, 392, 0, 387, 392, ! 67, 258, 0, 386, 62, 0, 229, 62, 0, 231, ! 227, 0, 234, 227, 0, 236, 227, 0, 231, 330, ! 0, 231, 0, 233, 309, 0, 390, 0, 390, 383, ! 0, 388, 0, 229, 0, 0, 0, 309, 0, 3, ! 394, 3, 395, 63, 0, 77, 189, 188, 0, 0, ! 95, 201, 110, 0, 0, 0, 64, 95, 398, 110, ! 0, 64, 49, 0, 229, 0, 1, 0, 397, 0, ! 398, 62, 397, 0, 0, 83, 299, 399, 0, 73, ! 299, 399, 0, 325, 299, 399, 0, 43, 0, 0, ! 400, 83, 401, 0, 400, 84, 401, 0, 400, 85, ! 401, 0, 400, 81, 401, 0, 400, 82, 401, 0, ! 400, 73, 401, 0, 400, 71, 401, 0, 400, 72, ! 401, 0, 400, 91, 401, 0, 400, 62, 401, 0, ! 400, 76, 401, 0, 400, 77, 401, 0, 400, 78, ! 401, 0, 400, 75, 401, 0, 400, 66, 401, 0, ! 400, 67, 401, 0, 400, 79, 401, 0, 400, 80, ! 401, 0, 400, 89, 401, 0, 400, 90, 401, 0, ! 400, 70, 401, 0, 400, 69, 401, 0, 400, 112, ! 401, 0, 400, 68, 65, 401, 0, 400, 74, 401, ! 0, 400, 93, 401, 0, 400, 86, 401, 0, 400, ! 49, 401, 0, 400, 96, 113, 401, 0, 400, 41, ! 401, 0, 400, 40, 401, 0, 400, 41, 96, 113, ! 401, 0, 400, 40, 96, 113, 401, 0, 400, 371, ! 399, 401, 0, 400, 1, 401, 0, 0 }; #endif --- 569,780 ---- 208, 75, 208, 0, 208, 74, 208, 0, 208, 73, 208, 0, 208, 71, 208, 0, 208, 72, 208, 0, 208, 70, 208, 0, 208, 69, 208, 0, 208, 68, ! 379, 65, 208, 0, 208, 67, 208, 0, 208, 66, ! 208, 0, 64, 0, 64, 208, 0, 91, 394, 170, ! 0, 91, 394, 184, 0, 211, 0, 405, 0, 3, 0, 59, 0, 60, 0, 0, 6, 77, 210, 189, ! 188, 0, 405, 77, 210, 189, 188, 0, 50, 170, 77, 189, 188, 0, 50, 6, 77, 189, 188, 0, ! 50, 405, 77, 189, 188, 0, 209, 0, 4, 0, ! 5, 0, 215, 0, 254, 215, 0, 209, 0, 83, 214, 0, 73, 214, 0, 95, 214, 110, 0, 3, ! 77, 189, 188, 0, 60, 77, 190, 188, 0, 314, 0, 209, 0, 216, 0, 95, 214, 110, 0, 209, 0, 10, 0, 222, 0, 223, 0, 11, 0, 95, 193, 110, 0, 95, 214, 110, 0, 95, 1, 110, ! 0, 0, 95, 219, 340, 110, 0, 209, 95, 201, 110, 0, 209, 49, 0, 218, 95, 201, 110, 0, 218, 49, 0, 37, 95, 207, 62, 229, 110, 0, 218, 96, 193, 113, 0, 218, 89, 0, 218, 90, ! 0, 42, 0, 9, 95, 201, 110, 0, 318, 0, 52, 77, 229, 78, 95, 193, 110, 0, 53, 77, 229, 78, 95, 193, 110, 0, 54, 77, 229, 78, 95, 193, 110, 0, 55, 77, 229, 78, 95, 193, 110, 0, 51, 95, 193, 110, 0, 51, 95, 229, ! 110, 0, 329, 3, 0, 329, 211, 0, 329, 405, ! 0, 317, 0, 317, 95, 201, 110, 0, 317, 49, 0, 225, 212, 0, 225, 212, 95, 201, 110, 0, ! 225, 212, 49, 0, 225, 213, 0, 225, 317, 0, 225, 213, 95, 201, 110, 0, 225, 213, 49, 0, ! 225, 317, 95, 201, 110, 0, 225, 317, 49, 0, 225, 91, 8, 49, 0, 225, 8, 56, 91, 8, ! 49, 0, 225, 1, 0, 41, 0, 329, 41, 0, ! 40, 0, 329, 221, 0, 44, 0, 45, 0, 12, 0, 223, 12, 0, 0, 218, 94, 0, 218, 93, ! 0, 239, 241, 63, 0, 230, 241, 63, 0, 233, ! 242, 63, 0, 230, 63, 0, 233, 63, 0, 120, ! 226, 0, 306, 0, 312, 0, 49, 0, 228, 49, ! 0, 234, 333, 0, 303, 333, 0, 239, 333, 0, ! 234, 0, 303, 0, 234, 0, 231, 0, 233, 239, ! 0, 239, 232, 0, 239, 235, 232, 0, 233, 239, ! 232, 0, 233, 239, 235, 0, 233, 239, 235, 232, ! 0, 7, 0, 232, 240, 0, 232, 7, 0, 303, 0, 7, 0, 233, 9, 0, 233, 7, 0, 233, ! 254, 0, 239, 0, 303, 239, 0, 239, 235, 0, ! 303, 239, 235, 0, 240, 0, 235, 240, 0, 235, ! 254, 0, 254, 0, 14, 0, 30, 0, 29, 0, ! 267, 0, 8, 0, 309, 0, 238, 95, 193, 110, ! 0, 238, 95, 229, 110, 0, 31, 95, 193, 110, ! 0, 31, 95, 229, 110, 0, 8, 0, 9, 0, ! 267, 0, 249, 0, 241, 62, 245, 0, 250, 0, ! 242, 62, 245, 0, 251, 0, 243, 62, 245, 0, ! 0, 121, 95, 223, 110, 0, 0, 227, 244, 253, ! 67, 246, 261, 0, 227, 244, 253, 0, 0, 253, ! 67, 248, 261, 0, 253, 0, 227, 244, 247, 0, ! 312, 244, 247, 0, 0, 312, 244, 252, 247, 0, ! 156, 244, 253, 0, 0, 254, 0, 255, 0, 254, ! 255, 0, 32, 95, 95, 256, 110, 110, 0, 257, ! 0, 256, 62, 257, 0, 0, 258, 0, 258, 95, ! 3, 110, 0, 258, 95, 3, 62, 201, 110, 0, ! 258, 95, 201, 110, 0, 170, 0, 7, 0, 8, ! 0, 9, 0, 170, 0, 259, 62, 170, 0, 0, ! 67, 261, 0, 207, 0, 61, 111, 0, 61, 262, ! 111, 0, 61, 262, 62, 111, 0, 1, 0, 261, ! 0, 262, 62, 261, 0, 96, 207, 113, 261, 0, ! 170, 65, 261, 0, 262, 62, 170, 65, 261, 0, ! 104, 151, 153, 0, 104, 151, 364, 0, 104, 151, ! 1, 0, 0, 264, 263, 152, 0, 103, 207, 109, ! 0, 103, 1, 109, 0, 0, 266, 265, 0, 266, ! 1, 0, 0, 15, 170, 61, 268, 298, 111, 0, ! 0, 15, 61, 269, 298, 111, 0, 15, 170, 0, ! 15, 327, 0, 47, 322, 0, 0, 0, 0, 279, ! 280, 61, 270, 285, 111, 253, 271, 266, 272, 264, ! 0, 278, 0, 0, 62, 0, 0, 62, 0, 38, ! 0, 275, 7, 0, 275, 8, 0, 275, 9, 0, ! 275, 38, 0, 275, 254, 0, 275, 170, 0, 275, ! 320, 170, 0, 275, 329, 320, 170, 0, 275, 329, ! 170, 0, 275, 185, 0, 275, 320, 185, 0, 275, ! 329, 320, 185, 0, 276, 0, 275, 172, 0, 277, ! 0, 276, 61, 0, 276, 65, 0, 277, 61, 0, ! 277, 65, 0, 275, 172, 61, 0, 275, 172, 65, ! 0, 275, 61, 0, 0, 65, 394, 0, 65, 394, ! 281, 0, 282, 0, 281, 62, 394, 282, 0, 283, ! 0, 284, 394, 283, 0, 322, 0, 308, 0, 39, ! 394, 0, 7, 394, 0, 284, 39, 394, 0, 284, ! 7, 394, 0, 0, 287, 0, 285, 286, 287, 0, ! 285, 286, 0, 39, 65, 0, 288, 0, 287, 288, ! 0, 289, 63, 0, 289, 111, 0, 163, 65, 0, ! 163, 97, 0, 163, 26, 0, 163, 61, 0, 63, ! 0, 120, 288, 0, 140, 288, 0, 140, 230, 63, ! 0, 396, 0, 230, 290, 0, 233, 291, 0, 312, ! 244, 253, 260, 0, 156, 244, 253, 260, 0, 65, ! 207, 0, 1, 0, 233, 162, 244, 253, 260, 0, ! 162, 244, 253, 260, 0, 130, 0, 0, 292, 0, ! 290, 62, 293, 0, 0, 295, 0, 291, 62, 297, ! 0, 294, 0, 295, 0, 296, 0, 297, 0, 306, ! 244, 253, 260, 0, 4, 65, 207, 253, 0, 312, ! 244, 253, 260, 0, 156, 244, 253, 260, 0, 3, ! 65, 207, 253, 0, 65, 207, 253, 0, 306, 244, ! 253, 260, 0, 4, 65, 207, 253, 0, 312, 244, ! 253, 260, 0, 3, 65, 207, 253, 0, 65, 207, ! 253, 0, 299, 274, 0, 274, 0, 300, 0, 299, ! 62, 300, 0, 170, 0, 170, 67, 207, 0, 374, ! 330, 0, 374, 0, 95, 229, 110, 96, 193, 113, ! 0, 0, 302, 9, 0, 9, 0, 303, 9, 0, ! 254, 0, 303, 254, 0, 95, 201, 110, 0, 95, ! 384, 110, 0, 49, 0, 95, 1, 110, 0, 306, ! 0, 254, 306, 0, 83, 303, 305, 0, 73, 303, ! 305, 0, 83, 305, 0, 73, 305, 0, 328, 302, ! 305, 0, 307, 0, 307, 304, 302, 399, 0, 307, ! 96, 193, 113, 0, 307, 96, 113, 0, 95, 305, ! 110, 0, 320, 319, 0, 319, 0, 319, 0, 329, ! 319, 0, 308, 0, 310, 0, 329, 310, 0, 320, ! 319, 0, 312, 0, 254, 312, 0, 83, 303, 311, ! 0, 73, 303, 311, 0, 83, 311, 0, 73, 311, ! 0, 328, 302, 311, 0, 217, 0, 83, 303, 311, ! 0, 73, 303, 311, 0, 83, 313, 0, 73, 313, ! 0, 328, 302, 311, 0, 314, 0, 217, 304, 302, ! 399, 0, 95, 313, 110, 0, 217, 96, 193, 113, ! 0, 217, 96, 113, 0, 316, 0, 329, 316, 0, ! 329, 209, 0, 320, 216, 0, 320, 213, 0, 320, ! 212, 0, 320, 209, 0, 320, 212, 0, 316, 0, ! 329, 316, 0, 239, 95, 201, 110, 0, 239, 95, ! 214, 110, 0, 239, 228, 0, 4, 0, 5, 0, ! 184, 0, 321, 0, 320, 321, 0, 320, 50, 326, ! 56, 0, 320, 3, 56, 0, 320, 59, 56, 0, ! 4, 56, 0, 5, 56, 0, 60, 56, 0, 184, ! 56, 0, 323, 0, 329, 323, 0, 324, 170, 0, ! 324, 184, 0, 324, 326, 0, 324, 50, 326, 0, ! 325, 0, 324, 325, 0, 324, 326, 56, 0, 324, ! 50, 326, 56, 0, 4, 56, 0, 5, 56, 0, ! 184, 56, 0, 59, 56, 0, 3, 56, 0, 60, ! 56, 0, 170, 77, 189, 188, 0, 329, 319, 0, ! 310, 0, 329, 310, 0, 320, 83, 0, 329, 320, ! 83, 0, 56, 0, 83, 302, 330, 0, 83, 302, ! 0, 73, 302, 330, 0, 73, 302, 0, 328, 302, ! 0, 328, 302, 330, 0, 331, 0, 96, 193, 113, ! 0, 331, 96, 193, 113, 0, 333, 0, 254, 333, ! 0, 83, 303, 332, 0, 83, 332, 0, 83, 303, ! 0, 83, 0, 73, 303, 332, 0, 73, 332, 0, ! 73, 303, 0, 73, 0, 328, 302, 0, 328, 302, ! 332, 0, 334, 0, 95, 332, 110, 0, 334, 95, ! 384, 110, 302, 399, 0, 334, 49, 302, 399, 0, ! 334, 96, 193, 113, 0, 334, 96, 113, 0, 95, ! 385, 110, 302, 399, 0, 205, 302, 399, 0, 228, ! 302, 399, 0, 96, 193, 113, 0, 96, 113, 0, ! 348, 0, 336, 0, 335, 348, 0, 335, 336, 0, ! 1, 63, 0, 0, 338, 0, 339, 0, 338, 339, ! 0, 34, 259, 63, 0, 0, 406, 61, 341, 199, ! 0, 340, 0, 0, 0, 16, 344, 195, 345, 346, ! 0, 342, 0, 0, 347, 406, 349, 0, 342, 0, ! 406, 349, 0, 226, 0, 193, 63, 0, 0, 343, ! 17, 350, 346, 0, 343, 0, 0, 0, 18, 351, ! 195, 352, 346, 0, 0, 0, 19, 353, 346, 18, ! 354, 194, 63, 0, 0, 0, 0, 0, 20, 355, ! 95, 377, 356, 196, 63, 357, 379, 110, 358, 346, ! 0, 0, 0, 21, 359, 95, 197, 110, 360, 346, ! 0, 0, 22, 207, 65, 361, 348, 0, 0, 22, ! 207, 13, 207, 65, 362, 348, 0, 0, 23, 65, ! 363, 348, 0, 24, 63, 0, 25, 63, 0, 26, ! 63, 0, 26, 193, 63, 0, 121, 378, 95, 223, ! 110, 63, 0, 121, 378, 95, 223, 65, 380, 110, ! 63, 0, 121, 378, 95, 223, 65, 380, 65, 380, ! 110, 63, 0, 121, 378, 95, 223, 56, 380, 110, ! 63, 0, 121, 378, 95, 223, 65, 380, 65, 380, ! 65, 383, 110, 63, 0, 121, 378, 95, 223, 56, ! 380, 65, 383, 110, 63, 0, 121, 378, 95, 223, ! 65, 380, 56, 383, 110, 63, 0, 27, 83, 193, ! 63, 0, 27, 170, 63, 0, 376, 348, 0, 376, ! 111, 0, 63, 0, 367, 0, 132, 0, 131, 0, ! 128, 0, 0, 0, 97, 365, 153, 366, 370, 0, ! 0, 0, 97, 368, 342, 369, 370, 0, 371, 0, ! 370, 371, 0, 0, 0, 0, 98, 372, 375, 373, ! 342, 0, 234, 0, 303, 0, 95, 13, 110, 0, ! 95, 393, 110, 0, 3, 65, 0, 59, 65, 0, ! 4, 65, 0, 5, 65, 0, 379, 63, 0, 226, ! 0, 61, 199, 0, 0, 9, 0, 0, 193, 0, ! 1, 0, 0, 381, 0, 382, 0, 381, 62, 382, ! 0, 12, 95, 193, 110, 0, 96, 170, 113, 12, ! 95, 193, 110, 0, 223, 0, 383, 62, 223, 0, ! 0, 385, 0, 229, 0, 389, 0, 390, 13, 0, ! 389, 13, 0, 229, 13, 0, 13, 0, 389, 65, ! 0, 229, 65, 0, 0, 67, 387, 388, 0, 102, ! 0, 261, 0, 391, 0, 393, 386, 0, 390, 392, ! 0, 390, 395, 0, 390, 395, 67, 261, 0, 389, ! 62, 0, 229, 62, 0, 231, 227, 0, 234, 227, ! 0, 239, 227, 0, 231, 333, 0, 231, 0, 233, ! 312, 0, 393, 0, 393, 386, 0, 391, 0, 229, ! 0, 0, 0, 312, 0, 3, 397, 3, 398, 63, ! 0, 77, 189, 188, 0, 0, 95, 201, 110, 0, ! 0, 0, 64, 95, 401, 110, 0, 64, 49, 0, ! 229, 0, 1, 0, 400, 0, 401, 62, 400, 0, ! 0, 83, 302, 402, 0, 73, 302, 402, 0, 328, ! 302, 402, 0, 43, 0, 0, 403, 83, 404, 0, ! 403, 84, 404, 0, 403, 85, 404, 0, 403, 81, ! 404, 0, 403, 82, 404, 0, 403, 73, 404, 0, ! 403, 71, 404, 0, 403, 72, 404, 0, 403, 91, ! 404, 0, 403, 62, 404, 0, 403, 76, 404, 0, ! 403, 77, 404, 0, 403, 78, 404, 0, 403, 75, ! 404, 0, 403, 66, 404, 0, 403, 67, 404, 0, ! 403, 79, 404, 0, 403, 80, 404, 0, 403, 89, ! 404, 0, 403, 90, 404, 0, 403, 70, 404, 0, ! 403, 69, 404, 0, 403, 112, 404, 0, 403, 68, ! 65, 404, 0, 403, 74, 404, 0, 403, 93, 404, ! 0, 403, 86, 404, 0, 403, 49, 404, 0, 403, ! 96, 113, 404, 0, 403, 41, 404, 0, 403, 40, ! 404, 0, 403, 41, 96, 113, 404, 0, 403, 40, ! 96, 113, 404, 0, 403, 374, 402, 404, 0, 403, ! 1, 404, 0, 0 }; #endif *************** static const short yyrline[] = { 0, *** 797,878 **** 958, 961, 968, 976, 978, 981, 983, 986, 988, 991, 995, 997, 998, 999, 1000, 1003, 1005, 1006, 1009, 1011, 1012, 1015, 1020, 1020, 1024, 1024, 1027, 1027, 1030, 1030, ! 1034, 1034, 1039, 1039, 1042, 1042, 1045, 1047, 1051, 1059, ! 1063, 1066, 1069, 1071, 1076, 1082, 1092, 1094, 1102, 1105, ! 1108, 1111, 1115, 1118, 1124, 1130, 1131, 1143, 1146, 1148, ! 1150, 1152, 1156, 1159, 1162, 1167, 1171, 1176, 1180, 1183, ! 1184, 1188, 1205, 1211, 1214, 1216, 1217, 1218, 1221, 1225, ! 1228, 1230, 1234, 1237, 1240, 1244, 1247, 1249, 1251, 1253, ! 1256, 1258, 1260, 1263, 1265, 1271, 1274, 1277, 1280, 1283, ! 1288, 1291, 1294, 1298, 1300, 1304, 1308, 1310, 1314, 1317, ! 1322, 1325, 1327, 1337, 1351, 1356, 1362, 1364, 1366, 1379, ! 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1396, 1398, 1400, ! 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, ! 1422, 1426, 1428, 1430, 1434, 1437, 1439, 1441, 1443, 1445, ! 1447, 1449, 1451, 1453, 1455, 1457, 1459, 1461, 1463, 1465, ! 1467, 1469, 1471, 1473, 1475, 1479, 1481, 1483, 1487, 1490, ! 1492, 1493, 1494, 1495, 1496, 1499, 1512, 1515, 1519, 1522, ! 1524, 1529, 1531, 1532, 1535, 1537, 1545, 1547, 1549, 1551, ! 1555, 1558, 1562, 1566, 1567, 1568, 1572, 1580, 1581, 1582, ! 1592, 1598, 1600, 1603, 1605, 1616, 1621, 1623, 1625, 1627, ! 1629, 1632, 1634, 1636, 1639, 1641, 1652, 1653, 1657, 1661, ! 1665, 1669, 1671, 1675, 1677, 1679, 1687, 1689, 1691, 1693, ! 1697, 1699, 1701, 1703, 1708, 1710, 1712, 1714, 1717, 1719, ! 1721, 1765, 1768, 1772, 1775, 1779, 1782, 1787, 1789, 1793, ! 1801, 1804, 1811, 1817, 1821, 1823, 1828, 1830, 1837, 1839, ! 1843, 1847, 1853, 1857, 1860, 1864, 1867, 1877, 1880, 1884, ! 1888, 1891, 1894, 1897, 1900, 1906, 1912, 1914, 1935, 1938, ! 1943, 1948, 1956, 1966, 1970, 1973, 1976, 1981, 1984, 1986, ! 1988, 1996, 1999, 2001, 2003, 2006, 2009, 2024, 2043, 2046, ! 2048, 2051, 2053, 2057, 2059, 2063, 2065, 2069, 2072, 2076, ! 2081, 2082, 2095, 2102, 2103, 2109, 2114, 2119, 2127, 2128, ! 2135, 2138, 2142, 2145, 2149, 2154, 2157, 2161, 2164, 2166, ! 2168, 2170, 2177, 2179, 2180, 2181, 2185, 2188, 2192, 2195, ! 2202, 2204, 2207, 2210, 2213, 2219, 2222, 2225, 2227, 2229, ! 2233, 2239, 2244, 2250, 2252, 2257, 2260, 2264, 2266, 2268, ! 2272, 2276, 2282, 2285, 2291, 2294, 2297, 2303, 2320, 2339, ! 2344, 2349, 2357, 2359, 2362, 2364, 2369, 2371, 2373, 2375, ! 2377, 2379, 2383, 2389, 2394, 2399, 2406, 2412, 2417, 2424, ! 2431, 2437, 2444, 2452, 2459, 2470, 2481, 2489, 2497, 2506, ! 2509, 2512, 2516, 2518, 2522, 2525, 2529, 2533, 2537, 2539, ! 2543, 2554, 2568, 2569, 2570, 2571, 2574, 2583, 2590, 2598, ! 2600, 2605, 2607, 2609, 2611, 2613, 2615, 2618, 2628, 2633, ! 2637, 2662, 2668, 2670, 2672, 2674, 2685, 2690, 2692, 2698, ! 2701, 2708, 2718, 2721, 2728, 2738, 2740, 2743, 2745, 2748, ! 2752, 2757, 2761, 2764, 2767, 2772, 2775, 2779, 2782, 2784, ! 2788, 2790, 2797, 2799, 2802, 2805, 2810, 2814, 2819, 2829, ! 2832, 2836, 2840, 2843, 2846, 2855, 2858, 2860, 2862, 2868, ! 2870, 2879, 2882, 2884, 2886, 2888, 2892, 2895, 2898, 2900, ! 2902, 2904, 2908, 2911, 2922, 2932, 2934, 2935, 2939, 2947, ! 2949, 2957, 2960, 2962, 2964, 2966, 2970, 2973, 2976, 2978, ! 2980, 2982, 2986, 2989, 2992, 2994, 2996, 2998, 3000, 3002, ! 3006, 3013, 3017, 3022, 3026, 3031, 3033, 3037, 3040, 3042, ! 3046, 3048, 3049, 3052, 3054, 3056, 3060, 3063, 3070, 3081, ! 3087, 3093, 3097, 3099, 3103, 3117, 3119, 3121, 3125, 3133, ! 3146, 3149, 3156, 3169, 3175, 3177, 3178, 3179, 3187, 3192, ! 3201, 3202, 3206, 3209, 3215, 3221, 3224, 3226, 3228, 3230, ! 3234, 3238, 3242, 3245, 3249, 3251, 3260, 3263, 3265, 3267, ! 3269, 3271, 3273, 3275, 3277, 3281, 3285, 3289, 3293, 3295, ! 3297, 3299, 3301, 3303, 3305, 3307, 3309, 3317, 3319, 3320, ! 3321, 3324, 3330, 3332, 3337, 3339, 3342, 3353, 3357, 3361, ! 3366, 3371, 3373, 3377, 3379, 3381, 3387, 3389, 3393, 3397, ! 3399, 3402, 3407, 3410, 3416, 3418, 3420, 3422, 3427, 3430, ! 3432, 3434, 3436, 3439, 3441, 3443, 3446, 3448, 3451, 3452, ! 3455, 3456, 3459, 3460, 3462, 3464, 3466, 3468, 3473, 3476, ! 3479, 3482, 3485, 3488, 3491, 3497, 3499, 3501, 3505, 3508, ! 3510, 3512, 3515, 3519, 3523, 3525, 3528, 3532, 3534, 3537, ! 3539, 3540, 3551, 3555, 3557, 3560, 3562, 3565, 3582, 3590, ! 3593, 3595, 3597, 3601, 3604, 3605, 3613, 3616, 3619, 3622, ! 3623, 3629, 3632, 3635, 3637, 3641, 3644, 3648, 3651, 3661, ! 3666, 3667, 3674, 3677, 3680, 3682, 3685, 3687, 3697, 3711, ! 3715, 3718, 3720, 3724, 3728, 3731, 3734, 3736, 3740, 3742, ! 3749, 3755, 3758, 3762, 3765, 3768, 3773, 3777, 3782, 3784, ! 3787, 3792, 3798, 3814, 3822, 3825, 3828, 3831, 3834, 3837, ! 3839, 3843, 3849, 3853, 3856, 3860, 3863, 3865, 3867, 3873, ! 3886, 3894, 3897, 3899, 3901, 3903, 3905, 3907, 3909, 3911, ! 3913, 3915, 3917, 3919, 3921, 3923, 3925, 3927, 3929, 3931, ! 3933, 3935, 3937, 3939, 3941, 3943, 3945, 3947, 3949, 3951, ! 3953, 3955, 3957, 3959, 3961, 3963, 3970 }; #endif --- 798,879 ---- 958, 961, 968, 976, 978, 981, 983, 986, 988, 991, 995, 997, 998, 999, 1000, 1003, 1005, 1006, 1009, 1011, 1012, 1015, 1020, 1020, 1024, 1024, 1027, 1027, 1030, 1030, ! 1034, 1035, 1040, 1041, 1044, 1045, 1048, 1051, 1055, 1063, ! 1067, 1070, 1073, 1075, 1080, 1086, 1096, 1098, 1106, 1109, ! 1112, 1115, 1119, 1122, 1128, 1134, 1135, 1147, 1150, 1152, ! 1154, 1156, 1160, 1163, 1166, 1171, 1175, 1180, 1184, 1187, ! 1188, 1192, 1209, 1215, 1218, 1220, 1221, 1222, 1225, 1229, ! 1232, 1234, 1238, 1241, 1244, 1248, 1251, 1253, 1255, 1257, ! 1260, 1262, 1265, 1269, 1272, 1279, 1282, 1285, 1288, 1291, ! 1296, 1299, 1302, 1306, 1308, 1312, 1316, 1318, 1322, 1325, ! 1330, 1333, 1335, 1345, 1359, 1364, 1370, 1372, 1374, 1387, ! 1390, 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1406, 1408, ! 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428, ! 1430, 1434, 1436, 1438, 1442, 1445, 1447, 1449, 1451, 1453, ! 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, 1471, 1473, ! 1475, 1477, 1479, 1481, 1483, 1487, 1489, 1491, 1495, 1498, ! 1500, 1501, 1502, 1503, 1504, 1507, 1520, 1523, 1527, 1530, ! 1532, 1537, 1539, 1540, 1543, 1545, 1553, 1555, 1557, 1559, ! 1563, 1566, 1570, 1574, 1575, 1576, 1580, 1588, 1589, 1590, ! 1600, 1606, 1608, 1611, 1613, 1624, 1629, 1631, 1633, 1635, ! 1637, 1640, 1642, 1644, 1647, 1649, 1660, 1661, 1665, 1669, ! 1673, 1677, 1679, 1683, 1685, 1687, 1695, 1697, 1699, 1701, ! 1705, 1707, 1709, 1711, 1716, 1718, 1720, 1722, 1725, 1727, ! 1729, 1773, 1776, 1780, 1783, 1787, 1790, 1795, 1797, 1801, ! 1809, 1812, 1819, 1825, 1829, 1831, 1836, 1838, 1845, 1847, ! 1851, 1855, 1861, 1865, 1868, 1872, 1875, 1885, 1888, 1892, ! 1896, 1899, 1902, 1905, 1908, 1914, 1920, 1922, 1943, 1946, ! 1951, 1956, 1964, 1974, 1978, 1981, 1984, 1989, 1992, 1994, ! 1996, 2000, 2004, 2008, 2016, 2019, 2021, 2023, 2027, 2031, ! 2046, 2065, 2068, 2070, 2073, 2075, 2079, 2081, 2085, 2087, ! 2091, 2094, 2098, 2103, 2104, 2117, 2124, 2125, 2131, 2136, ! 2141, 2149, 2150, 2157, 2160, 2164, 2167, 2171, 2176, 2179, ! 2183, 2186, 2188, 2190, 2192, 2199, 2201, 2202, 2203, 2207, ! 2210, 2214, 2217, 2224, 2226, 2229, 2232, 2235, 2241, 2244, ! 2247, 2249, 2251, 2255, 2261, 2266, 2272, 2274, 2279, 2282, ! 2286, 2288, 2290, 2294, 2298, 2304, 2307, 2313, 2316, 2319, ! 2325, 2342, 2361, 2366, 2371, 2379, 2381, 2384, 2386, 2391, ! 2393, 2395, 2397, 2399, 2401, 2405, 2411, 2416, 2421, 2428, ! 2434, 2439, 2446, 2453, 2459, 2466, 2474, 2481, 2492, 2503, ! 2511, 2519, 2528, 2531, 2534, 2538, 2540, 2544, 2547, 2551, ! 2555, 2559, 2561, 2565, 2576, 2590, 2591, 2592, 2593, 2596, ! 2605, 2612, 2620, 2622, 2627, 2629, 2631, 2633, 2635, 2637, ! 2640, 2650, 2655, 2659, 2684, 2690, 2692, 2694, 2696, 2707, ! 2712, 2714, 2720, 2723, 2730, 2740, 2743, 2750, 2760, 2762, ! 2765, 2767, 2770, 2774, 2779, 2783, 2786, 2789, 2794, 2797, ! 2801, 2804, 2806, 2810, 2812, 2819, 2821, 2824, 2827, 2832, ! 2836, 2841, 2851, 2854, 2858, 2862, 2865, 2868, 2877, 2880, ! 2882, 2884, 2890, 2892, 2901, 2904, 2906, 2908, 2910, 2914, ! 2917, 2920, 2922, 2924, 2926, 2930, 2933, 2944, 2954, 2956, ! 2957, 2961, 2969, 2971, 2979, 2982, 2984, 2986, 2988, 2992, ! 2995, 2998, 3000, 3002, 3004, 3008, 3011, 3014, 3016, 3018, ! 3020, 3022, 3024, 3028, 3035, 3039, 3044, 3048, 3053, 3055, ! 3059, 3062, 3064, 3068, 3070, 3071, 3074, 3076, 3078, 3082, ! 3085, 3092, 3103, 3109, 3115, 3119, 3121, 3125, 3139, 3141, ! 3143, 3147, 3155, 3168, 3171, 3178, 3191, 3197, 3199, 3200, ! 3201, 3209, 3214, 3223, 3224, 3228, 3231, 3237, 3243, 3246, ! 3248, 3250, 3252, 3256, 3260, 3264, 3267, 3271, 3273, 3282, ! 3285, 3287, 3289, 3291, 3293, 3295, 3297, 3299, 3303, 3307, ! 3311, 3315, 3317, 3319, 3321, 3323, 3325, 3327, 3329, 3331, ! 3339, 3341, 3342, 3343, 3346, 3352, 3354, 3359, 3361, 3364, ! 3375, 3379, 3383, 3388, 3393, 3395, 3399, 3401, 3403, 3409, ! 3411, 3415, 3419, 3421, 3424, 3429, 3432, 3438, 3440, 3442, ! 3444, 3449, 3452, 3454, 3456, 3458, 3461, 3463, 3465, 3468, ! 3470, 3473, 3474, 3477, 3478, 3481, 3482, 3484, 3486, 3488, ! 3490, 3495, 3498, 3501, 3504, 3507, 3510, 3513, 3519, 3521, ! 3523, 3527, 3530, 3532, 3534, 3537, 3541, 3545, 3547, 3550, ! 3554, 3556, 3559, 3561, 3562, 3573, 3577, 3579, 3582, 3584, ! 3587, 3604, 3612, 3615, 3617, 3619, 3623, 3626, 3627, 3635, ! 3638, 3641, 3644, 3645, 3651, 3654, 3657, 3659, 3663, 3666, ! 3670, 3673, 3683, 3688, 3689, 3696, 3699, 3702, 3704, 3707, ! 3709, 3719, 3733, 3737, 3740, 3742, 3746, 3750, 3753, 3756, ! 3758, 3762, 3764, 3771, 3777, 3780, 3784, 3787, 3790, 3795, ! 3799, 3804, 3806, 3809, 3814, 3820, 3836, 3844, 3847, 3850, ! 3853, 3856, 3859, 3861, 3865, 3871, 3875, 3878, 3882, 3885, ! 3887, 3889, 3895, 3908, 3916, 3919, 3921, 3923, 3925, 3927, ! 3929, 3931, 3933, 3935, 3937, 3939, 3941, 3943, 3945, 3947, ! 3949, 3951, 3953, 3955, 3957, 3959, 3961, 3963, 3965, 3967, ! 3969, 3971, 3973, 3975, 3977, 3979, 3981, 3983, 3985, 3992 }; #endif *************** static const short yyrline[] = { 0, *** 880,886 **** #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER", ! "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT", "VAR_FUNC_NAME","STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO", "FOR","SWITCH","CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD", "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART", --- 881,887 ---- #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER", ! "tTYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT", "VAR_FUNC_NAME","STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO", "FOR","SWITCH","CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD", "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART", *************** static const char * const yytname[] = { *** 915,930 **** "direct_notype_declarator","primary","@23","new","delete","boolean.literal", "string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id", "typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs", ! "reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls", ! "nomods_initdecls","maybeasm","initdcl","@24","initdcl0_innards","@25","initdcl0", ! "notype_initdcl0","nomods_initdcl0","@26","maybe_attribute","attributes","attribute", ! "attribute_list","attrib","any_word","identifiers_or_typenames","maybe_init", ! "init","initlist","pending_inline","pending_inlines","defarg_again","pending_defargs", ! "structsp","@27","@28","@29","@30","@31","maybecomma","maybecomma_warn","aggr", ! "class_head","class_head_apparent_template","class_head_decl","class_head_defn", ! "maybe_base_class_list","base_class_list","base_class","base_class.1","base_class_access_list", ! "opt.component_decl_list","access_specifier","component_decl_list","component_decl", ! "component_decl_1","components","notype_components","component_declarator0", "component_declarator","after_type_component_declarator0","notype_component_declarator0", "after_type_component_declarator","notype_component_declarator","enumlist_opt", "enumlist","enumerator","new_type_id","cv_qualifiers","nonempty_cv_qualifiers", --- 916,931 ---- "direct_notype_declarator","primary","@23","new","delete","boolean.literal", "string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id", "typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs", ! "reserved_typespecquals","sizeof","alignof","typeof","typespec","typespecqual_reserved", ! "initdecls","notype_initdecls","nomods_initdecls","maybeasm","initdcl","@24", ! "initdcl0_innards","@25","initdcl0","notype_initdcl0","nomods_initdcl0","@26", ! "maybe_attribute","attributes","attribute","attribute_list","attrib","any_word", ! "identifiers_or_typenames","maybe_init","init","initlist","pending_inline","pending_inlines", ! "defarg_again","pending_defargs","structsp","@27","@28","@29","@30","@31","maybecomma", ! "maybecomma_warn","aggr","class_head","class_head_apparent_template","class_head_decl", ! "class_head_defn","maybe_base_class_list","base_class_list","base_class","base_class.1", ! "base_class_access_list","opt.component_decl_list","access_specifier","component_decl_list", ! "component_decl","component_decl_1","components","notype_components","component_declarator0", "component_declarator","after_type_component_declarator0","notype_component_declarator0", "after_type_component_declarator","notype_component_declarator","enumlist_opt", "enumlist","enumerator","new_type_id","cv_qualifiers","nonempty_cv_qualifiers", *************** static const short yyr1[] = { 0, *** 993,1048 **** 228, 228, 229, 229, 229, 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, 232, 232, 232, 233, 233, 233, 233, 233, 234, 234, 234, 234, 235, 235, 235, ! 235, 236, 236, 236, 236, 236, 236, 236, 237, 237, ! 237, 238, 238, 239, 239, 240, 240, 241, 241, 243, ! 242, 242, 245, 244, 244, 246, 247, 249, 248, 248, ! 250, 250, 251, 251, 252, 253, 253, 254, 254, 254, ! 254, 254, 255, 255, 255, 255, 256, 256, 257, 257, ! 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, ! 260, 260, 260, 261, 261, 262, 262, 263, 263, 263, ! 265, 264, 266, 264, 264, 264, 264, 267, 268, 269, ! 264, 264, 270, 270, 271, 271, 272, 272, 272, 272, ! 272, 272, 273, 273, 273, 273, 274, 274, 274, 275, ! 275, 275, 276, 276, 276, 276, 276, 276, 276, 277, ! 277, 277, 278, 278, 279, 279, 280, 280, 281, 281, ! 281, 281, 282, 282, 282, 282, 283, 284, 284, 285, ! 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, ! 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, ! 287, 287, 288, 288, 288, 289, 289, 290, 290, 291, ! 291, 292, 292, 292, 292, 293, 293, 294, 294, 294, ! 295, 295, 296, 296, 297, 297, 298, 298, 298, 299, ! 299, 300, 300, 300, 300, 301, 301, 301, 301, 302, ! 302, 303, 303, 303, 303, 303, 303, 304, 304, 304, ! 304, 304, 304, 305, 305, 306, 306, 306, 307, 308, ! 308, 309, 309, 309, 309, 309, 309, 310, 310, 310, ! 310, 310, 310, 311, 311, 311, 311, 311, 311, 311, ! 311, 312, 312, 313, 313, 314, 314, 315, 315, 315, ! 316, 316, 316, 317, 317, 317, 317, 317, 318, 318, ! 318, 318, 319, 319, 320, 320, 320, 320, 321, 321, ! 321, 321, 322, 322, 322, 322, 322, 322, 323, 324, ! 324, 324, 325, 325, 326, 327, 327, 327, 327, 327, ! 327, 327, 328, 328, 329, 329, 330, 330, 330, 330, ! 330, 330, 330, 330, 330, 330, 330, 331, 331, 331, ! 331, 331, 331, 331, 331, 331, 331, 332, 332, 332, ! 332, 333, 334, 334, 335, 335, 336, 338, 337, 339, ! 341, 342, 340, 343, 344, 343, 345, 345, 346, 346, ! 347, 346, 346, 348, 349, 346, 350, 351, 346, 352, ! 353, 354, 355, 346, 356, 357, 346, 358, 346, 359, ! 346, 360, 346, 346, 346, 346, 346, 346, 346, 346, ! 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, ! 346, 346, 346, 362, 363, 361, 365, 366, 364, 367, ! 367, 367, 369, 370, 368, 371, 371, 372, 372, 373, ! 373, 373, 373, 374, 374, 374, 375, 375, 376, 376, ! 376, 377, 377, 378, 378, 379, 379, 380, 380, 381, ! 381, 381, 382, 382, 382, 382, 382, 382, 382, 384, ! 383, 385, 385, 386, 386, 386, 386, 386, 387, 387, ! 388, 388, 388, 388, 388, 388, 389, 389, 390, 390, ! 391, 392, 392, 393, 394, 394, 395, 395, 396, 396, ! 396, 397, 397, 398, 398, 399, 399, 399, 399, 400, ! 401, 402, 402, 402, 402, 402, 402, 402, 402, 402, ! 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, ! 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, ! 402, 402, 402, 402, 402, 402, 403 }; static const short yyr2[] = { 0, --- 994,1049 ---- 228, 228, 229, 229, 229, 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, 232, 232, 232, 233, 233, 233, 233, 233, 234, 234, 234, 234, 235, 235, 235, ! 235, 236, 237, 238, 239, 239, 239, 239, 239, 239, ! 239, 240, 240, 240, 241, 241, 242, 242, 243, 243, ! 244, 244, 246, 245, 245, 248, 247, 247, 249, 250, ! 252, 251, 251, 253, 253, 254, 254, 255, 256, 256, ! 257, 257, 257, 257, 257, 258, 258, 258, 258, 259, ! 259, 260, 260, 261, 261, 261, 261, 261, 262, 262, ! 262, 262, 262, 263, 263, 263, 264, 264, 265, 265, ! 266, 266, 266, 268, 267, 269, 267, 267, 267, 267, ! 270, 271, 272, 267, 267, 273, 273, 274, 274, 275, ! 275, 275, 275, 275, 275, 276, 276, 276, 276, 277, ! 277, 277, 278, 278, 278, 279, 279, 279, 279, 279, ! 279, 279, 280, 280, 280, 281, 281, 282, 282, 283, ! 283, 284, 284, 284, 284, 285, 285, 285, 285, 286, ! 287, 287, 288, 288, 288, 288, 288, 288, 288, 288, ! 288, 288, 288, 289, 289, 289, 289, 289, 289, 289, ! 289, 289, 290, 290, 290, 291, 291, 291, 292, 292, ! 293, 293, 294, 294, 295, 295, 295, 295, 296, 296, ! 297, 297, 297, 298, 298, 299, 299, 300, 300, 301, ! 301, 301, 302, 302, 303, 303, 303, 303, 304, 304, ! 304, 304, 305, 305, 306, 306, 306, 306, 306, 306, ! 307, 307, 307, 307, 307, 307, 308, 308, 309, 309, ! 309, 310, 311, 311, 312, 312, 312, 312, 312, 312, ! 313, 313, 313, 313, 313, 313, 314, 314, 314, 314, ! 314, 314, 314, 314, 315, 315, 316, 316, 317, 317, ! 318, 318, 318, 319, 319, 319, 320, 320, 320, 320, ! 320, 321, 321, 321, 321, 322, 322, 323, 323, 323, ! 323, 324, 324, 324, 324, 325, 325, 325, 325, 325, ! 325, 326, 327, 327, 327, 328, 328, 329, 330, 330, ! 330, 330, 330, 330, 330, 331, 331, 332, 332, 333, ! 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, ! 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, ! 335, 335, 335, 335, 336, 337, 337, 338, 338, 339, ! 341, 340, 342, 344, 345, 343, 346, 347, 346, 348, ! 348, 349, 349, 350, 349, 349, 351, 352, 349, 353, ! 354, 349, 355, 356, 357, 358, 349, 359, 360, 349, ! 361, 349, 362, 349, 363, 349, 349, 349, 349, 349, ! 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, ! 349, 349, 349, 349, 349, 349, 365, 366, 364, 368, ! 369, 367, 370, 370, 370, 372, 373, 371, 374, 374, ! 375, 375, 376, 376, 376, 376, 377, 377, 377, 378, ! 378, 379, 379, 379, 380, 380, 381, 381, 382, 382, ! 383, 383, 384, 384, 384, 385, 385, 385, 385, 385, ! 385, 385, 387, 386, 388, 388, 389, 389, 389, 389, ! 389, 390, 390, 391, 391, 391, 391, 391, 391, 392, ! 392, 393, 393, 394, 395, 395, 396, 397, 397, 398, ! 398, 399, 399, 399, 400, 400, 401, 401, 402, 402, ! 402, 402, 403, 404, 405, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, ! 405, 405, 405, 405, 405, 405, 405, 405, 405, 406 }; static const short yyr2[] = { 0, *************** static const short yyr2[] = { 0, *** 1089,4029 **** 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 3, 1, 2, 2, ! 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, ! 1, 1, 3, 1, 3, 1, 3, 0, 4, 0, ! 6, 3, 0, 4, 1, 3, 3, 0, 4, 3, ! 0, 1, 1, 2, 6, 1, 3, 0, 1, 4, ! 6, 4, 1, 1, 1, 1, 1, 3, 0, 2, ! 1, 2, 3, 4, 1, 1, 3, 4, 3, 5, ! 3, 3, 3, 0, 3, 3, 3, 0, 2, 2, ! 0, 6, 0, 5, 2, 2, 2, 0, 0, 0, ! 11, 1, 0, 1, 0, 1, 1, 2, 2, 2, ! 2, 2, 2, 3, 4, 3, 2, 3, 4, 1, ! 2, 1, 2, 2, 2, 2, 3, 3, 2, 0, ! 2, 3, 1, 4, 1, 3, 1, 1, 2, 2, ! 3, 3, 0, 1, 3, 2, 2, 1, 2, 2, ! 2, 2, 2, 2, 2, 1, 2, 2, 3, 1, ! 2, 2, 4, 4, 2, 1, 5, 4, 1, 0, ! 1, 3, 0, 1, 3, 1, 1, 1, 1, 4, ! 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, ! 2, 1, 1, 3, 1, 3, 2, 1, 6, 0, ! 2, 1, 2, 1, 2, 3, 3, 1, 3, 1, ! 2, 3, 3, 2, 2, 3, 1, 4, 4, 3, ! 3, 2, 1, 1, 2, 1, 1, 2, 2, 1, ! 2, 3, 3, 2, 2, 3, 1, 3, 3, 2, ! 2, 3, 1, 4, 3, 4, 3, 1, 2, 2, ! 2, 2, 2, 2, 2, 1, 2, 4, 4, 2, ! 1, 1, 1, 1, 2, 4, 3, 3, 2, 2, ! 2, 2, 1, 2, 2, 2, 2, 3, 1, 2, ! 3, 4, 2, 2, 2, 2, 2, 2, 4, 2, ! 1, 2, 2, 3, 1, 3, 2, 3, 2, 2, ! 3, 1, 3, 4, 1, 2, 3, 2, 2, 1, ! 3, 2, 2, 1, 2, 3, 1, 3, 6, 4, ! 4, 3, 5, 3, 3, 3, 2, 1, 1, 2, ! 2, 2, 0, 1, 1, 2, 3, 0, 4, 1, ! 0, 0, 5, 1, 0, 3, 1, 2, 1, 2, ! 0, 4, 1, 0, 0, 5, 0, 0, 7, 0, ! 0, 0, 0, 12, 0, 0, 7, 0, 5, 0, ! 7, 0, 4, 2, 2, 2, 3, 6, 8, 10, ! 8, 12, 10, 10, 4, 3, 2, 2, 1, 1, ! 1, 1, 1, 0, 0, 5, 0, 0, 5, 1, ! 2, 0, 0, 0, 5, 1, 1, 3, 3, 2, ! 2, 2, 2, 2, 1, 2, 0, 1, 0, 1, ! 1, 0, 1, 1, 3, 4, 7, 1, 3, 0, ! 1, 1, 1, 2, 2, 2, 1, 2, 2, 0, ! 3, 1, 1, 1, 2, 2, 2, 4, 2, 2, ! 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, ! 0, 0, 1, 5, 3, 0, 3, 0, 0, 4, ! 2, 1, 1, 1, 3, 0, 3, 3, 3, 1, ! 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 4, 3, 3, 3, 3, 4, ! 3, 3, 5, 5, 4, 3, 0 }; static const short yydefact[] = { 3, ! 12, 12, 5, 0, 4, 0, 313, 671, 672, 0, ! 420, 433, 612, 0, 11, 0, 0, 0, 10, 517, ! 890, 0, 0, 0, 178, 705, 16, 314, 315, 88, ! 0, 0, 871, 0, 47, 0, 0, 13, 27, 0, 29, 8, 52, 53, 0, 18, 15, 95, 118, 92, ! 0, 673, 182, 334, 311, 335, 647, 0, 409, 0, ! 408, 424, 0, 446, 614, 463, 432, 0, 530, 532, ! 512, 540, 419, 636, 434, 637, 116, 333, 658, 634, ! 0, 674, 610, 0, 89, 0, 312, 85, 87, 86, ! 189, 0, 679, 189, 680, 189, 316, 178, 151, 152, ! 153, 154, 155, 503, 505, 0, 701, 0, 506, 0, 0, 0, 0, 152, 153, 154, 155, 25, 0, 0, ! 0, 0, 0, 0, 0, 507, 683, 0, 689, 0, 0, 0, 39, 0, 0, 33, 0, 0, 49, 0, ! 0, 189, 681, 0, 313, 614, 0, 645, 640, 0, ! 0, 0, 644, 0, 0, 0, 0, 334, 0, 325, ! 0, 0, 0, 333, 610, 30, 0, 28, 3, 48, 0, 68, 420, 0, 0, 8, 71, 67, 70, 95, ! 0, 0, 0, 432, 96, 14, 0, 461, 0, 0, ! 479, 93, 83, 682, 618, 0, 0, 610, 84, 0, ! 0, 0, 114, 0, 442, 399, 627, 400, 633, 0, ! 610, 422, 421, 82, 117, 410, 0, 444, 423, 115, ! 416, 439, 440, 411, 426, 428, 431, 441, 0, 79, ! 464, 518, 519, 520, 521, 539, 160, 159, 161, 523, ! 531, 183, 527, 522, 0, 0, 533, 534, 535, 536, ! 871, 0, 613, 425, 615, 0, 458, 313, 672, 0, ! 314, 703, 182, 664, 665, 661, 639, 675, 0, 313, ! 315, 660, 638, 659, 635, 0, 891, 891, 891, 891, ! 891, 891, 891, 0, 891, 891, 891, 891, 891, 891, ! 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, ! 891, 891, 891, 891, 891, 891, 0, 891, 816, 424, ! 817, 886, 316, 612, 338, 341, 388, 0, 0, 0, ! 0, 0, 384, 382, 355, 386, 387, 0, 0, 0, ! 0, 0, 314, 307, 0, 0, 199, 198, 0, 200, ! 201, 0, 0, 202, 0, 0, 190, 191, 0, 257, ! 0, 285, 196, 337, 225, 0, 0, 339, 340, 0, ! 193, 406, 424, 407, 666, 367, 357, 0, 0, 878, ! 0, 0, 189, 0, 515, 501, 0, 0, 0, 702, ! 700, 283, 0, 203, 260, 204, 0, 0, 0, 0, ! 0, 468, 3, 23, 31, 697, 693, 694, 696, 698, ! 695, 151, 152, 153, 0, 154, 155, 685, 686, 690, ! 687, 684, 0, 313, 323, 324, 322, 663, 662, 35, ! 34, 51, 0, 168, 0, 0, 424, 166, 17, 0, ! 0, 189, 641, 615, 643, 0, 642, 152, 153, 309, ! 310, 329, 614, 0, 651, 328, 0, 650, 0, 336, ! 314, 315, 0, 0, 0, 327, 326, 655, 0, 0, ! 12, 0, 178, 9, 9, 74, 0, 69, 0, 0, ! 75, 78, 0, 460, 462, 132, 101, 804, 99, 390, ! 100, 135, 0, 0, 133, 94, 0, 847, 224, 0, ! 223, 842, 865, 0, 406, 424, 407, 0, 841, 843, ! 872, 854, 0, 0, 657, 0, 0, 879, 614, 0, ! 625, 620, 0, 624, 0, 0, 0, 0, 0, 610, ! 461, 0, 81, 0, 610, 632, 0, 413, 414, 0, ! 80, 461, 418, 417, 412, 429, 430, 448, 447, 189, ! 537, 538, 151, 154, 524, 528, 526, 0, 541, 508, ! 427, 461, 677, 610, 102, 0, 0, 0, 0, 678, ! 610, 108, 611, 0, 646, 672, 704, 182, 926, 0, ! 922, 0, 921, 919, 901, 906, 907, 891, 913, 912, ! 898, 899, 897, 916, 905, 902, 903, 904, 908, 909, ! 895, 896, 892, 893, 894, 918, 910, 911, 900, 917, ! 891, 914, 426, 610, 610, 0, 610, 0, 891, 189, ! 0, 0, 232, 0, 234, 247, 248, 0, 0, 0, ! 0, 0, 0, 308, 231, 228, 227, 229, 0, 0, ! 0, 0, 0, 337, 0, 927, 0, 226, 187, 188, ! 331, 0, 230, 0, 0, 258, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 348, 0, 350, ! 353, 354, 392, 391, 0, 0, 0, 0, 0, 236, ! 608, 0, 244, 389, 381, 0, 0, 871, 370, 373, ! 374, 0, 0, 401, 724, 720, 0, 0, 610, 610, ! 610, 403, 727, 0, 670, 405, 0, 0, 404, 369, ! 0, 0, 364, 383, 195, 365, 385, 667, 0, 366, ! 0, 0, 186, 186, 0, 176, 0, 424, 174, 516, ! 605, 602, 0, 515, 603, 515, 0, 284, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 436, 437, 438, 474, 475, 476, 473, ! 0, 466, 469, 0, 3, 0, 688, 189, 691, 0, ! 43, 44, 0, 57, 0, 0, 0, 61, 65, 54, ! 870, 424, 57, 869, 63, 179, 164, 162, 179, 186, ! 332, 0, 649, 648, 336, 0, 652, 0, 20, 22, ! 95, 9, 9, 77, 76, 0, 137, 0, 927, 91, ! 90, 485, 0, 481, 480, 0, 619, 616, 846, 860, ! 849, 724, 720, 0, 861, 610, 864, 866, 0, 0, ! 862, 0, 863, 617, 845, 859, 848, 844, 873, 856, ! 867, 857, 850, 855, 656, 0, 670, 0, 654, 621, ! 615, 623, 622, 614, 0, 0, 0, 0, 0, 0, ! 610, 631, 0, 456, 455, 443, 630, 0, 879, 0, ! 626, 415, 445, 457, 461, 0, 525, 529, 671, 672, ! 871, 871, 673, 542, 543, 545, 871, 548, 547, 0, ! 0, 459, 879, 840, 189, 189, 676, 189, 879, 840, ! 610, 105, 610, 111, 891, 891, 915, 920, 886, 886, ! 886, 0, 925, 0, 0, 0, 0, 0, 0, 0, ! 0, 424, 0, 0, 0, 344, 0, 342, 343, 0, ! 0, 255, 192, 313, 671, 672, 314, 315, 0, 0, ! 486, 513, 0, 306, 305, 831, 830, 0, 303, 302, ! 300, 301, 299, 298, 297, 295, 296, 293, 294, 288, ! 289, 290, 291, 292, 286, 287, 0, 0, 0, 0, ! 0, 0, 0, 238, 252, 0, 0, 237, 610, 610, ! 0, 610, 607, 712, 0, 0, 0, 0, 0, 372, ! 0, 376, 0, 378, 0, 614, 723, 722, 715, 719, ! 718, 870, 0, 0, 737, 0, 0, 879, 402, 879, ! 725, 610, 840, 0, 724, 720, 0, 0, 610, 0, ! 614, 0, 0, 0, 0, 197, 0, 874, 181, 185, ! 317, 179, 172, 170, 179, 0, 504, 516, 601, 0, ! 222, 221, 220, 219, 282, 281, 0, 279, 278, 276, ! 277, 275, 274, 273, 270, 271, 272, 268, 269, 263, ! 264, 265, 266, 267, 261, 262, 468, 0, 0, 26, ! 0, 0, 692, 0, 40, 46, 45, 59, 56, 49, ! 57, 0, 50, 0, 0, 58, 523, 0, 169, 179, ! 179, 167, 180, 331, 330, 19, 21, 73, 95, 449, ! 805, 150, 156, 143, 157, 158, 0, 0, 139, 0, ! 0, 0, 0, 482, 0, 134, 614, 723, 719, 724, ! 720, 0, 614, 634, 0, 610, 725, 0, 724, 720, ! 0, 337, 0, 666, 0, 868, 0, 0, 881, 0, ! 0, 0, 0, 453, 629, 628, 452, 186, 550, 549, ! 871, 871, 871, 0, 576, 672, 0, 566, 0, 0, ! 0, 579, 0, 131, 126, 0, 182, 580, 583, 0, ! 0, 558, 0, 129, 570, 104, 0, 0, 0, 0, ! 110, 0, 879, 840, 879, 840, 924, 923, 888, 887, ! 889, 318, 356, 233, 235, 0, 362, 363, 0, 0, ! 0, 0, 343, 346, 748, 0, 0, 0, 0, 256, ! 0, 347, 349, 352, 250, 249, 240, 0, 239, 254, ! 0, 0, 709, 707, 0, 710, 0, 245, 0, 0, ! 189, 379, 0, 0, 0, 716, 615, 721, 717, 728, ! 610, 736, 734, 735, 0, 726, 879, 0, 732, 0, ! 668, 669, 724, 720, 0, 368, 877, 177, 179, 179, ! 175, 606, 604, 502, 0, 467, 465, 313, 0, 24, ! 32, 699, 60, 55, 62, 66, 64, 165, 163, 72, ! 812, 0, 141, 0, 145, 0, 147, 0, 149, 0, ! 97, 0, 483, 615, 723, 719, 724, 720, 0, 610, ! 639, 725, 0, 0, 669, 364, 365, 667, 366, 858, ! 852, 853, 851, 883, 882, 884, 0, 0, 0, 0, ! 615, 0, 0, 450, 184, 0, 552, 551, 546, 610, ! 840, 575, 0, 567, 580, 568, 461, 461, 564, 565, ! 562, 563, 610, 840, 313, 671, 0, 448, 127, 571, ! 581, 586, 587, 448, 448, 0, 0, 448, 125, 572, ! 584, 448, 0, 461, 0, 559, 560, 561, 461, 610, ! 320, 319, 321, 610, 107, 0, 113, 0, 0, 0, ! 0, 0, 0, 743, 0, 489, 0, 487, 259, 304, ! 0, 241, 242, 251, 253, 708, 706, 713, 711, 0, ! 246, 0, 0, 371, 375, 377, 879, 730, 610, 731, ! 173, 171, 280, 0, 470, 472, 813, 806, 810, 142, ! 140, 0, 0, 0, 743, 484, 723, 719, 0, 725, ! 343, 0, 880, 614, 454, 0, 544, 879, 0, 0, ! 569, 479, 479, 879, 0, 0, 0, 461, 461, 0, ! 461, 461, 0, 461, 0, 557, 509, 0, 479, 879, ! 879, 610, 610, 351, 0, 0, 0, 0, 0, 215, ! 749, 0, 744, 745, 488, 0, 0, 243, 714, 380, ! 319, 733, 879, 0, 0, 811, 144, 146, 148, 98, ! 724, 720, 0, 615, 0, 885, 451, 121, 610, 610, ! 840, 574, 578, 124, 610, 461, 461, 595, 479, 313, ! 671, 0, 582, 588, 589, 448, 448, 479, 479, 0, ! 479, 585, 498, 573, 103, 109, 879, 879, 358, 359, ! 360, 361, 477, 0, 0, 0, 739, 750, 757, 738, ! 0, 746, 490, 609, 729, 471, 0, 814, 614, 879, ! 879, 0, 879, 594, 591, 593, 0, 0, 461, 461, ! 461, 590, 592, 577, 0, 106, 112, 0, 747, 742, ! 218, 0, 216, 741, 740, 313, 671, 672, 751, 764, ! 767, 770, 775, 0, 0, 0, 0, 0, 0, 0, ! 0, 314, 799, 807, 0, 827, 803, 802, 801, 0, ! 759, 0, 0, 424, 763, 758, 800, 927, 0, 0, ! 927, 119, 122, 610, 123, 461, 461, 600, 479, 479, ! 500, 0, 499, 494, 478, 217, 820, 822, 823, 0, ! 0, 755, 0, 0, 0, 782, 784, 785, 786, 0, ! 0, 0, 0, 0, 0, 0, 821, 927, 398, 828, ! 0, 760, 396, 448, 0, 397, 0, 448, 0, 0, ! 761, 798, 797, 818, 819, 815, 879, 599, 597, 596, ! 598, 0, 0, 511, 207, 0, 752, 765, 754, 0, ! 927, 0, 0, 0, 778, 927, 787, 0, 796, 41, ! 155, 36, 155, 0, 37, 808, 0, 394, 395, 0, ! 0, 0, 393, 755, 120, 497, 496, 92, 95, 214, ! 0, 424, 0, 755, 755, 768, 0, 743, 825, 771, ! 0, 0, 0, 927, 783, 795, 42, 38, 812, 0, ! 762, 0, 495, 208, 448, 753, 766, 0, 756, 826, ! 0, 824, 776, 780, 779, 809, 832, 832, 0, 493, ! 491, 492, 461, 205, 0, 0, 211, 0, 210, 755, ! 927, 0, 0, 0, 833, 834, 0, 788, 0, 0, ! 769, 772, 777, 781, 0, 0, 0, 0, 0, 0, ! 832, 0, 212, 206, 0, 0, 0, 838, 0, 791, ! 835, 0, 0, 789, 0, 0, 836, 0, 0, 0, ! 0, 0, 0, 213, 773, 0, 839, 793, 794, 0, ! 790, 755, 0, 0, 774, 837, 792, 0, 0, 0 }; ! static const short yydefgoto[] = { 1828, ! 461, 2, 462, 171, 810, 345, 187, 3, 4, 38, ! 141, 775, 393, 39, 776, 1172, 1608, 41, 413, 1655, ! 780, 42, 43, 423, 44, 1173, 787, 1088, 788, 789, ! 790, 46, 178, 179, 47, 819, 190, 186, 479, 1435, ! 48, 49, 904, 1194, 910, 1196, 50, 1175, 1176, 191, ! 192, 820, 480, 1118, 1119, 731, 1120, 241, 51, 1101, ! 1100, 799, 796, 1270, 1269, 1045, 1042, 140, 1099, 52, ! 243, 53, 1039, 641, 346, 347, 348, 349, 633, 1766, ! 1687, 1768, 1721, 1805, 1481, 384, 1028, 350, 679, 988, ! 351, 385, 386, 353, 354, 373, 55, 265, 781, 442, ! 160, 56, 57, 355, 636, 356, 357, 358, 359, 821, ! 360, 1611, 538, 700, 361, 1178, 493, 224, 494, 362, ! 225, 507, 226, 204, 217, 63, 521, 539, 1446, 874, ! 1333, 205, 218, 64, 552, 875, 65, 66, 771, 772, ! 773, 1544, 485, 951, 952, 1719, 1684, 1633, 1575, 67, ! 736, 375, 901, 1533, 1634, 1219, 732, 68, 69, 70, ! 71, 72, 252, 894, 895, 896, 897, 1180, 1375, 1181, ! 1182, 1183, 1360, 1370, 1361, 1523, 1362, 1363, 1524, 1525, ! 733, 734, 735, 680, 1018, 364, 198, 519, 512, 207, ! 74, 75, 76, 148, 149, 163, 78, 136, 365, 366, ! 367, 80, 388, 82, 899, 127, 128, 129, 558, 109, ! 83, 389, 993, 994, 1013, 1009, 703, 1546, 1547, 1482, ! 1483, 1484, 1548, 1394, 1549, 1615, 1640, 1724, 1690, 1691, ! 1550, 1616, 1714, 1641, 1725, 1642, 1748, 1643, 1751, 1795, ! 1822, 1644, 1770, 1734, 1771, 1696, 481, 817, 1291, 1617, ! 1658, 1739, 1428, 1429, 1495, 1621, 1723, 1558, 1618, 1730, ! 1661, 958, 1774, 1775, 1776, 1799, 498, 1014, 854, 1148, ! 1323, 500, 501, 502, 850, 503, 154, 852, 1185, 92, ! 722, 859, 1326, 1327, 609, 86, 569, 87, 941 }; ! static const short yypact[] = { 328, ! 341,-32768,-32768, 3488,-32768, 234, 133, 67, 529, 17, ! 83,-32768,-32768, 1705,-32768, 124, 270, 335,-32768,-32768, ! -32768, 1478, 1390, 915, 350,-32768,-32768, 408, 678,-32768, ! 2285, 2285,-32768, 3932,-32768, 3488, 343,-32768,-32768, 446, ! -32768, 469,-32768,-32768, 2227,-32768,-32768, 418, 1135, 509, ! 475, 544,-32768,-32768,-32768,-32768, 650, 2982,-32768, 5910, ! -32768, 2501, 196,-32768, 576,-32768,-32768, 1262, 707, 871, ! -32768, 560, 8070,-32768,-32768,-32768, 1292,-32768,-32768,-32768, ! 1614,-32768,-32768, 611,-32768, 3619, 573,-32768,-32768,-32768, ! 12299, 637,-32768, 12299,-32768, 12299,-32768,-32768,-32768, 67, ! 529, 408, 591,-32768, 594, 544,-32768, 1470,-32768, 357, ! 12392, 12392, 562,-32768,-32768,-32768,-32768,-32768, 443, 616, ! 679, 774, 787, 626, 641,-32768,-32768, 2047,-32768, 1675, ! 67, 529,-32768, 408, 591,-32768, 757, 1030, 653, 6664, ! 654, 12299,-32768, 12299, 638, 5665, 2687,-32768,-32768, 1847, ! 1634, 2687,-32768, 1749, 4985, 4985, 3932, 630, 643,-32768, ! 650, 997, 649, 655,-32768,-32768, 770,-32768, 686,-32768, ! 5499,-32768,-32768, 350, 3028, 728,-32768,-32768,-32768, 418, ! 5219, 6757, 601, 743,-32768,-32768, 739, 576, 834, 165, ! 59, 779,-32768,-32768,-32768, 9925, 11344,-32768,-32768, 5849, ! 5849, 6738, 1292, 1037,-32768,-32768, 772,-32768,-32768, 2163, ! -32768,-32768,-32768,-32768,-32768, 2501, 1064,-32768, 576, 1292, ! -32768,-32768,-32768, 1971, 2501,-32768, 576,-32768, 5219,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 773, ! 878, 544,-32768, 576, 2088, 1812,-32768,-32768,-32768,-32768, ! -32768, 786,-32768, 1087, 576, 357,-32768, 913, 775, 1374, ! 932,-32768, 180,-32768,-32768,-32768,-32768,-32768, 6161,-32768, ! 591,-32768,-32768,-32768,-32768, 2482,-32768, 760, 765,-32768, ! -32768,-32768,-32768, 810,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 780,-32768,-32768, 1087, ! 8070, 1275,-32768, 788,-32768,-32768,-32768, 13509, 13602, 13695, ! 13695, 790,-32768,-32768,-32768,-32768,-32768, 807, 844, 847, ! 872, 877, 1161, 12857, 1823, 13695,-32768,-32768, 13695,-32768, ! -32768, 13695, 10223,-32768, 13695, 176, 846,-32768, 13695,-32768, ! 12950,-32768, 13764, 193, 1140, 6509, 13043,-32768, 944, 3722, ! -32768, 2845, 6234, 5296,-32768, 309,-32768, 1105, 3550, 867, ! 176, 176, 12299, 6664, 1586,-32768, 909, 1823, 932,-32768, ! -32768, 13137, 862, 918,-32768, 8947, 884, 1779, 3953, 885, ! 908, 1784, 686,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 616, 679, 774, 1823, 787, 626, 910, 641,-32768, ! 968,-32768, 3235, 909, 67, 529,-32768,-32768,-32768,-32768, ! -32768,-32768, 4576,-32768, 5219, 7127, 2506,-32768,-32768, 176, ! 612, 12299,-32768, 5665,-32768, 2967,-32768, 950, 954,-32768, ! -32768,-32768, 997, 2687,-32768,-32768, 2687,-32768, 927,-32768, ! -32768,-32768, 997, 997, 997,-32768,-32768,-32768, 6161, 90, ! 931, 934,-32768,-32768,-32768,-32768, 6664,-32768, 1095, 1123, ! -32768,-32768, 770,-32768, 576,-32768,-32768,-32768,-32768, 987, ! -32768,-32768, 10786, 13137,-32768,-32768, 952,-32768, 918, 964, ! 8947, 527, 2491, 6757, 2491, 2551, 5791, 993,-32768, 394, ! 6068, 1011, 1040, 788,-32768, 1023, 344, 94, 7400, 7134, ! -32768,-32768, 7134,-32768, 7255, 7255, 6738, 7511, 1014,-32768, ! 576, 5219,-32768, 11437,-32768,-32768, 7264, 1971, 2501, 5219, ! -32768, 576,-32768,-32768, 1971,-32768, 576, 1111,-32768, 12299, ! -32768,-32768, 909, 932, 773,-32768,-32768, 2088, 2185,-32768, ! 1087, 576,-32768,-32768,-32768, 1070, 1073, 1098, 1096,-32768, ! -32768,-32768,-32768, 5665,-32768, 896,-32768, 369,-32768, 1066, ! -32768, 1069,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 1087,-32768,-32768, 277,-32768, 664,-32768, 12299, ! 13137, 10223,-32768, 10223,-32768,-32768,-32768, 13137, 12392, 8184, ! 8184, 8184, 8184, 13764,-32768,-32768,-32768,-32768, 1067, 13230, ! 13230, 10223, 1077, 139, 1090,-32768, 1093,-32768,-32768,-32768, ! 1203, 12299,-32768, 10316, 10223,-32768, 12857, 12857, 10879, 12857, ! 12857, 12857, 12857, 12857, 12857, 12857, 12857, 12857, 12857, 12857, ! 12857, 12857, 12857, 12857, 12857, 12857, 12857,-32768, 13137,-32768, ! -32768,-32768,-32768,-32768, 13137, 13137, 13137, 12392, 6402, 531, ! 364, 11530,-32768,-32768,-32768, 1152, 1374, 1208, 380, 392, ! 396, 3365, 664,-32768, 2894, 2894, 4282, 11623, 1116, 1170, ! -32768,-32768, 777, 12017, 419,-32768, 430, 357,-32768,-32768, ! 13137, 1374,-32768,-32768, 408,-32768,-32768,-32768, 462, 573, ! 13137, 1169,-32768,-32768, 176,-32768, 5219, 2900,-32768,-32768, ! 1157,-32768, 1126, 1186,-32768, 1586, 910, 13742,-32768, 11065, ! 11158, 13137, 13137, 10879, 13137, 13137, 13137, 13137, 13137, 13137, ! 13137, 13137, 13137, 13137, 13137, 13137, 13137, 13137, 13137, 13137, ! 13137, 13137, 13137,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 62,-32768, 1155, 1147, 686, 3235, 1212, 12299,-32768, 1211, ! -32768,-32768, 1030, 1511, 1210, 1251, 505, 1229, 1232,-32768, ! -32768, 4013, 1262,-32768, 1240,-32768,-32768,-32768,-32768,-32768, ! -32768, 176,-32768,-32768, 1196, 1200,-32768, 1249,-32768,-32768, ! 418,-32768,-32768,-32768,-32768, 97,-32768, 600,-32768,-32768, ! -32768,-32768, 10111, 13742,-32768, 1209,-32768,-32768,-32768,-32768, ! -32768, 2645, 2645, 2829,-32768,-32768,-32768,-32768, 2163, 611, ! -32768, 12111,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 1040, 1258,-32768,-32768,-32768, 12485, 1170, 477,-32768,-32768, ! 7400,-32768,-32768, 7511, 7134, 7134, 7358, 7358, 7511, 430, ! -32768,-32768, 7264,-32768, 1260,-32768,-32768, 1219, 94, 7400, ! -32768, 1971,-32768,-32768, 576, 1255, 773,-32768, 679, 774, ! -32768,-32768, 641, 1274,-32768,-32768, 332,-32768,-32768, 1998, ! 3281,-32768, 94, 7790, 12299, 12299,-32768, 12299, 94, 7790, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1932, 1932, ! 1932, 799,-32768, 176, 1227, 1236, 1246, 9008, 1247, 1253, ! 1286, 6593, 1287, 1288, 1294,-32768, 1263,-32768,-32768, 1266, ! 1320,-32768,-32768, 1317, 677, 710, 447, 266, 13137, 1322, ! -32768, 1326, 1281, 13764, 13764,-32768,-32768, 1332, 5100, 5905, ! 6882, 4134, 3314, 5301, 5516, 2347, 2347, 2166, 2166, 998, ! 998, 546, 546, 546,-32768,-32768, 1295, 1298, 1291, 1310, ! 1313, 1314, 8184, 531,-32768, 10786, 13137,-32768,-32768,-32768, ! 13137,-32768,-32768, 1334, 13695, 1318, 1348, 1366, 1395,-32768, ! 13137,-32768, 13137,-32768, 13137, 2325, 3715,-32768,-32768, 3715, ! -32768, 207, 1335, 1337,-32768, 1341, 8184, 94,-32768, 94, ! 4901,-32768, 7790, 11716, 9408, 9408, 9733, 1338, 12950, 1349, ! 2039, 3130, 3953, 1339, 1350, 1073, 1354,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 13137,-32768, 1823,-32768, 1357, ! -32768, 13742,-32768, 13742, 13742, 13742, 1406, 4423, 7809, 8235, ! 8315, 5343, 5559, 5973, 2589, 2589, 2589, 2715, 2715, 2087, ! 2087, 733, 733, 733,-32768,-32768, 1784, 1362, 13323,-32768, ! 1365, 1414,-32768, 176,-32768,-32768,-32768,-32768,-32768,-32768, ! 2264, 4576,-32768, 8184, 12299,-32768, 1055, 12857,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 418,-32768, ! -32768,-32768, 616,-32768, 787, 626, 13137, 272,-32768, 479, ! 539, 550, 1418,-32768, 102,-32768, 4087, 3378, 3378, 3890, ! 3890, 2829, 5156, 188, 2163,-32768, 4482, 3399, 12205, 12205, ! 9829, 362, 1378, 421, 2120,-32768, 10786, 10412,-32768, 4197, ! 1222, 1222, 1397,-32768,-32768,-32768, 1423,-32768,-32768,-32768, ! -32768,-32768,-32768, 1554,-32768, 1002, 1009,-32768, 13137, 7526, ! 3788,-32768, 3788, 287, 287, 147, 558, 7560, 6194, 80, ! 4379,-32768, 200, 287,-32768,-32768, 1381, 176, 176, 176, ! -32768, 1385, 94, 7790, 94, 7790,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 8184,-32768,-32768, 1405, 1411, ! 1417, 1422, 1196,-32768,-32768, 8790, 10786, 10507, 1402,-32768, ! 12857,-32768,-32768,-32768,-32768,-32768, 652, 1409,-32768,-32768, ! 1415, 191, 1045, 1045, 1408, 1045, 13137,-32768, 13695, 1518, ! 12299,-32768, 1426, 1431, 1436,-32768, 2325,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 2325,-32768, 94, 1437,-32768, 1420, ! -32768,-32768, 4697, 4697, 4829,-32768,-32768,-32768,-32768,-32768, ! -32768, 13742,-32768,-32768, 13137,-32768,-32768, 204, 1439,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 13764,-32768,-32768,-32768, ! 1453, 1445,-32768, 835,-32768, 13137,-32768, 13137,-32768, 13137, ! -32768, 10600,-32768, 4087, 3378, 3378, 4943, 4943, 5618,-32768, ! 474, 4482, 4087, 1455, 976, 533, 617, 750, 359,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 208, 1916, 1916, 592, ! 592, 592, 10786,-32768,-32768, 2185,-32768,-32768,-32768,-32768, ! 7790, 13742, 243,-32768, 3442,-32768, 576, 576,-32768,-32768, ! -32768,-32768,-32768, 7790, 525, 813, 13137, 1111,-32768, 1501, ! -32768,-32768,-32768, 713, 873, 1614, 1634, 886, 287, 1504, ! -32768, 920, 1509, 576, 4758,-32768,-32768,-32768, 576,-32768, ! -32768, 1524,-32768,-32768,-32768, 1473,-32768, 1474, 1477, 13137, ! 13137, 13137, 13137, 98, 10786,-32768, 1523,-32768,-32768, 13764, ! 13137,-32768, 652,-32768,-32768,-32768,-32768,-32768,-32768, 1479, ! -32768, 1548, 176,-32768,-32768,-32768, 94,-32768,-32768,-32768, ! -32768,-32768, 13742, 13137,-32768,-32768,-32768, 1453,-32768,-32768, ! -32768, 1488, 1489, 1491, 98,-32768, 5095, 5095, 430, 6030, ! 831, 4197,-32768, 592,-32768, 10786,-32768, 94, 1492, 563, ! -32768, 1536, 1536, 94, 1495, 13137, 13137, 8701, 576, 7655, ! 576, 576, 4182, 576, 7666,-32768,-32768, 5058, 1536, 94, ! 94,-32768,-32768,-32768, 1498, 1499, 1513, 1514, 1823,-32768, ! -32768, 9638, 1573,-32768,-32768, 10786, 1517,-32768,-32768,-32768, ! -32768,-32768, 94, 1521, 1516,-32768,-32768,-32768,-32768,-32768, ! 7222, 7222, 6887, 3139, 3139,-32768,-32768,-32768,-32768,-32768, ! 7790,-32768,-32768,-32768,-32768, 8701, 8701,-32768, 1536, 692, ! 928, 13137,-32768,-32768,-32768, 1111, 1111, 1536, 1536, 896, ! 1536,-32768,-32768,-32768,-32768,-32768, 94, 94,-32768,-32768, ! -32768,-32768,-32768, 1151, 229, 9526,-32768,-32768,-32768,-32768, ! 11827,-32768,-32768,-32768,-32768,-32768, 7918,-32768, 3139, 94, ! 94, 1522, 94,-32768,-32768,-32768, 13137, 13137, 8701, 576, ! 576,-32768,-32768,-32768, 9257,-32768,-32768, 1823,-32768,-32768, ! -32768, 285,-32768,-32768,-32768, 1569, 999, 1010,-32768,-32768, ! -32768,-32768,-32768, 13137, 1570, 1580, 1588, 12578, 503, 1823, ! 1237, 809,-32768,-32768, 12671, 1640,-32768,-32768,-32768, 1589, ! -32768, 3220, 6460, 7050, 1648,-32768,-32768, 1555, 1557, 1558, ! -32768,-32768,-32768,-32768,-32768, 8701, 8701,-32768, 1536, 1536, ! -32768, 11251,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 688, ! 688, 1609, 1576, 1577, 7950,-32768,-32768,-32768,-32768, 1612, ! 13137, 1613, 1615, 1627, 2056, 2073,-32768,-32768,-32768,-32768, ! 1593,-32768,-32768, 1111, 1181,-32768, 1193, 1111, 12764, 1239, ! -32768,-32768,-32768,-32768,-32768,-32768, 94,-32768,-32768,-32768, ! -32768, 1587, 8812, 1585,-32768, 12392,-32768,-32768,-32768, 1680, ! -32768, 10018, 12392, 13137,-32768,-32768,-32768, 1637,-32768,-32768, ! 1645,-32768, 1627, 2056,-32768,-32768, 770,-32768,-32768, 13416, ! 13416, 10693,-32768, 1609,-32768,-32768,-32768, 509, 418,-32768, ! 1596, 776, 5219, 1609, 1609,-32768, 11922, 98,-32768,-32768, ! 1649, 1607, 9046,-32768,-32768,-32768,-32768,-32768, 1453, 104, ! -32768, 192,-32768,-32768, 1111,-32768,-32768, 703,-32768,-32768, ! 9155,-32768,-32768,-32768,-32768, 1453, 106, 106, 1658,-32768, ! -32768,-32768, 576,-32768, 13137, 1660,-32768, 1664,-32768, 1609, ! -32768, 1638, 1823, 336, 1667,-32768, 247,-32768, 1669, 1629, ! -32768,-32768,-32768,-32768, 13137, 1628, 770, 1677, 106, 770, ! 106, 1682,-32768,-32768, 10972, 1633, 1735, 944, 273,-32768, ! -32768, 304, 361,-32768, 10786, 1639,-32768, 1656, 770, 1693, ! 1694, 770, 1697,-32768,-32768, 13137, 944,-32768,-32768, 330, ! -32768, 1609, 1652, 1700,-32768,-32768,-32768, 1767, 1769,-32768 }; static const short yypgoto[] = {-32768, ! 1771,-32768, -332, 1598, -403, 10, -3, 1773,-32768, 1741, ! -32768,-32768,-32768, -1462,-32768, 587,-32768, -1459,-32768, 125, ! 1018, 61, -387,-32768,-32768, 92,-32768, -715,-32768,-32768, ! 694, 60, 1635, 1346, 1631,-32768, 86, -176, -800,-32768, ! 0, -36,-32768,-32768,-32768,-32768,-32768, 635,-32768,-32768, ! -32768,-32768,-32768,-32768, 524, -14,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1723, -749, 8141, ! -159, -5, -666, -192, -29, 1679, -601,-32768, 268,-32768, ! 184,-32768, -1562,-32768, -1361, 111, 741, -300,-32768, -942, ! 7969, 4024, 7158, -106, 5315, 1528, -340, -54, -69, 1497, ! -134, -68, 121,-32768,-32768,-32768, -349,-32768, -165,-32768, ! -32768, -1508, -19, -351, 7501, 11, 28, -141, 76, 219, ! -211, -1, -154, -174, -171, 15, 129, -198,-32768, -385, ! -32768,-32768,-32768,-32768,-32768, 570, 1352, 3403,-32768, 753, ! -32768,-32768, -1304, -467, 1012,-32768,-32768,-32768,-32768, 36, ! -32768,-32768,-32768,-32768,-32768,-32768, 1100, -386,-32768,-32768, ! -32768,-32768,-32768,-32768, 500, 673,-32768,-32768,-32768, 467, ! -1056,-32768,-32768,-32768,-32768,-32768,-32768, 668,-32768, 389, ! 1119,-32768, 808, 1178, 5568, 21, 1653, 1285, 1874,-32768, ! -518,-32768, 73, 763, 1841, -129, 296, -100, 5866, 1503, ! -32768, 6920, 2735, 137, -17, -107,-32768, 1736, -49,-32768, ! 6371, 4103, -213,-32768, 1272, 214,-32768,-32768, 329,-32768, ! -32768, 393, 1242,-32768, -1520,-32768,-32768,-32768, -1527,-32768, ! -1455, 153,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 143,-32768,-32768,-32768, ! -32768,-32768, 148, -1351,-32768,-32768, -52,-32768,-32768,-32768, ! -32768, -735, -1638,-32768, 99, -1311, -775, -166, 1038,-32768, ! -32768,-32768,-32768, -413,-32768, -401, -203,-32768, 123,-32768, ! -32768, 666, 451,-32768, 395,-32768, 2167, -239, -756 }; ! #define YYLAST 13851 ! static const short yytable[] = { 105, ! 37, 460, 62, 468, 529, 126, 469, 119, 1057, 794, ! 470, 705, 266, 36, 58, 825, 1111, 613, 615, 717, ! 559, 795, 412, 215, 73, 445, 448, 457, 716, 499, ! 898, 59, 37, 312, 62, 786, 793, 421, 203, 717, ! 943, 1229, 551, 62, 180, 36, 58, 549, 716, 1102, ! 646, 147, 152, 240, 175, 181, 73, 1040, 216, 183, ! 774, 811, 1123, 59, 371, 73, 372, 419, 420, 534, ! 536, 254, 59, 1500, 528, 263, 1496, 1096, 411, 60, ! 184, 266, 418, 535, 310, 546, 107, 794, 1607, 363, ! 1585, 1609, 363, 97, 363, 45, 1659, 228, 603, 851, ! 1676, 684, 563, 424, 177, 176, 311, 482, 684, 363, ! 363, 60, 430, 408, 1344, 684, 1346, 1772, 1373, 1777, ! 182, 1689, 93, 1077, 1376, 483, 85, 45, 1187, 720, ! 1732, 1479, 98, 1103, 1192, -876, 45, 1706, 427, 440, ! 363, 266, 363, 94, 705, 215, 884, 1512, 1513, 720, ! 425, 603, 1803, 484, 161, 857, 273, 858, 85, 1757, ! 73, 203, 1673, 1302, 1534, 477, 902, 59, 1758, 62, ! 465, 1078, 1349, 62, 180, 444, 447, 188, 723, 724, ! 216, 58, 380, 1729, 175, 181, 1741, 668, 1769, 183, ! 1374, 73, 1760, 1689, 496, 73, 1746, 1747, 59, 808, ! 429, 1773, 59, 1689, 1689, 257, 1110, 1350, 1480, 91, ! 184, 1351, 1303, 1759, 1566, 426, 497, 268, 111, 829, ! 510, 513, 61, 1572, 1573, -137, 1574, 624, 561, -137, ! 545, 547, 45, 669, 177, 176, -633, 800, 801, 694, ! 1735, 668, 1783, 1352, 268, 557, 60, 1258, -327, 1689, ! 182, 228, -137, 639, 61, 640, -137, 229, 230, 228, ! 228, 478, 1377, 61, 1607, 1424, 45, 1609, 830, 1442, ! 568, 831, 1293, 268, 562, 161, 161, 161, 1755, 377, ! 131, 132, -633, -633, 1402, 856, 268, 669, 478, 228, ! 690, 1580, 1268, 85, 1825, 1271, 88, -633, 95, 1121, ! 1405, 1689, 1790, 681, 309, 689, 489, 816, 457, 254, ! 1378, 1791, 782, 1425, 15, 1784, 942, 1443, -448, 96, ! 625, 143, 161, 876, 1680, 1681, 378, -1, 273, 164, ! -155, 883, -136, 1294, 1809, 379, 135, 726, 1162, 1581, ! -2, 363, 89, 725, 90, 228, 268, 1580, 532, -448, ! 1288, 1289, 1450, -448, 310, 777, 1792, 710, 61, 262, ! 8, 9, 254, 737, 112, 1809, 1750, 131, 132, 717, ! 1163, 363, 728, 534, 536, 1283, 311, 770, 383, 390, ! 534, 268, 1810, 457, 727, 445, 448, 882, 888, 61, ! 737, 1809, 694, 61, 73, 1636, 536, -448, 228, 1091, ! 1787, 59, 802, 711, 1496, 797, 845, -312, 1108, 1109, ! -334, 1376, 268, 1811, 495, 134, 135, 913, 1386, 26, ! 1388, 792, 134, 135, 216, 1812, 139, -610, 1000, 113, ! 363, -610, 377, 8, 9, 313, 989, 167, 856, 1824, ! 1002, 273, 1081, 497, 1004, 1788, 990, 559, 536, 426, ! 164, 164, 164, -312, -312, 846, -334, -334, 847, 991, ! 1488, 273, 228, 914, 506, 62, 813, 1019, -312, -658, ! 1813, -327, 559, 835, 1001, 841, 843, 181, 1802, 378, ! -610, 183, -610, -610, 142, -610, 1003, 73, 379, 135, ! 1005, 1335, 216, 1286, 59, 254, -610, 164, -610, 792, ! 1820, 323, 184, 394, 268, 99, 114, 115, 168, 395, ! 886, -154, 262, -610, -610, -658, -658, 26, 1230, 1421, ! 1422, 497, -632, 142, 268, 1149, 185, 1295, -610, 169, ! -658, 228, 1041, 887, 189, 865, 866, 193, 363, 829, ! 954, 955, 182, 959, 960, 961, 962, 963, 964, 965, ! 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, ! 976, 116, 117, 228, 228, 1449, 1092, 170, -632, -632, ! 228, 1150, 268, 1296, 309, 702, 706, 709, 1455, 985, ! 924, -313, 1093, -632, 95, 1651, 228, 1297, 830, 1456, ! 40, 831, 61, -870, 489, 8, 9, 986, 1299, 194, ! 1112, 432, 1113, 889, 890, 96, 1353, 18, 363, 1104, ! 363, 1510, 363, 270, 8, 9, 10, 363, 932, 932, ! 932, 932, 40, 18, 251, 987, 681, -313, -313, 950, ! 363, 666, 667, 1298, 1107, 161, 161, 161, 228, 370, ! 363, 495, -313, 363, 1300, 898, 143, 26, 1114, 313, ! 134, 135, 1354, 21, 376, 26, 392, 1511, 1115, 1116, ! -138, -138, 229, 471, 1328, -311, 885, 131, 132, 28, ! 271, 396, 998, 642, 1329, 782, 363, 310, 794, 1320, ! 1322, 400, 1087, 717, 268, 61, 1330, 1159, 1160, 639, ! 795, 640, 716, 1164, 1117, 792, 401, 1036, 195, 311, ! 985, 33, 496, 174, 786, 793, 837, 1043, 702, 706, ! 709, -311, -311, 1086, 432, 1007, 1010, 497, 986, 495, ! 603, 489, 134, 135, 497, 1551, -311, 534, 646, 457, ! 422, 1202, 93, 143, 397, 1562, 1685, 499, -399, -327, ! 15, -152, 268, 499, 196, 197, 987, 1401, 1084, 1396, ! 1398, 1764, 450, 94, 144, 94, 1567, 474, 458, 414, ! 415, 416, 10, 228, -653, 95, 126, 247, 432, 1089, ! 266, 248, 843, -399, -153, 1121, 363, -399, 1097, 489, ! 273, 317, 1686, 222, 223, 489, 96, 489, 489, 1551, ! 14, 878, 412, 720, 153, 717, -7, 1765, -659, 21, ! 1122, 377, 131, 132, 1317, 472, 260, 18, 950, -399, ! 164, 164, 164, 20, 489, 261, 271, 898, 762, 763, ! 195, 489, 23, 554, 694, 1022, 170, 228, 268, 398, ! 95, 489, 792, 473, 1398, 1112, 476, 1113, 889, 890, ! 496, 486, 399, 268, -659, -659, 550, 33, 378, 540, ! 96, 96, 1128, 1129, 497, 570, 499, 379, 135, -659, ! 572, 1551, 497, 142, 1174, 1445, 196, 524, 93, 555, ! 856, 1023, 1024, 1657, 578, 1188, 1189, 1457, 1190, -336, ! 857, 567, 611, 1114, 618, 142, 929, 1151, 1152, 94, ! 26, 1282, 601, 1115, 1116, 1177, 457, 309, -400, 62, ! 15, 619, 792, 363, 363, 1319, 363, 642, 792, 435, ! 1171, -130, 273, 15, 437, 495, 957, 228, 131, 132, ! 620, 73, 495, 621, 497, -336, -336, 1485, 59, 1117, ! 497, 249, 1290, -400, 1727, 250, 490, -400, 541, 1551, ! -330, 1761, 542, 979, 911, -128, -130, 15, 622, 996, ! -130, 95, 489, 623, 161, 684, 1731, 1336, 1337, 1338, ! 133, 721, 161, 153, 553, 1016, 489, 228, 553, -400, ! 26, 739, 96, 134, 135, 268, 1179, 1551, 1507, 740, ! -128, 932, -130, 93, -128, 1232, 778, 560, -336, 432, ! 912, 1287, 1568, 764, 765, 1381, 1382, 1383, 457, 270, ! 445, 448, 10, -336, 94, 706, 268, -336, 142, 445, ! 448, 957, 131, 132, 1551, 932, -128, 766, 1553, 1406, ! 1407, 792, 1409, 779, -336, 496, 94, 499, 18, 499, ! 96, 565, 270, 415, 416, 10, 805, -336, -336, 21, ! -336, -6, -336, 497, 809, 1007, 1010, 497, 131, 132, ! 1340, 818, 495, 563, 93, 451, 452, 95, 268, 1806, ! 495, 827, 770, 1638, 26, 95, 266, 134, 135, 453, ! -336, -336, 21, 828, 1639, 94, 1089, -869, 96, 454, ! 663, 664, 665, 666, 667, -336, 96, 33, 28, 271, ! 792, 455, 932, 363, 222, 223, 1341, 489, 522, 523, ! 26, 14, 844, 134, 135, 273, 853, 414, 8, 9, ! 10, 489, 497, 489, 1400, 489, -56, 989, 18, 61, ! 33, -56, 495, 872, 20, 530, 531, 990, 495, 164, ! 792, 540, -56, 23, 1174, 855, 1174, 164, 15, 496, ! 991, 1358, 1368, 794, 1174, 706, 905, 21, 932, 906, ! 1305, 1306, 497, 907, 712, 1620, 522, 814, 1359, 1305, ! 1306, 497, 15, 261, 271, 1177, -448, 1177, 268, 62, ! 268, 62, 908, 1177, 499, 1177, 936, 216, 915, 62, ! 1171, 916, 1171, 1345, 530, 815, 938, 499, 670, 489, ! 1171, 73, 792, 73, 792, 33, -448, -448, 59, 939, ! 59, 73, 942, 1397, 932, -875, 803, 997, 59, 804, ! 1017, 1413, 1578, 1579, 497, 999, 497, 273, 1019, 1246, ! 1491, 807, -194, 1046, 826, 8, 9, 489, 671, 672, ! 253, 1038, 673, 674, 675, 676, 1047, 142, -194, 363, ! -194, 495, 522, 1708, 1246, 495, 1179, 1048, 1179, 1079, ! 161, 161, 161, 18, 530, 1709, 1179, 1080, 1235, 161, ! 161, 161, 857, 792, 99, 100, 101, 1083, 232, 233, ! 234, 268, 435, 1085, 268, 437, 1122, 26, 131, 132, ! 134, 135, 133, 1007, 1010, 497, 1090, 1397, 20, 565, ! 161, 1260, 26, 18, 1328, 1094, 1654, 266, 1095, 235, ! 522, 1713, 1347, 1348, 1329, -330, 1098, 792, 1358, 1105, ! 495, 1106, 1379, 1199, 1200, 1201, 1330, 26, 1126, 15, ! 102, 103, 236, -448, 1147, 1359, 1154, 1437, 1438, 497, ! 26, 1155, 1158, 134, 135, 1161, 1203, 1814, 1174, 792, ! 1246, 377, 8, 9, 499, 1204, 1246, 604, 1151, 1152, ! 495, 925, 792, -448, -448, 1205, 1207, 605, -448, 495, ! 263, 497, 1208, 1209, 1210, 1211, 237, 238, 239, 1177, ! 857, 1212, 1213, 62, 497, 1214, 99, 114, 115, 556, ! 1215, -151, 146, 146, 1171, 162, 1217, 1218, 378, 61, ! 1220, 61, 120, 121, 122, 73, 1221, 379, 135, 61, ! 8, 9, 59, 1224, 1222, 563, 489, 1223, 489, 977, ! 489, 219, 495, 227, 495, 978, 21, 980, 981, 244, ! 1225, 567, 1226, 1227, 255, 164, 164, 164, 18, 1237, ! 1239, 1174, 116, 117, 164, 164, 164, 1665, 1240, 1670, ! 932, 1667, 1241, 1242, 1250, 26, 1251, 1261, 123, 124, ! 1179, 1035, 26, 1252, 1157, 134, 135, 568, 1262, 1266, ! 1246, 1037, 1177, 1267, 1543, 164, 62, 1274, 1246, 1328, ! 1275, 1277, 377, 8, 9, 1280, 1281, 1171, 1301, 1329, ! 99, 114, 115, 495, 511, 514, 1459, 1315, 73, 1334, ! 1380, 1330, 1461, 1462, 1384, 59, 1459, 1464, 434, 1390, ! 1462, 792, 268, 434, 1410, 1391, 443, 443, 162, 792, ! 603, 1392, 1399, 402, 403, 404, 1393, 1246, 1403, 378, ! 1408, 1437, 1438, 497, 1404, 1412, 1246, 495, 379, 135, ! 159, 497, 1420, 219, 489, 1414, 116, 117, 118, 475, ! 1415, 1740, 1743, 1179, 1156, 1416, 1419, 1606, 1426, 1614, ! 1427, 509, 509, 518, 1430, 792, 120, 889, 890, 495, ! 1605, 1612, 1460, 1635, 1441, 1465, 26, 227, 1186, 406, ! 407, 73, 495, 1466, 1191, 268, 537, 497, 59, -699, ! 445, 448, 1472, 1473, 1652, 1653, 1474, 1486, 99, 114, ! 115, 1489, 1664, 61, 1664, 153, 1490, 1497, 1498, 268, ! 1499, 1509, 483, 1614, 1515, 227, 1479, 1539, 1540, 26, ! 1557, 216, 123, 124, 1605, 1612, 258, 8, 259, 10, ! 564, 1798, 1541, 1542, 1798, 73, 1613, 803, 804, 1554, ! 1556, 1624, 59, 1637, 1646, 807, 270, 131, 132, 10, ! 1702, 1705, 1647, 1817, 116, 117, 1798, 730, 1660, 228, ! 1648, 1662, 446, 449, 1570, 1571, 21, 1475, 1476, 1477, ! 1478, 227, 255, 260, 1671, 1672, 1674, 1675, 1487, -927, ! 1692, 1693, 261, 29, 1697, 1699, 21, 120, 121, 122, ! 1613, 395, 1700, 1253, 1722, 1254, 61, 1707, 1718, 1738, ! 1614, 1722, 28, 271, 443, 1716, 262, 1726, 159, 1736, ! 1737, 1605, 1612, 1745, 33, 1744, 311, 99, 100, 101, ! 363, 1752, 73, 311, 227, 255, 1753, 1246, 1246, 59, ! 1778, 495, 1781, 1606, 33, 1614, 1782, 1231, 1789, 495, ! 865, 866, 1785, 123, 124, 1793, 1605, 1612, 1794, 1800, ! 1797, 1243, 1807, 1244, 1804, 1245, 1808, 73, 1815, 1722, ! 1816, 99, 438, 439, 59, 1818, 1819, 228, 1786, 1821, ! 26, 1826, 1827, 102, 103, 104, 1829, 1613, 1830, 61, ! 1, 311, 1246, 467, 5, 495, 166, 219, 227, 489, ! 1704, 414, 8, 9, 10, 1284, 99, 114, 115, 161, ! 767, 768, 769, 1082, 862, 434, 532, 863, 434, 511, ! 514, 464, 1613, 1742, 162, 162, 162, 102, 117, 466, ! 564, 881, 812, 1369, 99, 100, 101, 1431, 1610, 1279, ! 374, 21, 431, 61, 1688, 99, 114, 115, 260, 1276, ! 161, 161, 161, 1049, 1125, 1447, 1339, 261, 271, 635, ! 610, 1468, 116, 117, 77, 219, 1371, 227, 255, 258, ! 131, 132, 10, 1532, 1050, 1273, 984, 1292, 1385, 525, ! 1387, 861, 691, 410, 861, 1650, 864, 864, 518, 33, ! 102, 103, 475, 1763, 1584, 1552, 77, 940, 880, 1749, ! 537, 116, 117, 475, 1762, 77, 1756, 1801, 1146, 21, ! 435, 437, 1506, 0, 0, 0, 260, 0, 208, 565, ! 220, 0, 537, 475, 309, 261, 29, 0, 0, 0, ! 61, 309, 0, 0, 0, 0, 1452, 1453, 1698, 8, ! 9, 0, 1418, 0, 13, 0, 0, 0, 0, 262, ! 0, 206, 0, 0, 0, 131, 132, 33, 0, 0, ! 563, 0, 0, 1467, 0, 61, 0, 18, 1469, 0, ! 446, 806, 0, 1720, 537, 0, 0, 0, 0, 957, ! 1720, 0, 0, 443, 164, 443, 1008, 1011, 0, 309, ! 0, 26, 0, 0, 134, 135, 0, 533, 222, 223, ! 428, 162, 162, 443, 0, 14, 433, 26, 1328, 0, ! 134, 135, 0, 0, 1610, 0, 443, 0, 1329, 0, ! 120, 889, 890, 0, 604, 164, 164, 164, 20, 0, ! 1330, 77, 446, 449, 605, 77, 0, 23, 1720, 0, ! 0, 208, 220, 0, 0, 0, 0, 1518, 1519, 0, ! 1528, 1529, 1780, 1531, 0, 0, 1432, 0, 1433, 0, ! 1434, 270, 131, 132, 10, 0, 1006, 1006, 1006, 402, ! 403, 404, 1796, 0, 206, 1031, 123, 124, 99, 114, ! 115, 0, 957, 0, 0, 0, 0, 803, 804, 208, ! 18, 0, 0, 0, 807, 99, 114, 115, 0, 227, ! 0, 21, 1492, 1823, 0, 1564, 1565, 694, 0, 0, ! 543, 100, 101, 0, 26, 0, 405, 28, 271, 0, ! 0, 0, 206, 1008, 1011, 406, 407, 0, 635, 0, ! 635, 1263, 0, 1508, 116, 1701, 511, 514, 0, 1514, ! 0, 1264, 1316, 8, 9, 10, 0, 446, 937, 33, ! 0, 116, 1703, 1265, 698, 1535, 1536, 378, 1628, 1629, ! 1630, 635, 0, 227, 244, 0, 544, 103, 0, 862, ! 863, 511, 514, 0, 0, 0, 0, 881, 1555, 323, ! 714, 0, 21, 0, 1494, 258, 8, 9, 10, 759, ! 760, 761, 762, 763, 0, 26, 0, 0, 28, 271, ! 0, 0, 0, 1127, 1127, 1133, 0, 120, 889, 890, ! 0, 891, 0, 1133, 0, 1678, 1679, 0, 0, 0, ! 1030, 0, 1576, 1577, 0, 21, 0, 162, 0, 0, ! 33, 0, 260, 0, 729, 0, 861, 861, 864, 864, ! 518, 261, 29, 892, 880, 1622, 1623, 172, 1625, 145, ! 8, 9, 10, 173, 12, 13, 475, 0, 0, 0, ! 26, 14, 0, 123, 124, 262, 661, 662, 663, 664, ! 665, 666, 667, 33, 0, 16, 0, 17, 18, 19, ! 0, 0, 0, 0, 20, 208, 99, 114, 115, 21, ! 232, 233, 234, 23, 433, 0, 174, 0, 1248, 0, ! 0, 1249, 26, 227, 0, 28, 29, 145, 131, 132, ! 10, 0, 1256, 13, 0, 18, 1008, 1011, 206, 31, ! 0, 235, 0, 0, 0, 0, 0, 77, 0, 32, ! 0, 0, 0, 0, 0, 0, 18, 33, 0, 0, ! 0, 34, 116, 117, 0, 35, 0, 21, 131, 132, ! 159, 0, 1779, 208, 838, 208, 208, 0, 1143, 0, ! 26, 849, 1715, 28, 29, 0, 0, 0, 0, 433, ! 0, 0, 1030, 0, 0, 0, 18, 31, 1247, 0, ! 0, 1247, 208, 0, 446, 806, 206, 32, 206, 206, ! 208, 0, 1255, 694, 0, 33, 1031, 1031, 1031, 34, ! 26, 0, 860, 134, 135, 0, 0, 0, 0, 0, ! 0, 860, 0, 0, 0, 206, 0, 695, 0, 1248, ! 1249, 1008, 1011, 206, 433, 0, 0, 696, 1256, 0, ! 1008, 1011, 862, 863, 511, 514, 0, 0, 0, 697, ! 698, 881, 0, 511, 514, 659, 660, 661, 662, 663, ! 664, 665, 666, 667, 0, 862, 863, 881, 0, 0, ! 0, 0, 244, 0, 571, 573, 574, 575, 576, 577, ! 0, 579, 580, 581, 582, 583, 584, 585, 586, 587, ! 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, ! 598, 599, 600, 0, 602, 0, 0, 0, 0, 1304, ! 1304, 1133, 1133, 1133, 414, 8, 566, 10, 1313, 0, ! 1133, 1133, 1133, 145, 8, 9, 10, 0, 0, 0, ! 0, 0, 1331, 1331, 1332, 0, 0, 221, 222, 223, ! 0, 0, 221, 222, 223, 14, 0, 0, 0, 0, ! 14, 162, 446, 937, 21, 0, 0, 0, 0, 0, ! 219, 260, 18, 21, 1008, 1011, 0, 18, 20, 694, ! 261, 271, 0, 20, 0, 0, 26, 23, 0, 28, ! 29, 0, 23, 145, 8, 9, 10, 221, 222, 223, ! 0, 0, 0, 832, 567, 14, 0, 208, 798, 0, ! 0, 0, 33, 833, 0, 0, 1248, 1249, 1008, 1011, ! 0, 33, 18, 1256, 0, 834, 698, 0, 20, 862, ! 863, 511, 514, 21, 0, 0, 881, 23, 0, 694, ! 206, 0, 0, 0, 0, 0, 26, 0, 0, 28, ! 29, 0, 511, 514, 1031, 1031, 1031, 0, 0, 0, ! 0, 0, 0, 832, 0, 0, 0, 446, 449, 0, ! 0, 0, 208, 833, 0, 0, 446, 1314, 0, 0, ! 0, 33, 0, 0, 0, 842, 698, 145, 8, 9, ! 10, 0, 0, 13, 0, 0, 1304, 1304, 1133, 1133, ! 1133, 0, 0, 1313, 0, 206, 159, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 18, 0, 0, 1444, ! 1444, 1332, 0, 0, 0, 0, 0, 21, 0, 145, ! 131, 132, 10, 694, 0, 253, 0, 0, 475, 475, ! 26, 433, 0, 28, 29, 0, 0, 0, 1248, 1249, ! 0, 1256, 0, 0, 0, 0, 0, 832, 18, 0, ! 433, 862, 863, 0, 881, 475, 0, 833, 0, 21, ! 475, 0, 0, 0, 860, 33, 0, 860, 81, 834, ! 698, 1184, 26, 0, 917, 28, 29, 0, 108, 0, ! 0, 0, 0, 860, 0, 0, 0, 0, 137, 31, ! 446, 806, 0, 0, 0, 150, 150, 918, 150, 32, ! 81, 0, 1008, 1011, 0, 923, 0, 33, 0, 81, ! 0, 34, 0, 0, 0, 511, 514, 0, 1504, 1504, ! 0, 1505, 210, 0, 81, 757, 758, 759, 760, 761, ! 762, 763, 245, 0, 446, 806, 0, 108, 0, 475, ! 475, 0, 475, 475, 0, 475, 0, 0, 276, 0, ! 108, 0, 0, 0, 0, 368, 0, 0, 368, 0, ! 368, 145, 8, 9, 10, 173, 12, 13, 0, 0, ! 0, 488, 0, 14, 108, 0, 0, 0, 131, 132, ! 0, 0, 1559, 1559, 1559, 0, 0, 16, 0, 17, ! 18, 0, 0, 0, 0, 0, 20, 475, 475, 0, ! 0, 21, 137, 0, 81, 23, 368, 694, 368, 0, ! 150, 150, 0, 0, 26, 436, 150, 28, 29, 150, ! 150, 150, 0, 694, 0, 0, 0, 131, 132, 0, ! 26, 1130, 13, 134, 135, 81, 221, 222, 223, 81, ! 0, 1131, 0, 0, 14, 210, 81, 695, 0, 33, ! 475, 475, 475, 1132, 698, 18, 0, 696, 0, 0, ! 0, 18, 0, 0, 210, 210, 210, 20, 0, 697, ! 698, 0, 694, 0, 0, 0, 23, 0, 0, 26, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, ! 0, 0, 1044, 210, 219, 227, 695, 433, 0, 414, ! 131, 132, 10, 0, 0, 0, 696, 475, 475, 0, ! 548, 0, 0, 0, 145, 8, 9, 10, 697, 698, ! 108, 0, 0, 0, 511, 514, 0, 0, 0, 0, ! 860, 0, 0, 150, 0, 0, 860, 0, 0, 21, ! 0, 1184, 0, 1184, 0, 0, 260, 0, 1365, 1372, ! 518, 1184, 0, 0, 21, 261, 271, 0, 0, 0, ! 145, 8, 9, 10, 173, 12, 13, 26, 0, 0, ! 28, 29, 14, 0, 199, 108, 606, 0, 0, 567, ! 0, 1364, 0, 0, 200, 0, 16, 33, 17, 18, ! 19, 864, 864, 864, 201, 20, 0, 0, 0, 0, ! 21, 0, 33, 227, 23, 0, 202, 174, 0, 0, ! 0, 1197, 1198, 26, 0, 0, 28, 29, 0, 0, ! 108, 0, 0, 0, 692, 0, 606, 606, 707, 0, ! 31, 0, 0, 0, 0, 0, 0, 368, 81, 0, ! 32, 0, 0, 0, 475, 0, 0, 0, 33, 0, ! 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, ! 0, 0, 414, 8, 9, 10, 0, 0, 0, 0, ! 0, 0, 8, 9, 433, 0, 0, 137, 0, 0, ! 0, 0, 0, 433, 0, 0, 0, 108, 0, 210, ! 108, 0, 0, 0, 0, 1143, 368, 0, 150, 0, ! 18, 0, 21, 0, 0, 0, 0, 860, 150, 260, ! 0, 150, 0, 0, 0, 1365, 860, 694, 261, 271, ! 0, 0, 0, 150, 26, 0, 0, 134, 135, 0, ! 0, 81, 0, 0, 860, 860, 0, 446, 1314, 0, ! 0, 1501, 262, 0, 0, 1184, 0, 0, 1364, 0, ! 33, 1502, 145, 8, 9, 10, 0, 210, 839, 210, ! 210, 707, 0, 1503, 698, 839, 0, 270, 415, 416, ! 10, 0, 0, 210, 210, 0, 0, 210, 0, 210, ! 210, 210, 870, 0, 0, 0, 210, 0, 0, 0, ! 0, 210, 21, 0, 210, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 368, 26, 0, 21, 28, 29, ! 0, 1165, 1663, 7, 8, 1166, 10, 173, 12, 13, ! 26, 0, 200, 28, 271, 14, 0, 0, 150, 0, ! 1527, 0, 201, 0, 0, 1527, 0, 0, 1184, 16, ! 33, 17, 18, 19, 202, 0, 0, 860, 20, -553, ! 0, 0, 0, 21, 0, 33, 0, 23, 1167, 0, ! 174, 0, 0, 1526, 0, 0, 26, 0, 0, 28, ! 29, 0, 922, 1168, 368, 1169, 0, 0, 0, 0, ! 0, 0, 0, 31, 108, 108, 108, 108, 0, 0, ! 0, 0, 0, 32, 0, 0, 0, 414, 131, 132, ! 10, 33, 0, 0, 0, 1170, 368, 860, 860, 0, ! 145, 8, 9, 10, 0, 0, 253, 655, 656, 657, ! 658, -553, 659, 660, 661, 662, 663, 664, 665, 666, ! 667, 414, 8, 9, 10, 0, 0, 21, 0, 18, ! 0, 0, 0, 108, 260, 606, 0, 0, 0, 0, ! 21, 0, 0, 261, 271, 0, 694, 692, 0, 606, ! 606, 707, 860, 26, 0, 0, 28, 29, 1032, 0, ! 0, 21, 1034, 0, 1355, 1356, 9, 10, 260, 0, ! 832, 0, 208, 1668, 208, 33, 0, 261, 271, 0, ! 833, 210, 0, 0, 0, 0, 0, 231, 33, 0, ! 0, 0, 834, 698, 0, 0, 0, 0, 0, 0, ! 0, 567, 0, 0, 21, 206, 0, 206, 6, 33, ! 7, 8, 9, 10, 11, 12, 13, 26, 0, 0, ! 28, 29, 14, 0, 1451, 0, 1357, 0, 0, 0, ! 137, 0, 368, 0, 200, 15, 16, 137, 17, 18, ! 19, 0, 0, 0, 201, 20, 210, 245, 0, 0, ! 21, 0, 33, 22, 23, 24, 202, 25, 0, 0, ! 0, 0, 0, 26, 27, 0, 28, 29, 231, 0, ! 30, 0, 713, 8, 9, 10, 0, 0, 0, 0, ! 31, 0, 0, 208, 231, 0, 210, 210, 1135, 0, ! 32, 0, 0, 0, 1138, 0, 1135, 0, 33, 0, ! 0, 0, 34, 0, 0, 0, 35, 0, 0, 323, ! 714, 0, 21, 0, 0, 210, 206, 0, 870, 210, ! 210, 870, 870, 870, 0, 26, 0, 210, 715, 135, ! 0, 0, 0, 0, 210, 0, 0, 0, 0, 277, ! 0, 231, 8, 9, 0, 0, 12, 13, 0, 231, ! 0, 0, 0, 14, 0, 81, 0, 0, 108, 368, ! 368, 0, 368, 0, 108, 0, 231, 16, 0, 17, ! 18, 0, 0, 606, 606, 606, 20, 231, 278, 279, ! 0, 0, 0, 0, 0, 23, 606, 280, 0, 0, ! 0, 0, 0, 0, 26, 0, 0, 134, 135, 0, ! 281, 0, 0, 0, 282, 283, 284, 285, 286, 287, ! 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, ! 298, 299, 300, 301, 302, 0, 0, 303, 304, 305, ! 0, 306, 0, 0, 307, 0, 0, 108, 131, 132, ! 0, 0, 685, 253, 270, 415, 416, 10, 0, 686, ! 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 606, 606, 0, 0, 606, 0, 18, 0, 0, 0, ! 0, 108, 0, 0, 0, 606, 0, 108, 0, 1032, ! 1032, 1032, 0, 694, 21, 606, 0, 1138, 0, 0, ! 26, 687, 0, 134, 135, 0, 0, 26, 0, 0, ! 28, 271, 0, 0, 0, 0, 0, 695, 1165, 0, ! 7, 8, 1166, 10, 173, 12, 13, 696, 0, 0, ! 0, 0, 14, 0, 0, 0, 0, 0, 0, 697, ! 698, 0, 688, 0, 0, 0, 16, 0, 17, 18, ! 19, 0, 0, 0, 0, 20, 108, 0, 108, 368, ! 21, 0, 0, 0, 23, 1167, 231, 174, 0, 0, ! 0, 0, 0, 26, 0, 231, 28, 29, 0, 0, ! 1168, 0, 1169, 0, 0, 0, 0, 0, 0, 0, ! 31, 210, 210, 210, 210, 210, 1135, 870, 0, 0, ! 32, 210, 0, 1135, 1135, 1135, 0, 231, 33, 1138, ! 0, 0, 1170, 0, 108, 870, 870, 870, 0, 0, ! 0, 0, 145, 8, 9, 10, 0, 0, 13, 0, ! 0, 137, 0, 0, 150, 81, 0, 81, 0, 0, ! 0, 231, 1366, 81, 0, 81, 0, 0, 0, 0, ! 231, 18, 0, 0, 0, 0, 0, 0, 108, 0, ! 108, 0, 21, 0, 145, 131, 132, 10, 694, 231, ! 108, 0, 0, 0, 0, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 713, 8, 9, 10, 0, ! 0, 0, 1130, 18, 0, 0, 231, 606, 606, 0, ! 606, 0, 1131, 0, 21, 368, 0, 0, 0, 0, ! 33, 606, 0, 0, 1132, 698, 0, 26, 0, 606, ! 28, 29, 323, 714, 0, 21, 0, 606, 606, 707, ! 0, 0, 0, 0, 155, 0, 0, 0, 26, 0, ! 0, 134, 135, 0, 156, 145, 8, 9, 10, 221, ! 222, 223, 33, 0, 0, 0, 157, 14, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 210, 210, ! 210, 870, 870, 1439, 18, 0, 210, 210, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 0, 23, ! 0, 694, 870, 870, 870, 870, 870, 0, 26, 0, ! 0, 28, 29, 0, 0, 108, 0, 0, 0, 1366, ! 0, 0, 0, 0, 0, 832, 0, 0, 108, 145, ! 8, 9, 10, 0, 0, 833, 0, 0, 0, 0, ! 0, 1463, 0, 33, 0, 0, 84, 834, 698, 81, ! 0, 0, 0, 0, 352, 0, 110, 352, 18, 352, ! 0, 0, 0, 0, 0, 130, 138, 0, 0, 21, ! 0, 0, 0, 151, 151, 694, 151, 0, 84, 0, ! 0, 0, 26, 0, 0, 28, 29, 84, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 832, ! 151, 0, 84, 0, 0, 352, 0, 352, 0, 833, ! 246, 870, 870, 0, 870, 256, 108, 33, 870, 0, ! 0, 834, 698, 0, 414, 131, 1530, 10, 256, 0, ! 0, 0, 0, 369, 210, 0, 369, 1324, 369, 150, ! 8, 9, 81, 0, 12, 13, 654, 655, 656, 657, ! 658, 14, 659, 660, 661, 662, 663, 664, 665, 666, ! 667, 0, 0, 0, 21, 16, 0, 17, 18, 0, ! 0, 260, 0, 0, 20, 870, 870, 1439, 870, 870, ! 261, 271, 84, 23, 369, 108, 369, 0, 151, 151, ! 0, 0, 26, 0, 151, 134, 135, 151, 151, 151, ! 0, 0, 0, 231, 567, 0, 231, 0, 0, 0, ! 0, 0, 33, 84, 0, 0, 0, 84, 0, 0, ! 0, 0, 231, 151, 84, 8, 9, 0, 173, 12, ! 13, 108, 0, 870, 488, 0, 14, 0, 0, 0, ! 0, 0, 151, 151, 151, 0, 0, 0, 0, 0, ! 16, 0, 17, 18, 0, 0, 0, 0, 0, 20, ! 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, ! 694, 151, 0, 0, 0, 0, 0, 26, 0, 0, ! 134, 135, 0, 616, 617, 0, 210, 839, 210, 0, ! 0, 0, 0, 0, 695, 0, 0, 352, 0, 626, ! 0, 0, 627, 0, 696, 628, 0, 0, 638, 0, ! 0, 151, 643, 0, 0, 0, 697, 698, 0, 1165, ! 683, 7, 8, 1166, 10, 173, 12, 13, 0, 0, ! 0, 0, 0, 14, 0, 0, 352, 0, 0, 0, ! 0, 0, 0, 1135, 0, 0, 0, 16, 231, 17, ! 18, 19, 0, 256, 608, 0, 20, -554, 0, 0, ! 0, 21, 0, 0, 0, 23, 1167, 0, 174, 0, ! 0, 0, 0, 231, 26, 0, 0, 28, 29, 0, ! 0, 1168, 0, 1169, 1135, 1135, 1135, 0, 0, 0, ! 0, 31, 0, 0, 0, 352, 0, 210, 256, 0, ! 0, 32, 693, 0, 608, 608, 708, 0, 0, 33, ! 0, 719, 0, 1170, 0, 369, 84, 0, 0, 0, ! 0, 0, 0, 0, 145, 8, 9, 10, 0, -554, ! 563, 719, 746, 747, 748, 749, 750, 751, 752, 753, ! 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 0, 0, 0, 18, 0, 783, 0, 0, 0, 0, ! 0, 0, 0, 0, 21, 256, 0, 151, 256, 231, ! 694, 0, 0, 0, 369, 231, 151, 26, 0, 0, ! 28, 29, 0, 0, 0, 0, 151, 0, 0, 151, ! 0, 0, 0, 0, 832, 0, 0, 0, 0, 0, ! 0, 151, 0, 352, 833, 0, 0, 0, 0, 84, ! 0, 0, 33, 0, 0, 0, 834, 698, 0, 8, ! 9, 0, 173, 12, 13, 0, 0, 0, 0, 0, ! 14, 0, 0, 0, 0, 151, 840, 151, 151, 708, ! 0, 0, 0, 840, 16, 0, 17, 18, 0, 0, ! 0, 151, 151, 20, 0, 151, 0, 151, 151, 151, ! 608, 0, 784, 0, 151, 785, 0, 0, 0, 151, ! 0, 26, 151, 352, 134, 135, 0, 0, 0, 0, ! 0, 0, 369, 0, 0, 0, 0, 0, 0, 231, ! 0, 900, 0, 626, 627, 0, 0, 231, 0, 0, ! 0, 0, 0, 0, 0, 352, 151, 0, 0, 0, ! 352, 352, 0, 352, 352, 352, 352, 352, 352, 352, ! 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, ! 352, 0, 0, 0, 0, 0, 0, 0, 0, 270, ! 131, 132, 10, 0, 0, 13, 231, 0, 0, 0, ! 0, 0, 369, 0, 0, 231, 0, 0, 0, 0, ! 0, 0, 256, 256, 256, 256, 0, 0, 18, 0, ! 0, 0, 0, 231, 231, 0, 0, 0, 0, 21, ! 0, 0, 0, 0, 369, 694, 0, 0, 0, 0, ! 0, 0, 26, 0, 0, 28, 271, 0, 1165, 0, ! 7, 8, 1166, 10, 173, 12, 13, 0, 0, 1263, ! 0, 0, 14, 0, 0, 0, 0, 0, 0, 1264, ! 0, 256, 0, 608, 0, 0, 16, 33, 17, 18, ! 19, 1265, 698, 0, 0, 20, -556, 608, 608, 708, ! 21, 352, 0, 0, 23, 1167, 1033, 174, 0, 0, 0, 0, 0, 26, 0, 0, 28, 29, 0, 0, ! 1168, 719, 1169, 0, 0, 0, 0, 0, 0, 151, ! 31, 270, 8, 9, 10, 173, 12, 13, 0, 0, ! 32, 488, 0, 14, 0, 0, 231, 0, 33, 0, ! 0, 0, 1170, 0, 0, 0, 0, 16, 0, 17, ! 18, 0, 0, 0, 0, 0, 20, 0, -556, 0, ! 0, 21, 0, 0, 0, 23, 0, 694, 783, 0, ! 369, 0, 0, 0, 26, 0, 130, 28, 271, 0, ! 0, 0, 0, 0, 151, 246, 0, 0, 0, 0, ! 0, 1263, 0, 0, 131, 132, 231, 231, 0, 563, ! 0, 1264, 0, 0, 0, 0, 0, 0, 0, 33, ! 900, 0, 0, 1265, 698, 0, 0, 0, 352, 352, ! 0, 352, 18, 0, 151, 151, 840, 0, 0, 0, ! 0, 0, 0, 0, 1145, 270, 8, 9, 10, 694, ! 0, 13, 0, 0, 0, 0, 26, 0, 0, 134, ! 135, 231, 0, 151, 0, 0, 608, 151, 151, 608, ! 608, 608, 0, 695, 18, 151, 0, 0, 0, 0, ! 0, 0, 151, 696, 0, 21, 0, 145, 131, 132, ! 10, 694, 0, 13, 0, 697, 698, 0, 26, 0, ! 0, 28, 271, 84, 0, 0, 256, 369, 369, 0, ! 369, 0, 256, 0, 0, 1307, 18, 0, 1238, 0, ! 0, 608, 608, 608, 0, 1308, 0, 21, 0, 0, ! 0, 0, 0, 33, 608, 0, 0, 1309, 698, 0, ! 26, 0, 0, 28, 29, 0, 0, 0, 626, 627, ! 0, 0, 0, 0, 0, 0, 0, 155, 1165, 0, ! 7, 8, 1166, 10, 173, 12, 13, 156, 0, 0, ! 0, 0, 14, 0, 0, 33, 0, 0, 0, 157, ! 0, 0, 0, 0, 0, 256, 16, 0, 17, 18, ! 19, 0, 0, 0, 0, 20, -555, 0, 8, 9, ! 21, 0, 0, 253, 23, 1167, 0, 174, 608, 608, ! 0, 0, 608, 26, 0, 0, 28, 29, 352, 256, ! 1168, 352, 1169, 608, 0, 256, 18, 1033, 1033, 1033, ! 31, 0, 0, 608, 0, 719, 0, 0, 0, 0, ! 32, 0, 0, 694, 0, 0, 0, 0, 33, 0, ! 26, 0, 1170, 134, 135, 0, 0, 0, 270, 8, ! 9, 10, 626, 627, 0, 0, 0, 1501, -555, 651, ! 652, 653, 654, 655, 656, 657, 658, 1502, 659, 660, ! 661, 662, 663, 664, 665, 666, 667, 18, 0, 1503, ! 698, 0, 0, 0, 256, 0, 256, 369, 21, 0, ! 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, ! 0, 26, 0, 0, 28, 271, 0, 0, 0, 0, ! 0, 145, 8, 9, 10, 0, 0, 0, 1307, 151, ! 151, 151, 151, 151, 840, 608, 0, 0, 1308, 151, ! 0, 1145, 1145, 1145, 352, 0, 33, 719, 0, 0, ! 1309, 698, 256, 608, 608, 608, 0, 0, 0, 0, ! 0, 21, 1411, 0, 352, 0, 900, 0, 0, 138, ! 0, 0, 151, 84, 26, 84, 0, 28, 29, 0, ! 1367, 84, 0, 84, 0, 0, 0, 0, 0, 0, ! 0, 200, 0, 0, 0, 0, 256, 0, 256, 8, ! 9, 201, 0, 12, 253, 0, 0, 0, 256, 33, ! 14, 0, 0, 202, 0, 0, 0, 0, 54, 0, ! 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, ! 0, 0, 0, 20, 0, 608, 608, 0, 608, 0, ! 0, 0, 23, 369, 694, 54, 54, 0, 158, 608, ! 54, 26, 0, 0, 134, 135, 0, 608, 0, 54, ! 0, 0, 0, 0, 0, 608, 608, 708, 695, 0, ! 0, 0, 54, 0, 54, 656, 657, 658, 696, 659, ! 660, 661, 662, 663, 664, 665, 666, 667, 0, 0, ! 697, 698, 0, 0, 0, 264, 900, 0, 272, 0, ! 0, 0, 0, 0, 0, 0, 151, 151, 151, 608, ! 608, 708, 0, 0, 151, 151, 750, 751, 752, 753, ! 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 608, 608, 608, 608, 608, 0, 0, 0, 900, 0, ! 0, 0, 0, 256, 0, 0, 0, 1367, 0, 0, ! 0, 417, 417, 0, 54, 0, 256, 0, 0, 0, ! 54, 54, 0, 0, 264, 272, 54, 0, 0, 158, ! 158, 158, 0, 0, 0, 0, 456, 84, 0, 0, ! 0, 0, 0, 0, 0, 54, 0, 0, 0, 54, ! 0, 0, 0, 0, 0, 54, 54, 0, 0, 6, ! 0, 7, 8, 9, 10, 11, 12, 13, 0, 0, ! 0, 0, 0, 14, 54, 54, 158, 0, 0, 0, ! 0, 0, 0, 0, 264, 0, 0, 16, 0, 17, ! 18, 0, 0, 0, 0, 0, 20, 0, 0, 608, ! 608, 21, 608, 54, 256, 23, 608, 0, 463, 0, ! 0, 0, 0, 0, 26, 0, 0, 28, 29, 0, ! 0, 30, 151, 0, 0, 0, 0, 151, 0, 0, ! 84, 31, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 32, 0, 54, 0, 0, 0, 0, 0, 33, ! 264, 657, 658, 34, 659, 660, 661, 662, 663, 664, ! 665, 666, 667, 608, 608, 708, 608, 608, 0, 0, ! 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, ! 270, 8, 9, 10, 173, 12, 13, 0, 638, 0, ! 488, 0, 14, 751, 752, 753, 754, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 16, 0, 17, 18, ! 269, 0, 0, 0, 0, 20, 0, 634, 0, 256, ! 21, 608, 0, 0, 23, 0, 694, 145, 131, 132, ! 10, 0, 0, 26, 417, 0, 28, 271, 0, 0, ! 0, 0, 264, 0, 0, 0, 0, 0, 54, 0, ! 1307, 0, 0, 0, 0, 0, 18, 0, 0, 0, ! 1308, 0, 264, 1656, 0, 0, 0, 21, 33, 0, ! 0, 0, 1309, 698, 151, 840, 151, 0, 0, 0, ! 26, 0, 0, 28, 29, 0, 0, 417, 0, 0, ! 0, 0, 459, 626, 627, 0, 0, 31, 0, 54, ! 0, 0, 0, 0, 0, 0, 0, 32, 54, 0, ! 264, 0, 0, 0, 0, 33, 0, 456, 54, 34, ! 0, 54, 0, 0, 0, 508, 0, 456, 456, 456, ! 0, 1145, 0, 54, 0, 0, 0, 0, 527, 0, ! 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, -419, 8, 9, -419, -419, 12, 253, ! 0, 0, 0, 0, 0, 14, 0, 54, 54, 54, ! 54, 0, 1145, 1145, 1145, 54, 0, 0, 0, 16, ! 0, 17, 18, 54, 54, 151, 0, 54, 20, 158, ! 158, 158, 456, -419, 0, 0, 54, 23, 0, 694, ! 0, 54, 0, 0, 54, 0, 26, 0, 0, 134, ! 135, 145, 8, 9, 10, 0, 0, 13, 0, 0, ! 0, 0, 0, 695, 0, 0, 0, 0, 0, 79, ! 0, 0, 0, 696, 0, 0, 0, 0, 54, 0, ! 18, -419, 0, 0, 0, 697, 698, 0, 0, 0, ! 0, 21, 0, 0, 0, 0, 79, 79, 0, 79, ! 0, 79, 0, 0, 26, 0, 0, 28, 29, 0, ! 79, 0, 145, 8, 9, 10, 212, 12, 213, 0, ! 0, 200, 0, 79, 14, 79, 634, 0, 634, 0, ! 0, 201, 0, 0, 0, 0, 0, 0, 16, 33, ! 17, 18, 0, 202, 634, 634, 634, 20, 0, 274, ! 0, 0, 21, 0, 0, 0, 23, 0, 0, 634, ! 0, 0, 0, 0, 0, 26, 0, 0, 28, 29, ! 0, 0, 214, 0, 0, 652, 653, 654, 655, 656, ! 657, 658, 31, 659, 660, 661, 662, 663, 664, 665, ! 666, 667, 32, 0, 0, 0, 0, 0, 0, 0, ! 33, 0, 0, 0, 34, 79, 264, 0, 0, 0, ! 0, 79, 79, 0, 0, 0, 274, 79, 634, 0, ! 79, 79, 79, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 8, 9, 0, 79, 0, 563, 0, ! 79, 54, 0, 0, 0, 0, 79, 79, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 0, 18, 0, 0, 0, 79, 79, 79, 0, 0, ! 145, 8, 9, 10, 173, 12, 13, 0, 694, 0, ! 848, 0, 14, 0, 0, 26, 0, 873, 134, 135, ! 417, 0, 879, 0, 79, 0, 16, 417, 17, 18, ! 0, 0, 1501, 0, 0, 20, 54, 0, 0, 0, ! 21, 0, 1502, 0, 23, 0, 0, 0, 0, 0, ! 0, 903, 0, 26, 1503, 698, 28, 29, 909, 0, ! 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, ! 31, 0, 0, 0, 0, 0, 54, 54, 158, 0, ! 32, 0, 0, 264, 272, 0, 1142, 0, 33, 0, ! 0, 0, 34, 145, 131, 132, 10, 0, 0, 563, ! 634, 919, 920, 0, 921, 54, 0, 0, 456, 54, ! 54, 456, 456, 456, 0, 0, 0, 54, 0, 0, ! 0, 0, 18, 0, 54, 0, 1355, 8, 1166, 10, ! 212, 12, 213, 21, 0, 0, 0, 0, 14, 0, ! 0, 0, 0, 0, 0, 54, 26, 0, 0, 28, ! 29, 0, 16, 0, 17, 18, 0, 0, 0, 0, ! 0, 20, 0, 31, 718, 0, 21, 131, 132, 79, ! 23, 222, 223, 32, 0, 0, 0, 0, 14, 26, ! 0, 33, 28, 29, 718, 34, 0, 0, 1357, 0, ! 0, 0, 0, 0, 0, 18, 31, 1020, 1021, 0, ! 0, 20, 1020, 0, 0, 0, 32, 0, 0, 0, ! 23, 0, 694, 0, 33, 0, 0, 0, 1170, 26, ! 79, 0, 134, 135, 0, 0, 0, 0, 0, 79, ! 0, 0, 0, 0, 0, 0, 695, 0, 0, 79, ! 0, 0, 79, 0, 0, 0, 696, 0, 0, 0, ! 0, 0, 0, 0, 79, 0, 0, 0, 704, 698, ! 0, 0, 79, 0, 0, 0, 0, 0, 0, 634, ! 634, 634, 0, 0, 0, 456, 264, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 79, 79, ! 79, 79, 0, 0, 0, 0, 79, 0, 0, 0, ! 0, 0, 0, 0, 79, 79, 0, 0, 79, 0, ! 79, 79, 79, 0, 0, 0, 0, 79, 0, 0, ! 0, 0, 79, 0, 0, 79, 0, 0, 0, 0, ! 0, 0, 0, 1137, 165, 8, 9, 0, 0, 12, ! 13, 0, 0, 0, 0, 0, 14, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 211, 79, ! 16, 0, 17, 18, 0, 0, 0, 0, 1153, 20, ! 0, 54, 54, 54, 158, 158, 158, 456, 23, 264, ! 0, 54, 264, 1142, 1142, 1142, 0, 26, 0, 272, ! 134, 135, 145, 8, 9, 10, 212, 12, 213, 0, ! 0, 0, 0, 0, 14, 0, 0, 0, 1193, 0, ! 1195, 0, 0, 0, 158, 54, 0, 54, 16, 0, ! 17, 18, 54, 54, 0, 54, 983, 20, 0, 0, ! 0, 0, 21, 0, 0, 0, 23, 0, 0, 0, ! 0, 0, 8, 9, 0, 26, 12, 13, 28, 29, ! 0, 0, 1666, 14, 0, 165, 165, 165, 0, 0, ! 0, 0, 31, 0, 0, 0, 0, 16, 0, 17, ! 18, 0, 32, 0, 0, 0, 20, 0, 0, 0, ! 33, 211, 0, 0, 34, 23, 1233, 1234, 718, 1236, ! 0, 0, 0, 0, 26, 0, 0, 134, 135, 677, ! 211, 211, 520, 0, 0, 0, 0, 456, 456, 456, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 1257, ! 0, 0, 79, 0, 0, 0, 131, 132, 0, 211, ! 222, 223, 0, 678, 0, 0, 0, 14, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, ! 54, 456, 456, 456, 18, 0, 54, 54, 0, 0, ! 20, 0, 0, 0, 0, 0, 0, 0, 0, 23, ! 0, 694, 0, 0, 0, 0, 0, 0, 26, 0, ! 0, 134, 135, 0, 0, 0, 0, 79, 0, 54, ! 0, 0, 0, 0, 0, 695, 145, 8, 9, 10, ! 173, 12, 13, 0, 0, 696, 0, 0, 14, 0, ! 264, 272, 607, 0, 0, 0, 0, 697, 698, 54, ! 0, 0, 16, 0, 17, 18, 0, 79, 79, 79, ! 0, 20, 0, 1312, 0, 274, 21, 1144, 0, 0, ! 23, 0, 0, 0, 0, 0, 0, 0, 0, 26, ! 0, 0, 28, 29, 0, 0, 79, 0, 0, 0, ! 79, 79, 701, 701, 701, 0, 31, 0, 79, 0, ! 145, 8, 9, 10, 0, 79, 32, 0, 0, 0, ! 0, 0, 0, 0, 33, 0, 0, 0, 34, 145, ! 8, 9, 10, 212, 12, 213, 79, 0, 0, 18, ! 0, 14, 0, 0, 54, 0, 0, 264, 0, 54, ! 21, 0, 54, 0, 0, 16, 0, 17, 18, 0, ! 0, 0, 0, 26, 20, 211, 28, 29, 0, 21, ! 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, ! 515, 0, 26, 0, 0, 28, 29, 0, 1417, 0, ! 516, 0, 0, 0, 0, 0, 0, 0, 33, 31, ! 0, 0, 517, 0, 0, 0, 0, 0, 0, 32, ! 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 836, 0, 836, 836, 701, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 1440, 0, 211, ! 211, 0, 0, 211, 0, 520, 520, 520, 871, 0, ! 8, 9, 211, 173, 12, 13, 0, 211, 718, 488, ! 211, 14, 0, 0, 0, 0, 0, 1448, 0, 0, ! 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, ! 1454, 0, 0, 0, 20, 0, 54, 54, 54, 0, ! 0, 0, 0, 23, 0, 694, 0, 0, 0, 0, ! 0, 0, 26, 0, 0, 134, 135, 1470, 0, 0, ! 0, 1471, 0, 653, 654, 655, 656, 657, 658, 1501, ! 659, 660, 661, 662, 663, 664, 665, 666, 667, 1502, ! 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, ! 0, 1503, 698, 1142, 0, 0, 1493, 0, 0, 0, ! 0, 0, 79, 79, 79, 79, 79, 79, 0, 0, ! 267, 0, 79, 275, 1144, 1144, 1144, 0, 0, 0, ! 1318, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 1142, 1142, 1142, 267, 0, 381, ! 0, 0, 0, 0, 0, 79, 79, 54, 79, 1537, ! 1538, 0, 0, 79, 79, 0, 79, 0, 0, 0, ! 0, 992, 145, 8, 9, 10, 221, 222, 223, 0, ! 0, 0, 0, 0, 14, 701, 701, 701, 0, 0, ! 0, 0, 0, 0, 701, 0, 1560, 1561, 0, 0, ! 0, 18, 1563, 0, 0, 0, 0, 20, 0, 0, ! 0, 0, 21, 0, 0, 0, 23, 211, 694, 0, ! 209, 0, 0, 0, 0, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, ! 209, 209, 200, 0, 0, 0, 0, 0, 0, 526, ! 8, 9, 201, 212, 12, 213, 145, 8, 9, 10, ! 33, 14, 253, 0, 1669, 0, 0, 0, 209, 0, ! 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, ! 0, 0, 836, 0, 20, 18, 0, 0, 0, 79, ! 79, 79, 0, 23, 0, 275, 21, 79, 79, 0, ! 0, 0, 26, 0, 0, 134, 135, 0, 0, 26, ! 0, 1677, 28, 29, 0, 267, 0, 0, 0, 0, ! 0, 0, 836, 836, 1136, 0, 200, 0, 0, 0, ! 79, 0, 1136, 0, 0, 0, 201, 0, 0, 0, ! 0, 0, 0, 0, 33, 8, 9, 0, 202, 0, ! 13, 211, 274, 0, 871, 211, 211, 871, 871, 871, ! 79, 0, 0, 211, 0, 0, 0, 0, 0, 0, ! 211, 0, 0, 18, 0, 0, 0, 145, 8, 9, ! 10, 0, 0, 13, 0, 0, 145, 8, 9, 10, ! 694, 0, 563, 0, 0, 0, 0, 26, 0, 0, ! 134, 135, 0, 0, 0, 0, 18, 267, 275, 607, ! 607, 607, 0, 0, 1501, 18, 0, 21, 0, 0, ! 0, 0, 701, 0, 1502, 0, 21, 267, 275, 0, ! 26, 0, 0, 28, 29, 0, 1503, 698, 0, 26, ! 0, 0, 28, 29, 0, 79, 0, 515, 0, 0, ! 79, 0, 0, 79, 0, 0, 200, 516, 0, 0, ! 0, 0, 0, 0, 209, 33, 201, 0, 0, 517, ! 0, 0, 0, 491, 33, 0, 0, 0, 202, 0, ! 270, 8, 9, 10, 0, 0, 13, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 701, 701, 0, 0, ! 701, 0, 0, 0, 0, 0, 0, 0, 0, 18, ! 0, 701, 0, 0, 0, 701, 701, 701, 0, 0, ! 21, 701, 145, 8, 9, 10, 0, 0, 0, 0, ! 0, 0, 209, 26, 209, 209, 28, 271, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 209, 209, ! 867, 18, 209, 0, 209, 209, 209, 209, 0, 0, ! 868, 209, 21, 0, 0, 0, 209, 0, 33, 209, ! 0, 0, 869, 0, 0, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 200, 0, 0, 0, 0, 79, 79, 79, ! 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, ! 33, 0, 0, 0, 202, 0, 0, 836, 836, 836, ! 1136, 1136, 1136, 1310, 0, 0, 0, 836, 0, 1136, ! 1136, 1136, 0, 270, 8, 9, 10, 0, 0, 0, ! 0, 871, 871, 871, 0, 0, 0, 0, 145, 131, ! 1343, 10, 0, 0, 1144, 0, 0, 0, 0, 738, ! 165, 0, 18, 0, 0, 0, 0, 0, 211, 0, ! 0, 0, 0, 21, 0, 0, 0, 18, 0, 0, ! 0, 0, 1355, 1356, 9, 10, 26, 0, 21, 28, ! 271, 0, 0, 0, 0, 1144, 1144, 1144, 0, 0, ! 0, 26, 0, 867, 28, 29, 0, 0, 79, 0, ! 0, 0, 0, 868, 0, 0, 0, 0, 155, 0, ! 0, 33, 21, 992, 992, 869, 992, 0, 156, 0, ! 0, 387, 391, 0, 0, 26, 33, 701, 28, 29, ! 157, 0, 0, 0, 1357, 701, 267, 275, 0, 0, ! 0, 0, 200, 701, 701, 701, 0, 0, 0, 0, ! 824, 491, 201, 0, 0, 0, 209, 0, 0, 0, ! 33, 0, 0, 0, 202, 0, 0, 1520, 1521, 9, ! 10, 0, 0, 0, 0, 0, 0, 0, 1520, 131, ! 132, 10, 0, 0, 836, 836, 836, 1310, 1310, 1310, ! 0, 0, 836, 836, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 492, 21, 871, 871, ! 871, 871, 871, 0, 0, 0, 0, 0, 21, 0, ! 26, 209, 0, 28, 29, 211, 0, 0, 0, 1522, ! 0, 26, 0, 0, 28, 29, 0, 200, 0, 0, ! 1522, 0, 0, 0, 0, 0, 0, 201, 31, 0, ! 0, 0, 0, 0, 0, 33, 0, 0, 32, 202, ! 0, 209, 209, 1134, 0, 0, 33, 0, 267, 275, ! 34, 1134, 0, 0, 0, 0, 0, 0, 491, 0, ! 0, 0, 0, 0, 0, 928, 0, 0, 0, 0, ! 209, 0, 0, 209, 209, 209, 209, 209, 209, 526, ! 0, 0, 209, 8, 9, 0, 173, 12, 13, 209, ! 0, 824, 488, 0, 14, 0, 0, 1310, 1310, 0, ! 1310, 0, 0, 0, 871, 0, 0, 0, 16, 275, ! 17, 18, 0, 0, 0, 0, 491, 20, 0, 0, ! 211, 0, 491, 0, 491, 491, 23, 0, 0, 0, ! 0, 0, 0, 637, 0, 26, 0, 0, 134, 135, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 491, 0, 0, 0, 0, 0, 0, 491, 0, ! 0, 1310, 1310, 1310, 1310, 1310, 0, 0, 491, 747, ! 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 0, 1052, 1054, 1055, ! 1056, 0, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, ! 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, ! 1076, 8, 9, 791, 173, 12, 13, 0, 0, 1310, ! 1619, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, ! 0, 267, 275, 267, 0, 20, 0, 0, 0, 0, ! 0, 0, 1694, 0, 23, 0, 0, 0, 0, 0, ! 0, 0, 0, 26, 0, 0, 134, 135, 0, 0, ! 824, 0, 211, 0, 211, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, ! 0, 791, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 491, 1695, 742, 743, 744, 745, 746, ! 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, ! 757, 758, 759, 760, 761, 762, 763, 0, 0, 520, ! 0, 0, 0, 0, 0, 0, 209, 209, 209, 209, ! 209, 1134, 209, 0, 1311, 0, 209, 267, 1134, 1134, ! 1134, 0, 0, 0, 275, 0, 0, 0, 0, 0, ! 209, 209, 209, 8, 9, 0, 0, 12, 253, 0, ! 520, 520, 520, 0, 14, 0, 0, 0, 0, 0, ! 0, 0, 0, 211, 0, 0, 0, 209, 16, 0, ! 17, 18, 0, 0, 0, 0, 1216, 20, 0, 0, ! 0, 0, 926, 0, 927, 0, 23, 0, 0, 930, ! 931, 933, 934, 935, 0, 26, 0, 0, 134, 135, ! 0, 0, 637, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 824, 491, 953, 0, 0, 0, 0, ! 0, 0, 0, 0, 106, 0, 0, 0, 491, 0, ! 491, 0, 491, 125, 106, 0, 0, 0, 0, 0, ! 0, 106, 106, 0, 106, 0, 0, 0, 982, 0, ! 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, ! 0, 12, 13, 0, 0, 0, 0, 1012, 14, 0, ! 0, 0, 0, 1272, 1012, 0, 0, 0, 242, 0, ! 0, 0, 16, 0, 17, 18, 0, 0, 0, 0, ! 0, 20, 0, 209, 209, 209, 209, 209, 1134, 0, ! 23, 209, 209, 0, 0, 0, 491, 0, 0, 26, ! 0, 0, 134, 135, 0, 0, 0, 209, 209, 209, ! 209, 209, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 209, 0, 0, 0, 409, 0, ! 125, 0, 0, 0, 491, 0, 0, 106, 106, 0, ! 0, 0, 0, 0, 0, 526, 106, 106, 0, 0, ! 106, 106, 106, 0, 441, 106, 106, 106, 0, 0, ! 0, 0, 0, 0, 824, 824, 748, 749, 750, 751, ! 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, ! 762, 763, 0, 0, 0, 0, 1342, 0, 0, 0, ! 699, 699, 699, 0, 1012, 0, 0, 0, 0, 0, ! 0, 0, 1012, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 209, 209, 1311, 209, ! 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 824, 824, 0, 0, 0, 209, ! 0, 0, 0, 0, 0, 242, 106, 749, 750, 751, ! 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, ! 762, 763, 0, 0, 492, 0, 0, 0, 0, 106, ! 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 209, 209, 1134, 209, 209, 0, 0, 0, 0, 0, ! 0, 0, 1423, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 106, 491, 0, 491, 0, 491, 0, 824, ! 0, 699, 0, 699, 699, 699, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, ! 0, 0, 0, 1228, 0, 0, 0, 0, 0, 0, ! 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 106, 0, 106, 106, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 1458, 0, 0, 953, 0, 0, ! 0, 0, 0, 492, 0, 0, 0, 1012, 0, 0, ! 0, 209, 0, 209, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 824, 106, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 106, 0, 106, 0, 0, 0, ! 0, 491, 0, 0, 106, 0, 0, 106, 1134, 0, ! 0, 0, 791, 0, 1285, 0, 0, 0, 0, 106, ! 0, 0, 0, 824, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 1516, 1517, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134, ! 1134, 1134, 1012, 0, 0, 0, 0, 0, 0, 0, ! 0, 1012, 209, 824, 0, 0, 0, 0, 0, 0, ! 1325, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 699, 699, 699, 0, 0, 0, 0, ! 0, 0, 1029, 0, 0, 0, 0, 0, 0, 1569, ! 0, 0, 0, 0, 0, 0, 0, 0, 242, 893, ! 0, 0, 0, 0, 492, 0, 492, 0, 0, 0, ! 0, 0, 0, 0, 106, 0, 1389, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 1626, 1627, 0, 0, 0, 0, ! 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 106, 0, 106, 0, ! 0, 1645, 0, 0, 0, 0, 0, 0, 0, 0, ! 699, 0, 0, 0, 0, 1012, 742, 743, 744, 745, ! 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, ! 756, 757, 758, 759, 760, 761, 762, 763, 0, 1683, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 699, 699, 699, 0, 0, 0, 0, 0, 0, 1012, ! 1029, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 106, 0, 0, 0, 0, 491, 0, 0, 0, ! 0, 0, 106, 106, 0, 106, 106, 0, 0, 0, ! 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 1733, 0, 0, 492, 742, 743, 744, 745, 746, ! 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, ! 757, 758, 759, 760, 761, 762, 763, 742, 743, 744, ! 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, ! 755, 756, 757, 758, 759, 760, 761, 762, 763, 0, ! 699, 0, 1395, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, ! 1717, 0, 0, 106, 125, 0, 0, 0, 0, 0, ! 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, ! 0, 0, 1325, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 893, 0, ! 0, 0, 824, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 699, 699, 0, 0, 699, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 699, ! 0, 0, 0, 1029, 1029, 1029, 0, 0, 0, 699, ! 0, 0, 0, 1012, 0, 0, 0, 0, 741, 0, ! 0, 492, 742, 743, 744, 745, 746, 747, 748, 749, ! 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, ! 760, 761, 762, 763, 0, 0, 0, 0, 0, 0, ! 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 791, 0, 106, ! 106, 106, 106, 0, 0, 0, 0, 0, 0, 1206, ! 0, 0, 106, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, ! 759, 760, 761, 762, 763, 699, 699, 699, 699, 699, ! 699, 699, 0, 0, 0, 699, 0, 1029, 1029, 1029, ! 1754, 742, 743, 744, 745, 746, 747, 748, 749, 750, ! 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, ! 761, 762, 763, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 106, 106, 0, 0, ! 106, 0, 0, 0, 0, 1767, 0, 270, 8, 9, ! 10, 106, 12, 314, 315, 316, 317, 0, 318, 14, ! 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 319, 17, 18, 19, 0, 320, ! 321, 322, 20, 0, 323, 324, 325, 21, 326, 327, ! 0, 23, 0, 0, 0, 328, 329, 330, 331, 332, ! 26, 0, 637, 28, 271, 699, 0, -209, 382, 0, ! 0, 0, 0, 699, 335, 0, 0, 336, 0, 0, ! 0, 699, 699, 699, 0, 337, 338, 339, 0, 0, ! 0, 0, 0, 340, 341, 342, 0, 0, 0, 343, ! 0, 0, 0, 0, 0, 0, 0, 1631, 0, -510, ! -510, -510, -510, -510, -510, -510, 344, 0, 0, -510, ! 0, -510, 699, 699, 699, 699, 699, 699, 0, 0, ! 699, 699, -510, 0, -510, 0, 0, 0, -510, 0, ! 0, 0, 0, 0, -510, 0, 0, 0, 0, -510, ! 0, 0, 0, -510, 893, -510, 0, 106, 0, 0, ! 106, 0, -510, 0, 0, -510, -510, -510, -510, -510, ! 0, -510, -510, -510, -510, -510, -510, -510, -510, -510, ! -510, -510, -510, -510, -510, -510, -510, -510, -510, -510, ! -510, -510, -510, -510, 0, -510, -510, -510, 0, -510, ! -510, -510, -510, -510, 0, 0, 0, 0, 0, 1632, ! -510, 0, 0, 0, 0, -510, -510, -510, 0, -510, ! 0, 0, 0, 106, 106, 0, 106, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, ! 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, ! 0, 0, 0, 106, 106, 699, 699, 0, 699, 0, ! 270, 8, 9, 10, 0, 12, 314, 315, 316, 317, ! 0, 318, 14, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 893, 0, 16, 319, 17, 18, ! 19, 0, 320, 321, 322, 20, 0, 323, 324, 325, ! 21, 326, 327, 0, 23, 0, 694, 0, 328, 329, ! 330, 331, 332, 26, 0, 0, 28, 271, 0, 699, ! 699, 699, 699, 699, 0, 0, 893, 335, 0, 0, ! 1025, 0, 0, 0, 0, 0, 0, 0, 337, 338, ! 1026, 0, 0, 0, 0, 0, 340, 341, 342, 0, ! 0, 0, 1027, 698, 0, 0, 0, 106, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, ! 0, 0, 0, 0, 0, 0, 1582, 699, -927, -927, ! -927, -927, -927, -927, -927, -927, -927, -927, 0, -927, ! -927, -927, 0, -927, -927, -927, -927, -927, -927, -927, ! -927, -927, -927, -927, -927, -927, -927, -927, -927, 0, ! -927, -927, -927, -927, 0, -927, -927, -927, -927, -927, ! -927, -927, -927, -927, 0, 0, -927, -927, -927, -927, ! -927, -927, 0, 0, -927, -927, -927, 0, -927, -927, ! 0, 0, 0, 0, 0, -927, 0, 0, -927, 0, ! 0, 0, 0, 106, 0, 106, -927, -927, -927, 0, ! 0, 0, 0, 0, -927, -927, -927, 0, 0, 0, ! -927, 0, -927, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 1583, -927, 1545, 0, ! -927, -927, -927, -927, -927, -927, -927, -927, -927, -927, ! 0, -927, -927, -927, 0, -927, -927, -927, -927, -927, ! -927, -927, -927, -927, -927, -927, -927, -927, -927, -927, ! -927, 0, -927, -927, -927, -927, 0, -927, -927, -927, ! -927, -927, -927, -927, -927, -927, 0, 0, -927, -927, ! -927, -927, -927, -927, 0, 0, -927, -927, -927, 0, ! -927, -927, 0, 0, 0, 0, 0, -927, 0, 0, ! -927, 0, 0, 0, 0, 0, 0, 0, -927, -927, ! -927, 0, 0, 0, 0, 0, -927, -927, -927, 0, ! 0, 0, -927, 629, -927, 270, 8, 9, 10, 173, ! 12, 314, 315, 316, 317, 488, 318, 14, 0, -927, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 319, 17, 18, 19, 0, 320, 321, 322, ! 20, 0, 323, 324, 325, 21, 326, 327, 0, 23, ! 0, 694, 0, 328, 329, 330, 331, 332, 26, 0, ! 0, 28, 271, -345, 0, 0, 382, 0, 0, 0, ! 0, 0, 335, 0, 0, 1025, 0, 0, 0, 0, ! 0, 0, 0, 337, 338, 1026, 0, 0, 0, 0, ! 0, 340, 341, 342, 0, 0, 0, 1027, 698, 629, ! 0, 145, 8, 9, 10, 173, 12, 314, 315, 316, ! 317, 488, 318, 14, 344, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 319, 17, ! 18, 19, 0, 320, 321, 322, 20, 0, 323, 324, ! 325, 21, 326, 327, 0, 23, 0, 694, 0, 328, ! 329, 330, 331, 332, 26, 0, 0, 28, 29, -345, ! 0, 0, 382, 0, 0, 0, 0, 0, 335, 0, ! 0, 1139, 0, 0, 0, 0, 0, 0, 0, 337, ! 338, 1140, 0, 0, 0, 0, 0, 340, 341, 342, ! 0, 0, 0, 1141, 698, 487, 0, 270, 8, 9, ! 10, 173, 12, 314, 315, 316, 317, 488, 318, 14, ! 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 319, 17, 18, 19, 0, 320, ! 321, 322, 20, 0, 323, 324, 325, 21, 326, 327, ! 0, 23, 0, 0, 0, 328, 329, 330, 331, 332, ! 26, 0, 0, 28, 271, 0, 0, 0, 382, 0, ! 0, 0, 0, 0, 335, 0, 0, 336, 0, 0, ! 0, 0, 0, 0, 0, 337, 338, 339, 0, 0, ! 0, 0, 0, 340, 341, 342, 0, 0, 956, 343, ! 270, 8, 9, 10, 173, 12, 314, 315, 316, 317, ! 0, 318, 14, 0, -840, 0, 344, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 319, 17, 18, ! 19, 0, 320, 321, 322, 20, 0, 323, 324, 325, ! 21, 326, 327, 0, 23, 0, 0, 0, 328, 329, ! 330, 331, 332, 26, 0, 0, 28, 271, 1728, 0, ! -829, 382, 0, 0, 0, 0, 0, 335, 0, 0, ! 336, 0, 0, 0, 0, 0, 0, 0, 337, 338, ! 339, 0, 0, 0, 0, 0, 340, 341, 342, 0, ! 0, 822, 343, 944, 945, 946, 10, 0, 12, 504, ! 315, 316, 317, 0, 318, 14, 0, 0, 0, 344, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 319, 17, 0, 19, 0, 320, 321, 322, 20, 0, ! 323, 324, 325, 21, 326, 327, 0, 23, 0, 0, ! 0, 328, 329, 330, 331, 332, 26, 0, 0, 947, ! 948, 823, 0, 0, 382, 0, 0, 0, 0, 0, ! 335, 0, 0, 336, 0, 0, 0, 0, 0, 0, ! 0, 337, 338, 339, 0, 0, 0, 0, 0, 340, ! 341, 342, 0, 0, 0, 343, 949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 1124, 344, 629, 0, 270, 8, 9, 10, 0, ! 12, 314, 315, 316, 317, 0, 318, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 319, 17, 18, 19, 0, 320, 321, 322, ! 20, 0, 323, 324, 325, 21, 326, 327, 0, 23, ! 0, 0, 0, 328, 329, 330, 331, 332, 26, 0, ! 0, 28, 271, -345, 0, 0, 382, 0, 0, 0, ! 0, 0, 335, 0, 0, 630, 0, 0, 0, 0, ! 0, 0, 0, 337, 338, 631, 0, 0, 0, 0, ! 0, 340, 341, 342, 0, 0, 822, 632, 944, 945, ! 946, 10, 0, 12, 504, 315, 316, 317, 0, 318, ! 14, 0, 0, 0, 344, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 319, 17, 0, 19, 0, ! 320, 321, 322, 20, 0, 323, 324, 325, 21, 326, ! 327, 0, 23, 0, 0, 0, 328, 329, 330, 331, ! 332, 26, 0, 0, 947, 948, 823, 0, 0, 382, ! 0, 0, 0, 0, 0, 335, 0, 0, 336, 0, ! 0, 0, 0, 0, 0, 0, 337, 338, 339, 0, ! 0, 0, 0, 0, 340, 341, 342, 0, 0, 0, ! 343, 949, 822, 0, 270, 8, 9, 10, 0, 12, ! 504, 315, 316, 317, 0, 318, 14, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 319, 17, 0, 19, 0, 320, 321, 322, 20, ! 0, 323, 324, 325, 21, 326, 327, 0, 23, 0, ! 0, 0, 328, 329, 330, 331, 332, 26, 0, 0, ! 28, 271, 823, 0, 0, 382, 0, 0, 0, 0, ! 0, 335, 0, 0, 336, 0, 0, 0, 0, 0, ! 0, 0, 337, 338, 339, 0, 0, 0, 0, 0, ! 340, 341, 342, 0, 0, 0, 343, 822, 0, 944, ! 945, 946, 10, 1321, 12, 504, 315, 316, 317, 0, ! 318, 14, 0, 344, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 319, 17, 0, 19, ! 0, 320, 321, 322, 20, 0, 323, 324, 325, 21, ! 326, 327, 0, 23, 0, 0, 0, 328, 329, 330, ! 331, 332, 26, 0, 0, 947, 948, 823, 0, 0, ! 382, 0, 0, 0, 0, 0, 335, 0, 0, 336, ! 0, 0, 0, 0, 0, 0, 0, 337, 338, 339, ! 0, 0, 0, 0, 0, 340, 341, 342, 0, 0, ! 822, 343, 944, 945, 946, 10, 0, 12, 504, 315, ! 316, 317, 0, 318, 14, 0, 0, -514, 344, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 319, ! 17, 0, 19, 0, 320, 321, 322, 20, 0, 323, ! 324, 325, 21, 326, 327, 0, 23, 0, 0, 0, ! 328, 329, 330, 331, 332, 26, 0, 0, 947, 948, ! 823, 0, 0, 382, 0, 0, 0, 0, 0, 335, ! 0, 0, 336, 0, 0, 0, 0, 0, 0, 0, ! 337, 338, 339, 0, 0, 0, 0, 0, 340, 341, ! 342, 0, 0, 629, 343, 145, 8, 9, 10, 0, ! 12, 314, 315, 316, 317, 0, 318, 14, 0, 0, ! 1436, 344, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 319, 17, 18, 19, 0, 320, 321, 322, ! 20, 0, 323, 324, 325, 21, 326, 327, 0, 23, ! 0, 0, 0, 328, 329, 330, 331, 332, 26, 0, ! 0, 28, 29, -345, 0, 0, 382, 0, 0, 0, ! 0, 0, 335, 0, 0, 1710, 0, 0, 0, 0, ! 0, 0, 0, 337, 338, 1711, 0, 0, 0, 0, ! 0, 340, 341, 342, 0, 0, 822, 1712, 270, 8, ! 9, 10, 0, 12, 504, 315, 316, 317, 0, 318, ! 14, 0, 0, 0, 344, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 319, 17, 0, 19, 0, ! 320, 321, 322, 20, 0, 323, 324, 325, 21, 326, ! 327, 0, 23, 0, 0, 0, 328, 329, 330, 331, ! 332, 26, 0, 0, 28, 271, 823, 0, 0, 382, ! 0, 0, 0, 0, 0, 335, 0, 0, 336, 0, ! 0, 0, 0, 0, 0, 0, 337, 338, 339, 0, ! 0, 0, 0, 0, 340, 341, 342, 0, 0, 956, ! 343, 270, 8, 9, 10, 0, 12, 504, 315, 316, ! 317, 0, 318, 14, 0, 0, 0, 344, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 319, 17, ! 0, 19, 0, 320, 321, 322, 20, 0, 323, 324, ! 325, 21, 326, 327, 0, 23, 0, 0, 0, 328, ! 329, 330, 331, 332, 26, 0, 0, 28, 271, 0, ! 0, 0, 382, -829, 0, 0, 0, 0, 335, 0, ! 0, 336, 0, 0, 0, 0, 0, 0, 0, 337, ! 338, 339, 0, 0, 0, 0, 0, 340, 341, 342, ! 0, 0, 956, 343, 270, 8, 9, 10, 0, 12, ! 504, 315, 316, 317, 0, 318, 14, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 319, 17, 0, 19, 0, 320, 321, 322, 20, ! 0, 323, 324, 325, 21, 326, 327, 0, 23, 0, ! 0, 0, 328, 329, 330, 331, 332, 26, 0, 0, ! 28, 271, 0, 0, 0, 382, 0, 0, 0, 0, ! 0, 335, 0, 0, 336, 0, 0, 0, 0, 0, ! 0, 0, 337, 338, 339, 0, 0, 0, 0, 0, ! 340, 341, 342, 0, 0, 1051, 343, 270, 8, 9, ! 10, 0, 12, 504, 315, 316, 317, 0, 318, 14, ! 0, -829, 0, 344, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 319, 17, 0, 19, 0, 320, ! 321, 322, 20, 0, 323, 324, 325, 21, 326, 327, ! 0, 23, 0, 0, 0, 328, 329, 330, 331, 332, ! 26, 0, 0, 28, 271, 0, 0, 0, 382, 0, ! 0, 0, 0, 0, 335, 0, 0, 336, 0, 0, ! 0, 0, 0, 0, 0, 337, 338, 339, 0, 0, ! 0, 0, 0, 340, 341, 342, 0, 0, 1053, 343, ! 270, 8, 9, 10, 0, 12, 504, 315, 316, 317, ! 0, 318, 14, 0, 0, 0, 344, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 319, 17, 0, ! 19, 0, 320, 321, 322, 20, 0, 323, 324, 325, ! 21, 326, 327, 0, 23, 0, 0, 0, 328, 329, ! 330, 331, 332, 26, 0, 0, 28, 271, 0, 0, ! 0, 382, 0, 0, 0, 0, 0, 335, 0, 0, ! 336, 0, 0, 0, 0, 0, 0, 0, 337, 338, ! 339, 0, 0, 0, 0, 0, 340, 341, 342, 0, ! 0, 1682, 343, 270, 8, 9, 10, 0, 12, 504, ! 315, 316, 317, 0, 318, 14, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 319, 17, 0, 19, 0, 320, 321, 322, 20, 0, ! 323, 324, 325, 21, 326, 327, 0, 23, 0, 0, ! 0, 328, 329, 330, 331, 332, 26, 0, 0, 28, ! 271, 0, 0, 0, 382, 0, 0, 0, 0, 0, ! 335, 0, 0, 336, 0, 0, 0, 0, 0, 0, ! 0, 337, 338, 339, 0, 0, 0, 0, 0, 340, ! 341, 342, 0, 0, 0, 343, 270, 8, 9, 10, ! 0, 12, 504, 315, 316, 317, 0, 318, 14, 0, ! 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 319, 17, 0, 19, 0, 320, 321, ! 322, 20, 0, 323, 324, 325, 21, 326, 327, 0, ! 23, 0, 0, 0, 328, 329, 330, 331, 332, 26, ! 0, 0, 28, 271, 0, 0, 0, 382, 0, 0, ! 0, 0, 0, 335, 0, 0, 336, 0, 0, 0, ! 0, 0, 0, 0, 337, 338, 339, 0, 0, 0, ! 0, 0, 340, 341, 342, 0, 0, 0, 343, 270, ! 8, 9, 10, 0, 12, 504, 315, 316, 317, 0, ! 318, 14, 0, 0, 0, 344, 505, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 319, 17, 0, 19, ! 0, 320, 321, 322, 20, 0, 323, 324, 325, 21, ! 326, 327, 0, 23, 0, 0, 0, 328, 329, 330, ! 331, 332, 26, 0, 0, 28, 271, 0, 0, 0, ! 382, 0, 0, 0, 0, 0, 335, 0, 0, 336, ! 0, 0, 0, 0, 0, 0, 0, 337, 338, 339, ! 0, 0, 0, 0, 0, 340, 341, 342, 0, 0, ! 0, 343, 270, 8, 9, 10, 0, 12, 504, 315, ! 316, 317, 0, 318, 14, 0, 0, 0, 344, 877, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 319, ! 17, 0, 19, 0, 320, 321, 322, 20, 0, 323, ! 324, 325, 21, 326, 327, 0, 23, 0, 0, 0, ! 328, 329, 330, 331, 332, 26, 0, 0, 28, 271, ! 0, 0, 0, 382, 0, 0, 0, 0, 0, 335, ! 0, 0, 336, 0, 0, 0, 0, 0, 0, 0, ! 337, 338, 339, 0, 0, 0, 0, 0, 340, 341, ! 342, 0, 0, 0, 343, 270, 8, 9, 10, 0, ! 12, 504, 315, 316, 317, 0, 318, 14, 0, 0, ! 0, 344, 995, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 319, 17, 0, 19, 0, 320, 321, 322, ! 20, 0, 323, 324, 325, 21, 326, 327, 0, 23, ! 0, 0, 0, 328, 329, 330, 331, 332, 26, 0, ! 0, 28, 271, 0, 0, 0, 382, 0, 0, 0, ! 0, 0, 335, 0, 0, 336, 0, 0, 0, 0, ! 0, 0, 0, 337, 338, 339, 0, 0, 0, 0, ! 0, 340, 341, 342, 0, 0, 0, 343, 270, 8, ! 9, 10, 0, 12, 504, 315, 316, 317, 0, 318, ! 14, 0, 0, 0, 344, 1015, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 319, 17, 0, 19, 0, ! 320, 321, 322, 20, 0, 323, 324, 325, 21, 326, ! 327, 0, 23, 0, 0, 0, 328, 329, 330, 331, ! 332, 26, 0, 0, 28, 271, 0, 0, 0, 382, ! 0, 0, 0, 0, 0, 335, 0, 0, 336, 0, ! 0, 0, 0, 0, 0, 0, 337, 338, 339, 0, ! 0, 0, 0, 0, 340, 341, 342, 0, 0, 0, ! 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 344, 1259, 1586, ! 1587, 1588, 10, 173, 12, 314, 315, 316, 317, 0, ! 318, 14, 1589, 0, 1590, 1591, 1592, 1593, 1594, 1595, ! 1596, 1597, 1598, 1599, 15, 16, 319, 17, 18, 19, ! 0, 320, 321, 322, 20, 0, 323, 324, 325, 21, ! 326, 327, 1600, 23, 1601, 0, 0, 328, 329, 330, ! 331, 332, 26, 0, 0, 1602, 271, 1215, 0, 1603, ! 382, 0, 0, 0, 0, 0, 335, 0, 0, 336, ! 0, 0, 0, 0, 0, 0, 0, 337, 338, 339, ! 0, 0, 0, 0, 0, 340, 341, 342, 0, 0, ! 0, 343, 0, 1604, 1586, 1587, 1588, 10, 173, 12, ! 314, 315, 316, 317, 0, 318, 14, 1589, 344, 1590, ! 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 15, ! 16, 319, 17, 18, 19, 0, 320, 321, 322, 20, ! 0, 323, 324, 325, 21, 326, 327, 1600, 23, 1601, ! 0, 0, 328, 329, 330, 331, 332, 26, 0, 0, ! 1602, 271, 0, 0, 1603, 382, 0, 0, 0, 0, ! 0, 335, 0, 0, 336, 0, 0, 0, 0, 0, ! 0, 0, 337, 338, 339, 0, 0, 0, 0, 0, ! 340, 341, 342, 0, 0, 0, 343, 0, 1604, 270, ! 8, 9, 10, 173, 12, 314, 315, 316, 317, 488, ! 318, 14, 0, 344, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 319, 17, 18, 19, ! 0, 320, 321, 322, 20, 0, 323, 324, 325, 21, ! 326, 327, 0, 23, 0, 694, 0, 328, 329, 330, ! 331, 332, 26, 0, 0, 28, 271, 0, 0, 0, ! 382, 0, 0, 0, 0, 0, 335, 0, 0, 1025, ! 0, 0, 0, 0, 0, 0, 0, 337, 338, 1026, ! 0, 0, 0, 0, 0, 340, 341, 342, 0, 0, ! 0, 1027, 698, 145, 8, 9, 10, 173, 12, 314, ! 315, 316, 317, 488, 318, 14, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 319, 17, 18, 19, 0, 320, 321, 322, 20, 0, ! 323, 324, 325, 21, 326, 327, 0, 23, 0, 694, ! 0, 328, 329, 330, 331, 332, 26, 0, 0, 28, ! 29, 0, 0, 0, 382, 0, 0, 0, 0, 0, ! 335, 0, 0, 1139, 0, 0, 0, 0, 0, 0, ! 0, 337, 338, 1140, 0, 0, 0, 0, 0, 340, ! 341, 342, 0, 0, 0, 1141, 698, 145, 8, 9, ! 10, 0, 12, 314, 315, 316, 317, 0, 318, 14, ! 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 319, 17, 18, 19, 0, 320, ! 321, 322, 20, 0, 323, 324, 325, 21, 326, 327, ! 0, 23, 0, 694, 0, 328, 329, 330, 331, 332, ! 26, 0, 0, 28, 29, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 335, 0, 0, 1139, 0, 0, ! 0, 0, 0, 0, 0, 337, 338, 1140, 0, 0, ! 0, 0, 0, 340, 341, 342, 0, 0, 0, 1141, ! 698, 270, 8, 9, 10, 0, 12, 314, 315, 316, ! 317, 0, 318, 14, 0, 0, 344, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 319, 17, ! 18, 19, 0, 320, 321, 322, 20, 0, 323, 324, ! 325, 21, 326, 327, 0, 23, 0, 0, 0, 328, ! 329, 330, 331, 332, 26, 0, 0, 333, 271, 0, ! 0, 0, 334, 0, 0, 0, 0, 0, 335, 0, ! 0, 336, 0, 0, 0, 0, 0, 0, 0, 337, ! 338, 339, 0, 0, 0, 0, 0, 340, 341, 342, ! 0, 0, 0, 343, 270, 8, 9, 10, 0, 12, ! 314, 315, 316, 317, 0, 318, 14, 0, 0, 0, ! 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 319, 17, 18, 19, 0, 320, 321, 322, 20, ! 0, 323, 324, 325, 21, 326, 327, 0, 23, 0, ! 0, 0, 328, 329, 330, 331, 332, 26, 0, 0, ! 28, 271, 0, 0, 0, 382, 0, 0, 0, 0, ! 0, 335, 0, 0, 336, 0, 0, 0, 0, 0, ! 0, 0, 337, 338, 339, 0, 0, 0, 0, 0, ! 340, 341, 342, 0, 0, 0, 343, 270, 8, 9, ! 10, 0, 12, 504, 315, 316, 317, 0, 318, 14, ! 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 319, 17, 18, 19, 0, 320, ! 321, 322, 20, 0, 323, 324, 325, 21, 326, 327, ! 0, 23, 0, 0, 0, 328, 329, 330, 331, 332, ! 26, 0, 0, 28, 271, 0, 0, 0, 382, 0, ! 0, 0, 0, 0, 335, 0, 0, 630, 0, 0, ! 0, 0, 0, 0, 0, 337, 338, 631, 0, 0, ! 0, 0, 0, 340, 341, 342, 0, 0, 0, 632, ! 270, 8, 9, 10, 0, 12, 504, 315, 316, 317, ! 0, 318, 14, 0, 0, 0, 344, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 319, 17, 0, ! 19, 0, 320, 321, 322, 20, 0, 323, 324, 325, ! 21, 326, 327, 0, 23, 0, 0, 0, 328, 329, ! 330, 331, 332, 26, 0, 0, 28, 271, 0, 0, ! 1649, 382, 0, 0, 0, 0, 0, 335, 0, 0, ! 336, 0, 0, 0, 0, 0, 0, 0, 337, 338, ! 339, 0, 0, 0, 0, 0, 340, 341, 342, 0, ! 0, 0, 343, 270, 8, 9, 10, 173, 12, 314, ! 315, 316, 317, 0, 318, 14, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 319, 17, 18, 19, 0, 320, 321, 322, 20, 0, ! 323, 324, 325, 21, 326, 327, 0, 23, 0, 0, ! 0, 328, 329, 330, 331, 332, 26, 0, 0, 28, ! 271, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 335, 0, 0, 336, 0, 0, 0, 0, 0, 0, ! 0, 337, 338, 339, 0, 0, 0, 0, 0, 340, ! 341, 342, 0, 0, 0, 343, 145, 8, 9, 10, ! 0, 12, 504, 315, 316, 317, 0, 318, 14, 0, ! 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 319, 17, 18, 19, 0, 320, 321, ! 322, 20, 0, 323, 324, 325, 21, 326, 327, 0, ! 23, 0, 0, 0, 328, 329, 330, 331, 332, 26, ! 0, 0, 28, 29, 0, 0, 0, 382, 0, 0, ! 0, 0, 0, 335, 0, 0, 1710, 0, 0, 0, ! 0, 0, 0, 0, 337, 338, 1711, 0, 0, 0, ! 0, 0, 340, 341, 342, 0, 0, 0, 1712, 270, ! 8, 9, 10, 0, 12, 504, 315, 316, 317, 0, ! 318, 14, 0, 0, 0, 344, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 319, 17, 0, 19, ! 0, 320, 321, 322, 20, 0, 323, 324, 325, 21, ! 326, 327, 0, 23, 0, 0, 0, 328, 329, 330, ! 331, 332, 26, 0, 0, 28, 271, 0, 0, 0, ! 334, 0, 0, 0, 0, 0, 335, 0, 0, 336, ! 0, 0, 0, 0, 0, 0, 0, 337, 338, 339, ! 0, 0, 0, 0, 0, 340, 341, 342, 0, 0, ! 0, 343, 270, 8, 9, 10, 0, 12, 504, 315, ! 316, 317, 0, 318, 14, 0, 0, 0, 344, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 319, ! 17, 0, 19, 0, 320, 321, 322, 20, 0, 323, ! 324, 325, 21, 326, 327, 0, 23, 0, 0, 0, ! 328, 329, 330, 331, 332, 26, 0, 0, 28, 271, ! 644, 0, 0, 0, 0, 0, 0, 0, 0, 335, ! 0, 0, 336, 0, 0, 0, 0, 0, 0, 0, ! 337, 338, 339, 0, 0, 0, 0, 0, 340, 341, ! 342, 0, 0, 0, 645, 270, 8, 9, 10, 0, ! 12, 504, 315, 316, 317, 0, 318, 14, 0, 0, ! 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 319, 17, 0, 19, 0, 320, 321, 322, ! 20, 0, 323, 324, 325, 21, 326, 327, 0, 23, ! 0, 0, 0, 328, 329, 330, 331, 332, 26, 0, ! 0, 28, 271, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 335, 0, 0, 336, 0, 0, 0, 0, ! 0, 0, 0, 337, 338, 339, 0, 0, 0, 0, ! 0, 340, 341, 342, 0, 0, 0, 343, 682, 270, ! 8, 9, 10, 0, 12, 504, 315, 316, 317, 0, ! 318, 14, 0, 0, 344, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 319, 17, 0, 19, ! 0, 320, 321, 322, 20, 0, 323, 324, 325, 21, ! 326, 327, 0, 23, 0, 0, 0, 328, 329, 330, ! 331, 332, 26, 0, 0, 28, 271, 0, 0, 0, ! 382, 0, 0, 0, 0, 0, 335, 0, 0, 336, ! 0, 0, 0, 0, 0, 0, 0, 337, 338, 339, ! 0, 0, 0, 0, 0, 340, 341, 342, 0, 0, ! 0, 343, 270, 8, 9, 10, 0, 12, 504, 315, ! 316, 317, 0, 318, 14, 0, 0, 0, 344, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 319, ! 17, 18, 19, 0, 320, 321, 322, 20, 0, 323, ! 324, 325, 21, 326, 327, 0, 23, 0, 0, 0, ! 328, 329, 330, 331, 332, 26, 0, 0, 28, 271, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, ! 0, 0, 630, 0, 0, 0, 0, 0, 0, 0, ! 337, 338, 631, 0, 0, 0, 0, 0, 340, 341, ! 342, 0, 0, 0, 632, 1278, 8, 9, 10, 0, ! 12, 504, 315, 316, 317, 0, 318, 14, 0, 0, ! 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 319, 17, 0, 19, 0, 320, 321, 322, ! 20, 0, 323, 324, 325, 21, 326, 327, 0, 23, ! 0, 0, 0, 328, 329, 330, 331, 332, 26, 0, ! 0, 28, 271, 0, 0, 0, 382, 0, 0, 0, ! 0, 0, 335, 0, 0, 336, 0, 0, 0, 0, ! 0, 0, 0, 337, 338, 339, 0, 0, 0, 0, ! 0, 340, 341, 342, 0, 0, 0, 343, 145, 8, ! 9, 10, 0, 12, 314, 315, 316, 317, 0, 318, ! 14, 0, 0, 0, 344, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 319, 17, 18, 19, 0, ! 320, 321, 322, 20, 0, 323, 324, 325, 21, 326, ! 327, 0, 23, 0, 0, 0, 328, 329, 330, 331, ! 332, 26, 0, 0, 28, 29, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 335, 0, 0, 1710, 0, ! 0, 0, 0, 0, 0, 0, 337, 338, 1711, 0, ! 0, 0, 0, 0, 340, 341, 342, 0, 0, 0, ! 1712, 270, 8, 9, 10, 0, 12, 504, 315, 316, ! 317, 0, 318, 14, 0, 0, 0, 344, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 319, 17, ! 0, 19, 0, 320, 321, 322, 20, 0, 323, 324, ! 325, 21, 326, 327, 0, 23, 0, 0, 0, 328, ! 329, 330, 331, 332, 26, 0, 0, 28, 271, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 335, 0, ! 0, 336, 0, 0, 0, 0, 0, 0, 0, 337, ! 338, 339, 0, 0, 0, 0, 0, 340, 341, 342, ! 0, 0, 0, 612, 270, 8, 9, 10, 0, 12, ! 504, 315, 316, 317, 0, 318, 14, 0, 0, 0, ! 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 319, 17, 0, 19, 0, 320, 321, 322, 20, ! 0, 323, 324, 325, 21, 326, 327, 0, 23, 0, ! 0, 0, 328, 329, 330, 331, 332, 26, 0, 0, ! 28, 271, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 335, 0, 0, 336, 0, 0, 0, 0, 0, ! 0, 0, 337, 338, 339, 0, 0, 0, 0, 0, ! 340, 341, 342, 0, 0, 0, 614, 270, 8, 9, ! 10, 0, 12, 504, 315, 316, 317, 0, 318, 14, ! 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 319, 17, 0, 19, 0, 320, ! 321, 322, 20, 0, 323, 324, 325, 21, 326, 327, ! 0, 23, 0, 0, 0, 328, 329, 330, 331, 332, ! 26, 0, 0, 28, 271, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 335, 0, 0, 336, 0, 0, ! 0, 0, 0, 0, 0, 337, 338, 339, 0, 0, ! 0, 0, 0, 340, 341, 342, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 344, 742, 743, 744, ! 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, ! 755, 756, 757, 758, 759, 760, 761, 762, 763, 647, ! 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, ! 658, 0, 659, 660, 661, 662, 663, 664, 665, 666, ! 667 }; static const short yycheck[] = { 14, ! 4, 167, 4, 180, 216, 23, 181, 22, 744, 423, ! 182, 363, 81, 4, 4, 483, 817, 318, 319, 369, ! 260, 423, 130, 60, 4, 155, 156, 162, 369, 196, ! 549, 4, 36, 86, 36, 423, 423, 138, 58, 389, ! 642, 984, 254, 45, 45, 36, 36, 251, 389, 799, ! 351, 31, 32, 68, 45, 45, 36, 724, 60, 45, ! 393, 465, 819, 36, 94, 45, 96, 137, 138, 224, ! 225, 73, 45, 1435, 216, 81, 1428, 793, 128, 4, ! 45, 150, 137, 225, 86, 245, 14, 501, 1551, 91, ! 1546, 1551, 94, 77, 96, 4, 1605, 62, 310, 501, ! 1621, 12, 9, 140, 45, 45, 86, 49, 12, 111, ! 112, 36, 142, 128, 1171, 12, 1173, 12, 39, 1758, ! 45, 1642, 56, 62, 1181, 67, 4, 36, 904, 369, ! 1693, 34, 50, 800, 910, 3, 45, 1658, 140, 154, ! 142, 210, 144, 77, 496, 182, 532, 1452, 1453, 389, ! 140, 363, 1791, 95, 34, 507, 84, 64, 36, 56, ! 140, 181, 1618, 62, 1469, 1, 552, 140, 65, 171, ! 171, 110, 26, 175, 175, 155, 156, 49, 371, 372, ! 182, 171, 110, 1692, 175, 175, 1714, 49, 1751, 175, ! 111, 171, 1, 1714, 196, 175, 1724, 1725, 171, 110, ! 141, 96, 175, 1724, 1725, 77, 110, 61, 111, 77, ! 175, 65, 111, 110, 1519, 140, 196, 81, 95, 13, ! 200, 201, 4, 1528, 1529, 61, 1531, 334, 49, 65, ! 245, 246, 141, 95, 175, 175, 49, 430, 431, 49, ! 1696, 49, 1770, 97, 108, 260, 171, 1023, 110, 1770, ! 175, 216, 61, 78, 36, 80, 65, 62, 63, 224, ! 225, 97, 63, 45, 1727, 62, 175, 1727, 62, 62, ! 276, 65, 1, 137, 95, 155, 156, 157, 1734, 3, ! 4, 5, 95, 96, 1227, 95, 150, 95, 97, 254, ! 360, 63, 1042, 171, 1822, 1045, 63, 110, 56, 818, ! 110, 1822, 56, 356, 86, 360, 196, 473, 443, 311, ! 111, 65, 413, 110, 28, 1771, 110, 110, 32, 77, ! 335, 56, 202, 522, 1629, 1630, 50, 0, 256, 34, ! 65, 530, 61, 62, 62, 59, 60, 374, 7, 111, ! 0, 343, 109, 373, 111, 310, 210, 63, 220, 63, ! 1100, 1101, 110, 67, 356, 405, 110, 49, 140, 83, ! 4, 5, 364, 378, 95, 62, 1728, 4, 5, 719, ! 39, 373, 374, 528, 529, 1091, 356, 392, 111, 112, ! 535, 245, 110, 518, 374, 515, 516, 529, 548, 171, ! 405, 62, 49, 175, 374, 111, 551, 111, 363, 786, ! 65, 374, 432, 95, 1756, 425, 13, 49, 812, 813, ! 49, 1468, 276, 110, 196, 59, 60, 49, 1194, 56, ! 1196, 423, 59, 60, 426, 65, 77, 9, 49, 95, ! 432, 13, 3, 4, 5, 77, 73, 95, 95, 110, ! 49, 369, 775, 423, 49, 110, 83, 687, 603, 374, ! 155, 156, 157, 95, 96, 62, 95, 96, 65, 96, ! 1403, 389, 427, 95, 197, 467, 467, 49, 110, 49, ! 110, 110, 712, 493, 95, 495, 496, 467, 1790, 50, ! 62, 467, 64, 65, 77, 67, 95, 467, 59, 60, ! 95, 1158, 494, 1095, 467, 497, 78, 202, 80, 501, ! 1812, 40, 467, 61, 368, 3, 4, 5, 63, 67, ! 540, 65, 83, 95, 96, 95, 96, 56, 986, 1269, ! 1270, 501, 49, 77, 388, 49, 109, 49, 110, 61, ! 110, 496, 725, 548, 26, 515, 516, 63, 540, 13, ! 647, 648, 467, 650, 651, 652, 653, 654, 655, 656, ! 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, ! 667, 59, 60, 528, 529, 1341, 62, 99, 95, 96, ! 535, 95, 436, 95, 356, 362, 363, 364, 1354, 49, ! 610, 49, 78, 110, 56, 83, 551, 49, 62, 65, ! 4, 65, 374, 67, 484, 4, 5, 67, 49, 56, ! 1, 77, 3, 4, 5, 77, 49, 32, 610, 802, ! 612, 49, 614, 3, 4, 5, 6, 619, 620, 621, ! 622, 623, 36, 32, 65, 95, 679, 95, 96, 644, ! 632, 86, 87, 95, 811, 515, 516, 517, 603, 3, ! 642, 423, 110, 645, 95, 1164, 56, 56, 49, 77, ! 59, 60, 95, 43, 61, 56, 95, 95, 59, 60, ! 61, 62, 62, 63, 73, 49, 538, 4, 5, 59, ! 60, 56, 687, 62, 83, 776, 678, 679, 1092, 1147, ! 1148, 56, 783, 1033, 548, 467, 95, 891, 892, 78, ! 1092, 80, 1033, 897, 95, 697, 56, 712, 49, 679, ! 49, 91, 704, 50, 1092, 1092, 493, 727, 495, 496, ! 497, 95, 96, 783, 77, 695, 696, 697, 67, 501, ! 932, 611, 59, 60, 704, 1482, 110, 882, 1029, 864, ! 78, 924, 56, 56, 56, 1511, 49, 904, 26, 110, ! 28, 65, 606, 910, 95, 96, 95, 96, 778, 1217, ! 1218, 49, 110, 77, 77, 77, 65, 188, 110, 3, ! 4, 5, 6, 728, 110, 56, 784, 61, 77, 784, ! 839, 65, 792, 61, 65, 1294, 778, 65, 793, 669, ! 708, 12, 95, 8, 9, 675, 77, 677, 678, 1546, ! 15, 524, 900, 1033, 32, 1145, 111, 95, 49, 43, ! 818, 3, 4, 5, 1145, 63, 50, 32, 823, 97, ! 515, 516, 517, 38, 704, 59, 60, 1336, 86, 87, ! 49, 711, 47, 49, 49, 49, 99, 792, 692, 56, ! 56, 721, 834, 95, 1302, 1, 3, 3, 4, 5, ! 842, 63, 56, 707, 95, 96, 61, 91, 50, 77, ! 77, 77, 832, 833, 834, 96, 1023, 59, 60, 110, ! 96, 1618, 842, 77, 901, 1333, 95, 96, 56, 95, ! 95, 95, 96, 65, 65, 905, 906, 65, 908, 49, ! 1232, 83, 95, 49, 95, 77, 619, 867, 868, 77, ! 56, 1084, 113, 59, 60, 901, 1031, 679, 26, 901, ! 28, 95, 904, 905, 906, 1145, 908, 62, 910, 147, ! 901, 26, 840, 28, 152, 697, 649, 882, 4, 5, ! 77, 901, 704, 77, 904, 95, 96, 1395, 901, 95, ! 910, 61, 1109, 61, 1691, 65, 196, 65, 61, 1696, ! 110, 1742, 65, 676, 49, 26, 61, 28, 77, 682, ! 65, 56, 842, 77, 834, 12, 1692, 1161, 1162, 1163, ! 46, 95, 842, 201, 56, 698, 856, 932, 56, 97, ! 56, 110, 77, 59, 60, 839, 901, 1734, 1446, 62, ! 61, 983, 97, 56, 65, 987, 77, 56, 13, 77, ! 95, 1098, 65, 110, 110, 1188, 1189, 1190, 1133, 3, ! 1130, 1131, 6, 28, 77, 792, 870, 32, 77, 1139, ! 1140, 744, 4, 5, 1771, 1017, 97, 110, 1486, 1233, ! 1234, 1023, 1236, 56, 49, 1027, 77, 1194, 32, 1196, ! 77, 269, 3, 4, 5, 6, 110, 62, 63, 43, ! 65, 111, 67, 1023, 111, 1025, 1026, 1027, 4, 5, ! 49, 65, 834, 9, 56, 59, 60, 56, 922, 1795, ! 842, 110, 1077, 65, 56, 56, 1135, 59, 60, 73, ! 95, 96, 43, 110, 65, 77, 1091, 67, 77, 83, ! 83, 84, 85, 86, 87, 110, 77, 91, 59, 60, ! 1092, 95, 1094, 1095, 8, 9, 95, 987, 62, 63, ! 56, 15, 110, 59, 60, 1033, 67, 3, 4, 5, ! 6, 1001, 1092, 1003, 1221, 1005, 62, 73, 32, 901, ! 91, 67, 904, 110, 38, 62, 63, 83, 910, 834, ! 1132, 77, 78, 47, 1171, 113, 1173, 842, 28, 1141, ! 96, 1178, 1179, 1557, 1181, 932, 77, 43, 1150, 77, ! 1130, 1131, 1132, 56, 50, 1557, 62, 63, 1178, 1139, ! 1140, 1141, 28, 59, 60, 1171, 32, 1173, 1032, 1171, ! 1034, 1173, 77, 1179, 1341, 1181, 110, 1179, 113, 1181, ! 1171, 113, 1173, 1173, 62, 63, 110, 1354, 49, 1079, ! 1181, 1171, 1194, 1173, 1196, 91, 62, 63, 1171, 110, ! 1173, 1181, 110, 1218, 1206, 3, 444, 56, 1181, 447, ! 95, 1241, 62, 63, 1194, 8, 1196, 1145, 49, 1006, ! 1413, 459, 62, 67, 484, 4, 5, 1117, 89, 90, ! 9, 63, 93, 94, 95, 96, 111, 77, 78, 1241, ! 80, 1023, 62, 63, 1031, 1027, 1171, 62, 1173, 95, ! 1130, 1131, 1132, 32, 62, 63, 1181, 111, 991, 1139, ! 1140, 1141, 1614, 1265, 3, 4, 5, 56, 7, 8, ! 9, 1135, 510, 63, 1138, 513, 1294, 56, 4, 5, ! 59, 60, 46, 1263, 1264, 1265, 77, 1302, 38, 527, ! 1170, 1024, 56, 32, 73, 67, 60, 1366, 67, 38, ! 62, 63, 1174, 1175, 83, 110, 67, 1309, 1345, 110, ! 1092, 63, 1184, 919, 920, 921, 95, 56, 110, 28, ! 59, 60, 61, 32, 67, 1345, 67, 1307, 1308, 1309, ! 56, 113, 78, 59, 60, 62, 110, 1805, 1375, 1341, ! 1127, 3, 4, 5, 1511, 110, 1133, 73, 1328, 1329, ! 1132, 611, 1354, 62, 63, 110, 110, 83, 67, 1141, ! 1366, 1341, 110, 78, 78, 78, 105, 106, 107, 1375, ! 1722, 78, 110, 1375, 1354, 110, 3, 4, 5, 6, ! 61, 65, 31, 32, 1375, 34, 65, 62, 50, 1171, ! 110, 1173, 3, 4, 5, 1375, 65, 59, 60, 1181, ! 4, 5, 1375, 113, 110, 9, 1296, 110, 1298, 669, ! 1300, 60, 1194, 62, 1196, 675, 43, 677, 678, 68, ! 111, 83, 110, 110, 73, 1130, 1131, 1132, 32, 96, ! 113, 1468, 59, 60, 1139, 1140, 1141, 1612, 91, 1614, ! 1442, 1613, 77, 49, 110, 56, 110, 110, 59, 60, ! 1375, 711, 56, 113, 885, 59, 60, 1463, 110, 110, ! 1247, 721, 1468, 110, 1479, 1170, 1468, 111, 1255, 73, ! 65, 110, 3, 4, 5, 111, 63, 1468, 61, 83, ! 3, 4, 5, 1265, 200, 201, 1358, 110, 1468, 67, ! 110, 95, 1364, 1365, 110, 1468, 1368, 1369, 147, 95, ! 1372, 1503, 1366, 152, 1237, 95, 155, 156, 157, 1511, ! 1722, 95, 111, 3, 4, 5, 95, 1304, 110, 50, ! 113, 1501, 1502, 1503, 110, 8, 1313, 1309, 59, 60, ! 34, 1511, 113, 182, 1424, 110, 59, 60, 61, 188, ! 110, 1707, 1719, 1468, 879, 110, 110, 1551, 110, 1551, ! 98, 200, 201, 202, 110, 1557, 3, 4, 5, 1341, ! 1551, 1551, 62, 1578, 110, 62, 56, 216, 903, 59, ! 60, 1551, 1354, 65, 909, 1439, 225, 1557, 1551, 56, ! 1710, 1711, 110, 110, 1599, 1600, 110, 65, 3, 4, ! 5, 113, 1612, 1375, 1614, 833, 49, 110, 110, 1463, ! 110, 110, 67, 1605, 110, 254, 34, 110, 110, 56, ! 95, 1613, 59, 60, 1605, 1605, 3, 4, 5, 6, ! 269, 1787, 110, 110, 1790, 1605, 1551, 865, 866, 113, ! 110, 110, 1605, 65, 65, 873, 3, 4, 5, 6, ! 1655, 1656, 63, 1809, 59, 60, 1812, 62, 9, 1614, ! 63, 63, 156, 157, 1526, 1527, 43, 1390, 1391, 1392, ! 1393, 310, 311, 50, 17, 111, 110, 110, 1401, 61, ! 95, 95, 59, 60, 63, 63, 43, 3, 4, 5, ! 1605, 67, 56, 1018, 1686, 1020, 1468, 95, 104, 1704, ! 1692, 1693, 59, 60, 343, 109, 83, 18, 202, 63, ! 56, 1692, 1692, 1723, 91, 110, 1686, 3, 4, 5, ! 1712, 63, 1692, 1693, 363, 364, 110, 1504, 1505, 1692, ! 63, 1503, 63, 1727, 91, 1727, 63, 987, 62, 1511, ! 1710, 1711, 95, 59, 60, 67, 1727, 1727, 110, 63, ! 113, 1001, 110, 1003, 63, 1005, 12, 1727, 110, 1751, ! 95, 3, 4, 5, 1727, 63, 63, 1722, 1773, 63, ! 56, 110, 63, 59, 60, 61, 0, 1692, 0, 1551, ! 0, 1751, 1559, 176, 2, 1557, 36, 426, 427, 1669, ! 1656, 3, 4, 5, 6, 1092, 3, 4, 5, 1669, ! 7, 8, 9, 776, 510, 444, 1668, 513, 447, 515, ! 516, 171, 1727, 1718, 453, 454, 455, 59, 60, 175, ! 459, 527, 467, 1179, 3, 4, 5, 1294, 1551, 1079, ! 98, 43, 144, 1605, 1641, 3, 4, 5, 50, 1077, ! 1710, 1711, 1712, 734, 823, 1336, 1164, 59, 60, 343, ! 313, 1375, 59, 60, 4, 494, 1179, 496, 497, 3, ! 4, 5, 6, 1465, 736, 1048, 679, 1117, 1193, 207, ! 1195, 510, 360, 128, 513, 1598, 515, 516, 517, 91, ! 59, 60, 521, 1745, 1546, 1483, 36, 636, 527, 1727, ! 529, 59, 60, 532, 1742, 45, 1739, 1789, 851, 43, ! 1128, 1129, 1442, -1, -1, -1, 50, -1, 58, 1137, ! 60, -1, 551, 552, 1686, 59, 60, -1, -1, -1, ! 1692, 1693, -1, -1, -1, -1, 1347, 1348, 1651, 4, ! 5, -1, 1257, -1, 9, -1, -1, -1, -1, 83, ! -1, 58, -1, -1, -1, 4, 5, 91, -1, -1, ! 9, -1, -1, 1374, -1, 1727, -1, 32, 1379, -1, ! 454, 455, -1, 1686, 603, -1, -1, -1, -1, 1692, ! 1693, -1, -1, 612, 1669, 614, 695, 696, -1, 1751, ! -1, 56, -1, -1, 59, 60, -1, 7, 8, 9, ! 140, 630, 631, 632, -1, 15, 146, 56, 73, -1, ! 59, 60, -1, -1, 1727, -1, 645, -1, 83, -1, ! 3, 4, 5, -1, 73, 1710, 1711, 1712, 38, -1, ! 95, 171, 516, 517, 83, 175, -1, 47, 1751, -1, ! -1, 181, 182, -1, -1, -1, -1, 1458, 1459, -1, ! 1461, 1462, 1765, 1464, -1, -1, 1296, -1, 1298, -1, ! 1300, 3, 4, 5, 6, -1, 695, 696, 697, 3, ! 4, 5, 1785, -1, 181, 704, 59, 60, 3, 4, ! 5, -1, 1795, -1, -1, -1, -1, 1305, 1306, 229, ! 32, -1, -1, -1, 1312, 3, 4, 5, -1, 728, ! -1, 43, 1417, 1816, -1, 1516, 1517, 49, -1, -1, ! 3, 4, 5, -1, 56, -1, 50, 59, 60, -1, ! -1, -1, 229, 832, 833, 59, 60, -1, 612, -1, ! 614, 73, -1, 1448, 59, 60, 832, 833, -1, 1454, ! -1, 83, 3, 4, 5, 6, -1, 631, 632, 91, ! -1, 59, 60, 95, 96, 1470, 1471, 50, 1569, 1570, ! 1571, 645, -1, 792, 793, -1, 59, 60, -1, 865, ! 866, 867, 868, -1, -1, -1, -1, 873, 1493, 40, ! 41, -1, 43, -1, 1424, 3, 4, 5, 6, 83, ! 84, 85, 86, 87, -1, 56, -1, -1, 59, 60, ! -1, -1, -1, 832, 833, 834, -1, 3, 4, 5, ! -1, 7, -1, 842, -1, 1626, 1627, -1, -1, -1, ! 704, -1, 1537, 1538, -1, 43, -1, 856, -1, -1, ! 91, -1, 50, -1, 374, -1, 865, 866, 867, 868, ! 869, 59, 60, 39, 873, 1560, 1561, 1, 1563, 3, ! 4, 5, 6, 7, 8, 9, 885, -1, -1, -1, ! 56, 15, -1, 59, 60, 83, 81, 82, 83, 84, ! 85, 86, 87, 91, -1, 29, -1, 31, 32, 33, ! -1, -1, -1, -1, 38, 425, 3, 4, 5, 43, ! 7, 8, 9, 47, 434, -1, 50, -1, 1007, -1, ! -1, 1010, 56, 932, -1, 59, 60, 3, 4, 5, ! 6, -1, 1021, 9, -1, 32, 1025, 1026, 425, 73, ! -1, 38, -1, -1, -1, -1, -1, 467, -1, 83, ! -1, -1, -1, -1, -1, -1, 32, 91, -1, -1, ! -1, 95, 59, 60, -1, 99, -1, 43, 4, 5, ! 834, -1, 1763, 493, 494, 495, 496, -1, 842, -1, ! 56, 501, 1677, 59, 60, -1, -1, -1, -1, 509, ! -1, -1, 856, -1, -1, -1, 32, 73, 1007, -1, ! -1, 1010, 522, -1, 868, 869, 493, 83, 495, 496, ! 530, -1, 1021, 49, -1, 91, 1025, 1026, 1027, 95, ! 56, -1, 509, 59, 60, -1, -1, -1, -1, -1, ! -1, 518, -1, -1, -1, 522, -1, 73, -1, 1128, ! 1129, 1130, 1131, 530, 564, -1, -1, 83, 1137, -1, ! 1139, 1140, 1128, 1129, 1130, 1131, -1, -1, -1, 95, ! 96, 1137, -1, 1139, 1140, 79, 80, 81, 82, 83, ! 84, 85, 86, 87, -1, 1151, 1152, 1153, -1, -1, ! -1, -1, 1091, -1, 278, 279, 280, 281, 282, 283, ! -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, ! 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, ! 304, 305, 306, -1, 308, -1, -1, -1, -1, 1128, ! 1129, 1130, 1131, 1132, 3, 4, 5, 6, 1137, -1, ! 1139, 1140, 1141, 3, 4, 5, 6, -1, -1, -1, ! -1, -1, 1151, 1152, 1153, -1, -1, 7, 8, 9, ! -1, -1, 7, 8, 9, 15, -1, -1, -1, -1, ! 15, 1170, 1026, 1027, 43, -1, -1, -1, -1, -1, ! 1179, 50, 32, 43, 1263, 1264, -1, 32, 38, 49, ! 59, 60, -1, 38, -1, -1, 56, 47, -1, 59, ! 60, -1, 47, 3, 4, 5, 6, 7, 8, 9, ! -1, -1, -1, 73, 83, 15, -1, 727, 63, -1, ! -1, -1, 91, 83, -1, -1, 1305, 1306, 1307, 1308, ! -1, 91, 32, 1312, -1, 95, 96, -1, 38, 1305, ! 1306, 1307, 1308, 43, -1, -1, 1312, 47, -1, 49, ! 727, -1, -1, -1, -1, -1, 56, -1, -1, 59, ! 60, -1, 1328, 1329, 1263, 1264, 1265, -1, -1, -1, ! -1, -1, -1, 73, -1, -1, -1, 1131, 1132, -1, ! -1, -1, 792, 83, -1, -1, 1140, 1141, -1, -1, ! -1, 91, -1, -1, -1, 95, 96, 3, 4, 5, ! 6, -1, -1, 9, -1, -1, 1305, 1306, 1307, 1308, ! 1309, -1, -1, 1312, -1, 792, 1170, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, 32, -1, -1, 1328, ! 1329, 1330, -1, -1, -1, -1, -1, 43, -1, 3, ! 4, 5, 6, 49, -1, 9, -1, -1, 1347, 1348, ! 56, 861, -1, 59, 60, -1, -1, -1, 1437, 1438, ! -1, 1440, -1, -1, -1, -1, -1, 73, 32, -1, ! 880, 1437, 1438, -1, 1440, 1374, -1, 83, -1, 43, ! 1379, -1, -1, -1, 861, 91, -1, 864, 4, 95, ! 96, 901, 56, -1, 578, 59, 60, -1, 14, -1, ! -1, -1, -1, 880, -1, -1, -1, -1, 24, 73, ! 1264, 1265, -1, -1, -1, 31, 32, 601, 34, 83, ! 36, -1, 1501, 1502, -1, 609, -1, 91, -1, 45, ! -1, 95, -1, -1, -1, 1501, 1502, -1, 1437, 1438, ! -1, 1440, 58, -1, 60, 81, 82, 83, 84, 85, ! 86, 87, 68, -1, 1308, 1309, -1, 73, -1, 1458, ! 1459, -1, 1461, 1462, -1, 1464, -1, -1, 84, -1, ! 86, -1, -1, -1, -1, 91, -1, -1, 94, -1, ! 96, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! -1, 13, -1, 15, 110, -1, -1, -1, 4, 5, ! -1, -1, 1501, 1502, 1503, -1, -1, 29, -1, 31, ! 32, -1, -1, -1, -1, -1, 38, 1516, 1517, -1, ! -1, 43, 138, -1, 140, 47, 142, 49, 144, -1, ! 146, 147, -1, -1, 56, 151, 152, 59, 60, 155, ! 156, 157, -1, 49, -1, -1, -1, 4, 5, -1, ! 56, 73, 9, 59, 60, 171, 7, 8, 9, 175, ! -1, 83, -1, -1, 15, 181, 182, 73, -1, 91, ! 1569, 1570, 1571, 95, 96, 32, -1, 83, -1, -1, ! -1, 32, -1, -1, 200, 201, 202, 38, -1, 95, ! 96, -1, 49, -1, -1, -1, 47, -1, -1, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, ! -1, -1, 63, 229, 1613, 1614, 73, 1127, -1, 3, ! 4, 5, 6, -1, -1, -1, 83, 1626, 1627, -1, ! 246, -1, -1, -1, 3, 4, 5, 6, 95, 96, ! 256, -1, -1, -1, 1710, 1711, -1, -1, -1, -1, ! 1127, -1, -1, 269, -1, -1, 1133, -1, -1, 43, ! -1, 1171, -1, 1173, -1, -1, 50, -1, 1178, 1179, ! 1669, 1181, -1, -1, 43, 59, 60, -1, -1, -1, ! 3, 4, 5, 6, 7, 8, 9, 56, -1, -1, ! 59, 60, 15, -1, 63, 311, 312, -1, -1, 83, ! -1, 1178, -1, -1, 73, -1, 29, 91, 31, 32, ! 33, 1710, 1711, 1712, 83, 38, -1, -1, -1, -1, ! 43, -1, 91, 1722, 47, -1, 95, 50, -1, -1, ! -1, 915, 916, 56, -1, -1, 59, 60, -1, -1, ! 356, -1, -1, -1, 360, -1, 362, 363, 364, -1, ! 73, -1, -1, -1, -1, -1, -1, 373, 374, -1, ! 83, -1, -1, -1, 1763, -1, -1, -1, 91, -1, ! -1, -1, 95, -1, -1, -1, 99, -1, -1, -1, ! -1, -1, 3, 4, 5, 6, -1, -1, -1, -1, ! -1, -1, 4, 5, 1304, -1, -1, 413, -1, -1, ! -1, -1, -1, 1313, -1, -1, -1, 423, -1, 425, ! 426, -1, -1, -1, -1, 1669, 432, -1, 434, -1, ! 32, -1, 43, -1, -1, -1, -1, 1304, 444, 50, ! -1, 447, -1, -1, -1, 1345, 1313, 49, 59, 60, ! -1, -1, -1, 459, 56, -1, -1, 59, 60, -1, ! -1, 467, -1, -1, 1331, 1332, -1, 1711, 1712, -1, ! -1, 73, 83, -1, -1, 1375, -1, -1, 1345, -1, ! 91, 83, 3, 4, 5, 6, -1, 493, 494, 495, ! 496, 497, -1, 95, 96, 501, -1, 3, 4, 5, ! 6, -1, -1, 509, 510, -1, -1, 513, -1, 515, ! 516, 517, 518, -1, -1, -1, 522, -1, -1, -1, ! -1, 527, 43, -1, 530, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 540, 56, -1, 43, 59, 60, ! -1, 1, 63, 3, 4, 5, 6, 7, 8, 9, ! 56, -1, 73, 59, 60, 15, -1, -1, 564, -1, ! 1460, -1, 83, -1, -1, 1465, -1, -1, 1468, 29, ! 91, 31, 32, 33, 95, -1, -1, 1444, 38, 39, ! -1, -1, -1, 43, -1, 91, -1, 47, 48, -1, ! 50, -1, -1, 1460, -1, -1, 56, -1, -1, 59, ! 60, -1, 608, 63, 610, 65, -1, -1, -1, -1, ! -1, -1, -1, 73, 620, 621, 622, 623, -1, -1, ! -1, -1, -1, 83, -1, -1, -1, 3, 4, 5, ! 6, 91, -1, -1, -1, 95, 642, 1504, 1505, -1, ! 3, 4, 5, 6, -1, -1, 9, 74, 75, 76, ! 77, 111, 79, 80, 81, 82, 83, 84, 85, 86, ! 87, 3, 4, 5, 6, -1, -1, 43, -1, 32, ! -1, -1, -1, 679, 50, 681, -1, -1, -1, -1, ! 43, -1, -1, 59, 60, -1, 49, 693, -1, 695, ! 696, 697, 1559, 56, -1, -1, 59, 60, 704, -1, ! -1, 43, 708, -1, 3, 4, 5, 6, 50, -1, ! 73, -1, 1612, 1613, 1614, 91, -1, 59, 60, -1, ! 83, 727, -1, -1, -1, -1, -1, 65, 91, -1, ! -1, -1, 95, 96, -1, -1, -1, -1, -1, -1, ! -1, 83, -1, -1, 43, 1612, -1, 1614, 1, 91, ! 3, 4, 5, 6, 7, 8, 9, 56, -1, -1, ! 59, 60, 15, -1, 63, -1, 65, -1, -1, -1, ! 776, -1, 778, -1, 73, 28, 29, 783, 31, 32, ! 33, -1, -1, -1, 83, 38, 792, 793, -1, -1, ! 43, -1, 91, 46, 47, 48, 95, 50, -1, -1, ! -1, -1, -1, 56, 57, -1, 59, 60, 146, -1, ! 63, -1, 3, 4, 5, 6, -1, -1, -1, -1, ! 73, -1, -1, 1723, 162, -1, 832, 833, 834, -1, ! 83, -1, -1, -1, 840, -1, 842, -1, 91, -1, ! -1, -1, 95, -1, -1, -1, 99, -1, -1, 40, ! 41, -1, 43, -1, -1, 861, 1723, -1, 864, 865, ! 866, 867, 868, 869, -1, 56, -1, 873, 59, 60, ! -1, -1, -1, -1, 880, -1, -1, -1, -1, 1, ! -1, 219, 4, 5, -1, -1, 8, 9, -1, 227, ! -1, -1, -1, 15, -1, 901, -1, -1, 904, 905, ! 906, -1, 908, -1, 910, -1, 244, 29, -1, 31, ! 32, -1, -1, 919, 920, 921, 38, 255, 40, 41, ! -1, -1, -1, -1, -1, 47, 932, 49, -1, -1, ! -1, -1, -1, -1, 56, -1, -1, 59, 60, -1, ! 62, -1, -1, -1, 66, 67, 68, 69, 70, 71, ! 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ! 82, 83, 84, 85, 86, -1, -1, 89, 90, 91, ! -1, 93, -1, -1, 96, -1, -1, 983, 4, 5, ! -1, -1, 1, 9, 3, 4, 5, 6, -1, 8, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 1006, 1007, -1, -1, 1010, -1, 32, -1, -1, -1, ! -1, 1017, -1, -1, -1, 1021, -1, 1023, -1, 1025, ! 1026, 1027, -1, 49, 43, 1031, -1, 1033, -1, -1, ! 56, 50, -1, 59, 60, -1, -1, 56, -1, -1, ! 59, 60, -1, -1, -1, -1, -1, 73, 1, -1, ! 3, 4, 5, 6, 7, 8, 9, 83, -1, -1, ! -1, -1, 15, -1, -1, -1, -1, -1, -1, 95, ! 96, -1, 91, -1, -1, -1, 29, -1, 31, 32, ! 33, -1, -1, -1, -1, 38, 1092, -1, 1094, 1095, ! 43, -1, -1, -1, 47, 48, 434, 50, -1, -1, ! -1, -1, -1, 56, -1, 443, 59, 60, -1, -1, ! 63, -1, 65, -1, -1, -1, -1, -1, -1, -1, ! 73, 1127, 1128, 1129, 1130, 1131, 1132, 1133, -1, -1, ! 83, 1137, -1, 1139, 1140, 1141, -1, 475, 91, 1145, ! -1, -1, 95, -1, 1150, 1151, 1152, 1153, -1, -1, ! -1, -1, 3, 4, 5, 6, -1, -1, 9, -1, ! -1, 1167, -1, -1, 1170, 1171, -1, 1173, -1, -1, ! -1, 509, 1178, 1179, -1, 1181, -1, -1, -1, -1, ! 518, 32, -1, -1, -1, -1, -1, -1, 1194, -1, ! 1196, -1, 43, -1, 3, 4, 5, 6, 49, 537, ! 1206, -1, -1, -1, -1, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, 3, 4, 5, 6, -1, ! -1, -1, 73, 32, -1, -1, 564, 1233, 1234, -1, ! 1236, -1, 83, -1, 43, 1241, -1, -1, -1, -1, ! 91, 1247, -1, -1, 95, 96, -1, 56, -1, 1255, ! 59, 60, 40, 41, -1, 43, -1, 1263, 1264, 1265, ! -1, -1, -1, -1, 73, -1, -1, -1, 56, -1, ! -1, 59, 60, -1, 83, 3, 4, 5, 6, 7, ! 8, 9, 91, -1, -1, -1, 95, 15, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 1304, 1305, ! 1306, 1307, 1308, 1309, 32, -1, 1312, 1313, -1, -1, ! 38, -1, -1, -1, -1, 43, -1, -1, -1, 47, ! -1, 49, 1328, 1329, 1330, 1331, 1332, -1, 56, -1, ! -1, 59, 60, -1, -1, 1341, -1, -1, -1, 1345, ! -1, -1, -1, -1, -1, 73, -1, -1, 1354, 3, ! 4, 5, 6, -1, -1, 83, -1, -1, -1, -1, ! -1, 1367, -1, 91, -1, -1, 4, 95, 96, 1375, ! -1, -1, -1, -1, 91, -1, 14, 94, 32, 96, ! -1, -1, -1, -1, -1, 23, 24, -1, -1, 43, ! -1, -1, -1, 31, 32, 49, 34, -1, 36, -1, ! -1, -1, 56, -1, -1, 59, 60, 45, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, ! 58, -1, 60, -1, -1, 142, -1, 144, -1, 83, ! 68, 1437, 1438, -1, 1440, 73, 1442, 91, 1444, -1, ! -1, 95, 96, -1, 3, 4, 5, 6, 86, -1, ! -1, -1, -1, 91, 1460, -1, 94, 1, 96, 1465, ! 4, 5, 1468, -1, 8, 9, 73, 74, 75, 76, ! 77, 15, 79, 80, 81, 82, 83, 84, 85, 86, ! 87, -1, -1, -1, 43, 29, -1, 31, 32, -1, ! -1, 50, -1, -1, 38, 1501, 1502, 1503, 1504, 1505, ! 59, 60, 140, 47, 142, 1511, 144, -1, 146, 147, ! -1, -1, 56, -1, 152, 59, 60, 155, 156, 157, ! -1, -1, -1, 861, 83, -1, 864, -1, -1, -1, ! -1, -1, 91, 171, -1, -1, -1, 175, -1, -1, ! -1, -1, 880, 181, 182, 4, 5, -1, 7, 8, ! 9, 1557, -1, 1559, 13, -1, 15, -1, -1, -1, ! -1, -1, 200, 201, 202, -1, -1, -1, -1, -1, ! 29, -1, 31, 32, -1, -1, -1, -1, -1, 38, ! -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, ! 49, 229, -1, -1, -1, -1, -1, 56, -1, -1, ! 59, 60, -1, 320, 321, -1, 1612, 1613, 1614, -1, ! -1, -1, -1, -1, 73, -1, -1, 334, -1, 336, ! -1, -1, 339, -1, 83, 342, -1, -1, 345, -1, ! -1, 269, 349, -1, -1, -1, 95, 96, -1, 1, ! 357, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! -1, -1, -1, 15, -1, -1, 373, -1, -1, -1, ! -1, -1, -1, 1669, -1, -1, -1, 29, 1006, 31, ! 32, 33, -1, 311, 312, -1, 38, 39, -1, -1, ! -1, 43, -1, -1, -1, 47, 48, -1, 50, -1, ! -1, -1, -1, 1031, 56, -1, -1, 59, 60, -1, ! -1, 63, -1, 65, 1710, 1711, 1712, -1, -1, -1, ! -1, 73, -1, -1, -1, 432, -1, 1723, 356, -1, ! -1, 83, 360, -1, 362, 363, 364, -1, -1, 91, ! -1, 369, -1, 95, -1, 373, 374, -1, -1, -1, ! -1, -1, -1, -1, 3, 4, 5, 6, -1, 111, ! 9, 389, 70, 71, 72, 73, 74, 75, 76, 77, ! 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ! -1, -1, -1, 32, -1, 413, -1, -1, -1, -1, ! -1, -1, -1, -1, 43, 423, -1, 425, 426, 1127, ! 49, -1, -1, -1, 432, 1133, 434, 56, -1, -1, ! 59, 60, -1, -1, -1, -1, 444, -1, -1, 447, ! -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, 459, -1, 540, 83, -1, -1, -1, -1, 467, ! -1, -1, 91, -1, -1, -1, 95, 96, -1, 4, ! 5, -1, 7, 8, 9, -1, -1, -1, -1, -1, ! 15, -1, -1, -1, -1, 493, 494, 495, 496, 497, ! -1, -1, -1, 501, 29, -1, 31, 32, -1, -1, ! -1, 509, 510, 38, -1, 513, -1, 515, 516, 517, ! 518, -1, 47, -1, 522, 50, -1, -1, -1, 527, ! -1, 56, 530, 610, 59, 60, -1, -1, -1, -1, ! -1, -1, 540, -1, -1, -1, -1, -1, -1, 1247, ! -1, 549, -1, 630, 631, -1, -1, 1255, -1, -1, ! -1, -1, -1, -1, -1, 642, 564, -1, -1, -1, ! 647, 648, -1, 650, 651, 652, 653, 654, 655, 656, ! 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, ! 667, -1, -1, -1, -1, -1, -1, -1, -1, 3, ! 4, 5, 6, -1, -1, 9, 1304, -1, -1, -1, ! -1, -1, 610, -1, -1, 1313, -1, -1, -1, -1, ! -1, -1, 620, 621, 622, 623, -1, -1, 32, -1, ! -1, -1, -1, 1331, 1332, -1, -1, -1, -1, 43, ! -1, -1, -1, -1, 642, 49, -1, -1, -1, -1, ! -1, -1, 56, -1, -1, 59, 60, -1, 1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, -1, 73, ! -1, -1, 15, -1, -1, -1, -1, -1, -1, 83, ! -1, 679, -1, 681, -1, -1, 29, 91, 31, 32, ! 33, 95, 96, -1, -1, 38, 39, 695, 696, 697, ! 43, 778, -1, -1, 47, 48, 704, 50, -1, -1, ! -1, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! 63, 719, 65, -1, -1, -1, -1, -1, -1, 727, 73, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! 83, 13, -1, 15, -1, -1, 1444, -1, 91, -1, ! -1, -1, 95, -1, -1, -1, -1, 29, -1, 31, ! 32, -1, -1, -1, -1, -1, 38, -1, 111, -1, ! -1, 43, -1, -1, -1, 47, -1, 49, 776, -1, ! 778, -1, -1, -1, 56, -1, 784, 59, 60, -1, ! -1, -1, -1, -1, 792, 793, -1, -1, -1, -1, ! -1, 73, -1, -1, 4, 5, 1504, 1505, -1, 9, ! -1, 83, -1, -1, -1, -1, -1, -1, -1, 91, ! 818, -1, -1, 95, 96, -1, -1, -1, 905, 906, ! -1, 908, 32, -1, 832, 833, 834, -1, -1, -1, ! -1, -1, -1, -1, 842, 3, 4, 5, 6, 49, ! -1, 9, -1, -1, -1, -1, 56, -1, -1, 59, ! 60, 1559, -1, 861, -1, -1, 864, 865, 866, 867, ! 868, 869, -1, 73, 32, 873, -1, -1, -1, -1, ! -1, -1, 880, 83, -1, 43, -1, 3, 4, 5, ! 6, 49, -1, 9, -1, 95, 96, -1, 56, -1, ! -1, 59, 60, 901, -1, -1, 904, 905, 906, -1, ! 908, -1, 910, -1, -1, 73, 32, -1, 995, -1, ! -1, 919, 920, 921, -1, 83, -1, 43, -1, -1, ! -1, -1, -1, 91, 932, -1, -1, 95, 96, -1, ! 56, -1, -1, 59, 60, -1, -1, -1, 1025, 1026, ! -1, -1, -1, -1, -1, -1, -1, 73, 1, -1, ! 3, 4, 5, 6, 7, 8, 9, 83, -1, -1, ! -1, -1, 15, -1, -1, 91, -1, -1, -1, 95, ! -1, -1, -1, -1, -1, 983, 29, -1, 31, 32, ! 33, -1, -1, -1, -1, 38, 39, -1, 4, 5, ! 43, -1, -1, 9, 47, 48, -1, 50, 1006, 1007, ! -1, -1, 1010, 56, -1, -1, 59, 60, 1095, 1017, ! 63, 1098, 65, 1021, -1, 1023, 32, 1025, 1026, 1027, ! 73, -1, -1, 1031, -1, 1033, -1, -1, -1, -1, ! 83, -1, -1, 49, -1, -1, -1, -1, 91, -1, ! 56, -1, 95, 59, 60, -1, -1, -1, 3, 4, ! 5, 6, 1139, 1140, -1, -1, -1, 73, 111, 70, ! 71, 72, 73, 74, 75, 76, 77, 83, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 32, -1, 95, ! 96, -1, -1, -1, 1092, -1, 1094, 1095, 43, -1, ! -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, ! -1, 56, -1, -1, 59, 60, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, -1, -1, -1, 73, 1127, ! 1128, 1129, 1130, 1131, 1132, 1133, -1, -1, 83, 1137, ! -1, 1139, 1140, 1141, 1221, -1, 91, 1145, -1, -1, ! 95, 96, 1150, 1151, 1152, 1153, -1, -1, -1, -1, ! -1, 43, 1239, -1, 1241, -1, 1164, -1, -1, 1167, ! -1, -1, 1170, 1171, 56, 1173, -1, 59, 60, -1, ! 1178, 1179, -1, 1181, -1, -1, -1, -1, -1, -1, ! -1, 73, -1, -1, -1, -1, 1194, -1, 1196, 4, ! 5, 83, -1, 8, 9, -1, -1, -1, 1206, 91, ! 15, -1, -1, 95, -1, -1, -1, -1, 4, -1, ! -1, -1, -1, -1, 29, -1, 31, 32, -1, -1, ! -1, -1, -1, 38, -1, 1233, 1234, -1, 1236, -1, ! -1, -1, 47, 1241, 49, 31, 32, -1, 34, 1247, ! 36, 56, -1, -1, 59, 60, -1, 1255, -1, 45, ! -1, -1, -1, -1, -1, 1263, 1264, 1265, 73, -1, ! -1, -1, 58, -1, 60, 75, 76, 77, 83, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, -1, ! 95, 96, -1, -1, -1, 81, 1294, -1, 84, -1, ! -1, -1, -1, -1, -1, -1, 1304, 1305, 1306, 1307, ! 1308, 1309, -1, -1, 1312, 1313, 74, 75, 76, 77, ! 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ! 1328, 1329, 1330, 1331, 1332, -1, -1, -1, 1336, -1, ! -1, -1, -1, 1341, -1, -1, -1, 1345, -1, -1, ! -1, 137, 138, -1, 140, -1, 1354, -1, -1, -1, ! 146, 147, -1, -1, 150, 151, 152, -1, -1, 155, ! 156, 157, -1, -1, -1, -1, 162, 1375, -1, -1, ! -1, -1, -1, -1, -1, 171, -1, -1, -1, 175, ! -1, -1, -1, -1, -1, 181, 182, -1, -1, 1, ! -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! -1, -1, -1, 15, 200, 201, 202, -1, -1, -1, ! -1, -1, -1, -1, 210, -1, -1, 29, -1, 31, ! 32, -1, -1, -1, -1, -1, 38, -1, -1, 1437, ! 1438, 43, 1440, 229, 1442, 47, 1444, -1, 50, -1, ! -1, -1, -1, -1, 56, -1, -1, 59, 60, -1, ! -1, 63, 1460, -1, -1, -1, -1, 1465, -1, -1, ! 1468, 73, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 83, -1, 269, -1, -1, -1, -1, -1, 91, ! 276, 76, 77, 95, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, 1501, 1502, 1503, 1504, 1505, -1, -1, ! -1, -1, -1, 1511, -1, -1, -1, -1, -1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, 1605, -1, ! 13, -1, 15, 75, 76, 77, 78, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, 29, -1, 31, 32, ! 83, -1, -1, -1, -1, 38, -1, 343, -1, 1557, ! 43, 1559, -1, -1, 47, -1, 49, 3, 4, 5, ! 6, -1, -1, 56, 360, -1, 59, 60, -1, -1, ! -1, -1, 368, -1, -1, -1, -1, -1, 374, -1, ! 73, -1, -1, -1, -1, -1, 32, -1, -1, -1, ! 83, -1, 388, 1601, -1, -1, -1, 43, 91, -1, ! -1, -1, 95, 96, 1612, 1613, 1614, -1, -1, -1, ! 56, -1, -1, 59, 60, -1, -1, 413, -1, -1, ! -1, -1, 165, 1710, 1711, -1, -1, 73, -1, 425, ! -1, -1, -1, -1, -1, -1, -1, 83, 434, -1, ! 436, -1, -1, -1, -1, 91, -1, 443, 444, 95, ! -1, 447, -1, -1, -1, 198, -1, 453, 454, 455, ! -1, 1669, -1, 459, -1, -1, -1, -1, 211, -1, ! -1, 467, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, ! -1, -1, -1, -1, -1, 15, -1, 493, 494, 495, ! 496, -1, 1710, 1711, 1712, 501, -1, -1, -1, 29, ! -1, 31, 32, 509, 510, 1723, -1, 513, 38, 515, ! 516, 517, 518, 43, -1, -1, 522, 47, -1, 49, ! -1, 527, -1, -1, 530, -1, 56, -1, -1, 59, ! 60, 3, 4, 5, 6, -1, -1, 9, -1, -1, ! -1, -1, -1, 73, -1, -1, -1, -1, -1, 4, ! -1, -1, -1, 83, -1, -1, -1, -1, 564, -1, ! 32, 91, -1, -1, -1, 95, 96, -1, -1, -1, ! -1, 43, -1, -1, -1, -1, 31, 32, -1, 34, ! -1, 36, -1, -1, 56, -1, -1, 59, 60, -1, ! 45, -1, 3, 4, 5, 6, 7, 8, 9, -1, ! -1, 73, -1, 58, 15, 60, 612, -1, 614, -1, ! -1, 83, -1, -1, -1, -1, -1, -1, 29, 91, ! 31, 32, -1, 95, 630, 631, 632, 38, -1, 84, ! -1, -1, 43, -1, -1, -1, 47, -1, -1, 645, ! -1, -1, -1, -1, -1, 56, -1, -1, 59, 60, ! -1, -1, 63, -1, -1, 71, 72, 73, 74, 75, ! 76, 77, 73, 79, 80, 81, 82, 83, 84, 85, ! 86, 87, 83, -1, -1, -1, -1, -1, -1, -1, ! 91, -1, -1, -1, 95, 140, 692, -1, -1, -1, ! -1, 146, 147, -1, -1, -1, 151, 152, 704, -1, ! 155, 156, 157, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 4, 5, -1, 171, -1, 9, -1, ! 175, 727, -1, -1, -1, -1, 181, 182, 76, 77, ! 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ! -1, 32, -1, -1, -1, 200, 201, 202, -1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, 49, -1, ! 13, -1, 15, -1, -1, 56, -1, 520, 59, 60, ! 776, -1, 525, -1, 229, -1, 29, 783, 31, 32, ! -1, -1, 73, -1, -1, 38, 792, -1, -1, -1, ! 43, -1, 83, -1, 47, -1, -1, -1, -1, -1, ! -1, 554, -1, 56, 95, 96, 59, 60, 561, -1, ! -1, -1, -1, -1, 269, -1, -1, -1, -1, -1, ! 73, -1, -1, -1, -1, -1, 832, 833, 834, -1, ! 83, -1, -1, 839, 840, -1, 842, -1, 91, -1, ! -1, -1, 95, 3, 4, 5, 6, -1, -1, 9, ! 856, 604, 605, -1, 607, 861, -1, -1, 864, 865, ! 866, 867, 868, 869, -1, -1, -1, 873, -1, -1, ! -1, -1, 32, -1, 880, -1, 3, 4, 5, 6, ! 7, 8, 9, 43, -1, -1, -1, -1, 15, -1, ! -1, -1, -1, -1, -1, 901, 56, -1, -1, 59, ! 60, -1, 29, -1, 31, 32, -1, -1, -1, -1, ! -1, 38, -1, 73, 369, -1, 43, 4, 5, 374, ! 47, 8, 9, 83, -1, -1, -1, -1, 15, 56, ! -1, 91, 59, 60, 389, 95, -1, -1, 65, -1, ! -1, -1, -1, -1, -1, 32, 73, 700, 701, -1, ! -1, 38, 705, -1, -1, -1, 83, -1, -1, -1, ! 47, -1, 49, -1, 91, -1, -1, -1, 95, 56, ! 425, -1, 59, 60, -1, -1, -1, -1, -1, 434, ! -1, -1, -1, -1, -1, -1, 73, -1, -1, 444, ! -1, -1, 447, -1, -1, -1, 83, -1, -1, -1, ! -1, -1, -1, -1, 459, -1, -1, -1, 95, 96, ! -1, -1, 467, -1, -1, -1, -1, -1, -1, 1025, ! 1026, 1027, -1, -1, -1, 1031, 1032, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 493, 494, ! 495, 496, -1, -1, -1, -1, 501, -1, -1, -1, ! -1, -1, -1, -1, 509, 510, -1, -1, 513, -1, ! 515, 516, 517, -1, -1, -1, -1, 522, -1, -1, ! -1, -1, 527, -1, -1, 530, -1, -1, -1, -1, ! -1, -1, -1, 836, 34, 4, 5, -1, -1, 8, ! 9, -1, -1, -1, -1, -1, 15, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 58, 564, ! 29, -1, 31, 32, -1, -1, -1, -1, 871, 38, ! -1, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 47, 1135, ! -1, 1137, 1138, 1139, 1140, 1141, -1, 56, -1, 1145, ! 59, 60, 3, 4, 5, 6, 7, 8, 9, -1, ! -1, -1, -1, -1, 15, -1, -1, -1, 911, -1, ! 913, -1, -1, -1, 1170, 1171, -1, 1173, 29, -1, ! 31, 32, 1178, 1179, -1, 1181, 95, 38, -1, -1, ! -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, ! -1, -1, 4, 5, -1, 56, 8, 9, 59, 60, ! -1, -1, 63, 15, -1, 155, 156, 157, -1, -1, ! -1, -1, 73, -1, -1, -1, -1, 29, -1, 31, ! 32, -1, 83, -1, -1, -1, 38, -1, -1, -1, ! 91, 181, -1, -1, 95, 47, 989, 990, 693, 992, ! -1, -1, -1, -1, 56, -1, -1, 59, 60, 61, ! 200, 201, 202, -1, -1, -1, -1, 1263, 1264, 1265, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 1022, ! -1, -1, 727, -1, -1, -1, 4, 5, -1, 229, ! 8, 9, -1, 95, -1, -1, -1, 15, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 1304, 1305, ! 1306, 1307, 1308, 1309, 32, -1, 1312, 1313, -1, -1, ! 38, -1, -1, -1, -1, -1, -1, -1, -1, 47, ! -1, 49, -1, -1, -1, -1, -1, -1, 56, -1, ! -1, 59, 60, -1, -1, -1, -1, 792, -1, 1345, ! -1, -1, -1, -1, -1, 73, 3, 4, 5, 6, ! 7, 8, 9, -1, -1, 83, -1, -1, 15, -1, ! 1366, 1367, 312, -1, -1, -1, -1, 95, 96, 1375, ! -1, -1, 29, -1, 31, 32, -1, 832, 833, 834, ! -1, 38, -1, 1136, -1, 840, 43, 842, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, ! -1, -1, 59, 60, -1, -1, 861, -1, -1, -1, ! 865, 866, 362, 363, 364, -1, 73, -1, 873, -1, ! 3, 4, 5, 6, -1, 880, 83, -1, -1, -1, ! -1, -1, -1, -1, 91, -1, -1, -1, 95, 3, ! 4, 5, 6, 7, 8, 9, 901, -1, -1, 32, ! -1, 15, -1, -1, 1460, -1, -1, 1463, -1, 1465, ! 43, -1, 1468, -1, -1, 29, -1, 31, 32, -1, ! -1, -1, -1, 56, 38, 425, 59, 60, -1, 43, ! -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, ! 73, -1, 56, -1, -1, 59, 60, -1, 1251, -1, ! 83, -1, -1, -1, -1, -1, -1, -1, 91, 73, ! -1, -1, 95, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 493, -1, 495, 496, 497, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 1310, -1, 509, ! 510, -1, -1, 513, -1, 515, 516, 517, 518, -1, ! 4, 5, 522, 7, 8, 9, -1, 527, 1033, 13, ! 530, 15, -1, -1, -1, -1, -1, 1340, -1, -1, ! -1, -1, -1, -1, -1, 29, -1, 31, 32, -1, ! 1353, -1, -1, -1, 38, -1, 1612, 1613, 1614, -1, ! -1, -1, -1, 47, -1, 49, -1, -1, -1, -1, ! -1, -1, 56, -1, -1, 59, 60, 1380, -1, -1, ! -1, 1384, -1, 72, 73, 74, 75, 76, 77, 73, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, 83, ! -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, ! -1, 95, 96, 1669, -1, -1, 1419, -1, -1, -1, ! -1, -1, 1127, 1128, 1129, 1130, 1131, 1132, -1, -1, ! 81, -1, 1137, 84, 1139, 1140, 1141, -1, -1, -1, ! 1145, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1710, 1711, 1712, 108, -1, 110, ! -1, -1, -1, -1, -1, 1170, 1171, 1723, 1173, 1472, ! 1473, -1, -1, 1178, 1179, -1, 1181, -1, -1, -1, ! -1, 681, 3, 4, 5, 6, 7, 8, 9, -1, ! -1, -1, -1, -1, 15, 695, 696, 697, -1, -1, ! -1, -1, -1, -1, 704, -1, 1509, 1510, -1, -1, ! -1, 32, 1515, -1, -1, -1, -1, 38, -1, -1, ! -1, -1, 43, -1, -1, -1, 47, 727, 49, -1, ! 181, -1, -1, -1, -1, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, ! 201, 202, 73, -1, -1, -1, -1, -1, -1, 210, ! 4, 5, 83, 7, 8, 9, 3, 4, 5, 6, ! 91, 15, 9, -1, 95, -1, -1, -1, 229, -1, ! -1, -1, -1, -1, -1, 29, -1, 31, 32, -1, ! -1, -1, 792, -1, 38, 32, -1, -1, -1, 1304, ! 1305, 1306, -1, 47, -1, 256, 43, 1312, 1313, -1, ! -1, -1, 56, -1, -1, 59, 60, -1, -1, 56, ! -1, 1624, 59, 60, -1, 276, -1, -1, -1, -1, ! -1, -1, 832, 833, 834, -1, 73, -1, -1, -1, ! 1345, -1, 842, -1, -1, -1, 83, -1, -1, -1, ! -1, -1, -1, -1, 91, 4, 5, -1, 95, -1, ! 9, 861, 1367, -1, 864, 865, 866, 867, 868, 869, ! 1375, -1, -1, 873, -1, -1, -1, -1, -1, -1, ! 880, -1, -1, 32, -1, -1, -1, 3, 4, 5, ! 6, -1, -1, 9, -1, -1, 3, 4, 5, 6, ! 49, -1, 9, -1, -1, -1, -1, 56, -1, -1, ! 59, 60, -1, -1, -1, -1, 32, 368, 369, 919, ! 920, 921, -1, -1, 73, 32, -1, 43, -1, -1, ! -1, -1, 932, -1, 83, -1, 43, 388, 389, -1, ! 56, -1, -1, 59, 60, -1, 95, 96, -1, 56, ! -1, -1, 59, 60, -1, 1460, -1, 73, -1, -1, ! 1465, -1, -1, 1468, -1, -1, 73, 83, -1, -1, ! -1, -1, -1, -1, 425, 91, 83, -1, -1, 95, ! -1, -1, -1, 196, 91, -1, -1, -1, 95, -1, ! 3, 4, 5, 6, -1, -1, 9, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 1006, 1007, -1, -1, ! 1010, -1, -1, -1, -1, -1, -1, -1, -1, 32, ! -1, 1021, -1, -1, -1, 1025, 1026, 1027, -1, -1, ! 43, 1031, 3, 4, 5, 6, -1, -1, -1, -1, ! -1, -1, 493, 56, 495, 496, 59, 60, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 509, 510, ! 73, 32, 513, -1, 515, 516, 517, 518, -1, -1, ! 83, 522, 43, -1, -1, -1, 527, -1, 91, 530, ! -1, -1, 95, -1, -1, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 73, -1, -1, -1, -1, 1612, 1613, 1614, ! -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, ! 91, -1, -1, -1, 95, -1, -1, 1127, 1128, 1129, ! 1130, 1131, 1132, 1133, -1, -1, -1, 1137, -1, 1139, ! 1140, 1141, -1, 3, 4, 5, 6, -1, -1, -1, ! -1, 1151, 1152, 1153, -1, -1, -1, -1, 3, 4, ! 5, 6, -1, -1, 1669, -1, -1, -1, -1, 382, ! 1170, -1, 32, -1, -1, -1, -1, -1, 1178, -1, ! -1, -1, -1, 43, -1, -1, -1, 32, -1, -1, ! -1, -1, 3, 4, 5, 6, 56, -1, 43, 59, ! 60, -1, -1, -1, -1, 1710, 1711, 1712, -1, -1, ! -1, 56, -1, 73, 59, 60, -1, -1, 1723, -1, ! -1, -1, -1, 83, -1, -1, -1, -1, 73, -1, ! -1, 91, 43, 1233, 1234, 95, 1236, -1, 83, -1, ! -1, 111, 112, -1, -1, 56, 91, 1247, 59, 60, ! 95, -1, -1, -1, 65, 1255, 707, 708, -1, -1, ! -1, -1, 73, 1263, 1264, 1265, -1, -1, -1, -1, ! 483, 484, 83, -1, -1, -1, 727, -1, -1, -1, ! 91, -1, -1, -1, 95, -1, -1, 3, 4, 5, ! 6, -1, -1, -1, -1, -1, -1, -1, 3, 4, ! 5, 6, -1, -1, 1304, 1305, 1306, 1307, 1308, 1309, ! -1, -1, 1312, 1313, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 196, 43, 1328, 1329, ! 1330, 1331, 1332, -1, -1, -1, -1, -1, 43, -1, ! 56, 792, -1, 59, 60, 1345, -1, -1, -1, 65, ! -1, 56, -1, -1, 59, 60, -1, 73, -1, -1, ! 65, -1, -1, -1, -1, -1, -1, 83, 73, -1, ! -1, -1, -1, -1, -1, 91, -1, -1, 83, 95, ! -1, 832, 833, 834, -1, -1, 91, -1, 839, 840, ! 95, 842, -1, -1, -1, -1, -1, -1, 611, -1, ! -1, -1, -1, -1, -1, 618, -1, -1, -1, -1, ! 861, -1, -1, 864, 865, 866, 867, 868, 869, 870, ! -1, -1, 873, 4, 5, -1, 7, 8, 9, 880, ! -1, 644, 13, -1, 15, -1, -1, 1437, 1438, -1, ! 1440, -1, -1, -1, 1444, -1, -1, -1, 29, 900, ! 31, 32, -1, -1, -1, -1, 669, 38, -1, -1, ! 1460, -1, 675, -1, 677, 678, 47, -1, -1, -1, ! -1, -1, -1, 343, -1, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 704, -1, -1, -1, -1, -1, -1, 711, -1, ! -1, 1501, 1502, 1503, 1504, 1505, -1, -1, 721, 71, ! 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, 740, 741, 742, ! 743, -1, 745, 746, 747, 748, 749, 750, 751, 752, ! 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, ! 763, 4, 5, 423, 7, 8, 9, -1, -1, 1559, ! 13, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, 32, ! -1, 1032, 1033, 1034, -1, 38, -1, -1, -1, -1, ! -1, -1, 13, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! 823, -1, 1612, -1, 1614, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 842, ! -1, 501, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 856, 65, 66, 67, 68, 69, 70, ! 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, -1, -1, 1669, ! -1, -1, -1, -1, -1, -1, 1127, 1128, 1129, 1130, ! 1131, 1132, 1133, -1, 1135, -1, 1137, 1138, 1139, 1140, ! 1141, -1, -1, -1, 1145, -1, -1, -1, -1, -1, ! 1151, 1152, 1153, 4, 5, -1, -1, 8, 9, -1, ! 1710, 1711, 1712, -1, 15, -1, -1, -1, -1, -1, ! -1, -1, -1, 1723, -1, -1, -1, 1178, 29, -1, ! 31, 32, -1, -1, -1, -1, 949, 38, -1, -1, ! -1, -1, 612, -1, 614, -1, 47, -1, -1, 619, ! 620, 621, 622, 623, -1, 56, -1, -1, 59, 60, ! -1, -1, 632, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 986, 987, 645, -1, -1, -1, -1, ! -1, -1, -1, -1, 14, -1, -1, -1, 1001, -1, ! 1003, -1, 1005, 23, 24, -1, -1, -1, -1, -1, ! -1, 31, 32, -1, 34, -1, -1, -1, 678, -1, ! -1, -1, -1, -1, -1, -1, -1, 4, 5, -1, ! -1, 8, 9, -1, -1, -1, -1, 697, 15, -1, ! -1, -1, -1, 1046, 704, -1, -1, -1, 68, -1, ! -1, -1, 29, -1, 31, 32, -1, -1, -1, -1, ! -1, 38, -1, 1304, 1305, 1306, 1307, 1308, 1309, -1, ! 47, 1312, 1313, -1, -1, -1, 1079, -1, -1, 56, ! -1, -1, 59, 60, -1, -1, -1, 1328, 1329, 1330, ! 1331, 1332, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1345, -1, -1, -1, 128, -1, ! 130, -1, -1, -1, 1117, -1, -1, 137, 138, -1, ! -1, -1, -1, -1, -1, 1366, 146, 147, -1, -1, ! 150, 151, 152, -1, 154, 155, 156, 157, -1, -1, ! -1, -1, -1, -1, 1147, 1148, 72, 73, 74, 75, ! 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ! 86, 87, -1, -1, -1, -1, 1169, -1, -1, -1, ! 362, 363, 364, -1, 834, -1, -1, -1, -1, -1, ! -1, -1, 842, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 1437, 1438, 1439, 1440, ! -1, -1, -1, 1444, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1217, 1218, -1, -1, -1, 1460, ! -1, -1, -1, -1, -1, 245, 246, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ! 86, 87, -1, -1, 904, -1, -1, -1, -1, 269, ! 910, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 1501, 1502, 1503, 1504, 1505, -1, -1, -1, -1, -1, ! -1, -1, 1275, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 312, 1296, -1, 1298, -1, 1300, -1, 1302, ! -1, 493, -1, 495, 496, 497, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 1559, -1, ! -1, -1, -1, 983, -1, -1, -1, -1, -1, -1, ! 1333, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 360, -1, 362, 363, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1357, -1, -1, 1017, -1, -1, ! -1, -1, -1, 1023, -1, -1, -1, 1027, -1, -1, ! -1, 1612, -1, 1614, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 1395, 413, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 434, -1, 436, -1, -1, -1, ! -1, 1424, -1, -1, 444, -1, -1, 447, 1669, -1, ! -1, -1, 1092, -1, 1094, -1, -1, -1, -1, 459, ! -1, -1, -1, 1446, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 1456, 1457, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 1710, ! 1711, 1712, 1132, -1, -1, -1, -1, -1, -1, -1, ! -1, 1141, 1723, 1486, -1, -1, -1, -1, -1, -1, ! 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 695, 696, 697, -1, -1, -1, -1, ! -1, -1, 704, -1, -1, -1, -1, -1, -1, 1522, ! -1, -1, -1, -1, -1, -1, -1, -1, 548, 549, ! -1, -1, -1, -1, 1194, -1, 1196, -1, -1, -1, ! -1, -1, -1, -1, 564, -1, 1206, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1567, 1568, -1, -1, -1, -1, ! -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 606, -1, 608, -1, ! -1, 1594, -1, -1, -1, -1, -1, -1, -1, -1, ! 792, -1, -1, -1, -1, 1265, 66, 67, 68, 69, ! 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, 1632, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 832, 833, 834, -1, -1, -1, -1, -1, -1, 1309, ! 842, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 681, -1, -1, -1, -1, 1669, -1, -1, -1, ! -1, -1, 692, 693, -1, 695, 696, -1, -1, -1, ! -1, 1341, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 1694, -1, -1, 1354, 66, 67, 68, 69, 70, ! 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, ! 932, -1, 113, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 776, -1, -1, -1, ! 109, -1, -1, 783, 784, -1, -1, -1, -1, -1, ! -1, -1, -1, 793, -1, -1, -1, -1, -1, -1, ! -1, -1, 1442, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 818, -1, ! -1, -1, 1805, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1006, 1007, -1, -1, 1010, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 1021, ! -1, -1, -1, 1025, 1026, 1027, -1, -1, -1, 1031, ! -1, -1, -1, 1503, -1, -1, -1, -1, 62, -1, ! -1, 1511, 66, 67, 68, 69, 70, 71, 72, 73, ! 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ! 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, ! 900, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 1557, -1, 919, ! 920, 921, 922, -1, -1, -1, -1, -1, -1, 62, ! -1, -1, 932, 66, 67, 68, 69, 70, 71, 72, ! 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, 1127, 1128, 1129, 1130, 1131, ! 1132, 1133, -1, -1, -1, 1137, -1, 1139, 1140, 1141, ! 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 1006, 1007, -1, -1, ! 1010, -1, -1, -1, -1, 1, -1, 3, 4, 5, ! 6, 1021, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, 1031, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, 1712, 59, 60, 1247, -1, 63, 64, -1, ! -1, -1, -1, 1255, 70, -1, -1, 73, -1, -1, ! -1, 1263, 1264, 1265, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, ! -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, ! 4, 5, 6, 7, 8, 9, 112, -1, -1, 13, ! -1, 15, 1304, 1305, 1306, 1307, 1308, 1309, -1, -1, ! 1312, 1313, 26, -1, 28, -1, -1, -1, 32, -1, ! -1, -1, -1, -1, 38, -1, -1, -1, -1, 43, ! -1, -1, -1, 47, 1164, 49, -1, 1167, -1, -1, ! 1170, -1, 56, -1, -1, 59, 60, 61, 62, 63, ! -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, ! 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ! 84, 85, 86, 87, -1, 89, 90, 91, -1, 93, ! 94, 95, 96, 97, -1, -1, -1, -1, -1, 103, ! 104, -1, -1, -1, -1, 109, 110, 111, -1, 113, ! -1, -1, -1, 1233, 1234, -1, 1236, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 1247, -1, -1, ! -1, -1, -1, -1, -1, 1255, -1, -1, -1, -1, ! -1, -1, -1, 1263, 1264, 1437, 1438, -1, 1440, -1, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1294, -1, 29, 30, 31, 32, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, 49, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, -1, 1501, ! 1502, 1503, 1504, 1505, -1, -1, 1336, 70, -1, -1, ! 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 96, -1, -1, -1, 1367, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, ! -1, -1, -1, -1, -1, -1, 1, 1559, 3, 4, ! 5, 6, 7, 8, 9, 10, 11, 12, -1, 14, ! 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, ! 25, 26, 27, 28, 29, 30, 31, 32, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, 46, 47, 48, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, 61, -1, 63, 64, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, 1463, -1, 1465, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, ! 95, -1, 97, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 111, 112, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! 63, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 1, 97, 3, 4, 5, 6, 7, ! 8, 9, 10, 11, 12, 13, 14, 15, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, 49, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, 61, -1, -1, 64, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 96, 1, ! -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, ! 12, 13, 14, 15, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, 49, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, ! -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 96, 1, -1, 3, 4, 5, ! 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, ! 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, 110, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! 63, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, 1, 95, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, 61, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, -1, 95, 96, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 111, 112, 1, -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, 1, 95, 3, 4, ! 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, ! 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, ! 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, ! 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, ! 55, 56, -1, -1, 59, 60, 61, -1, -1, 64, ! -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, ! -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, ! -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, ! 95, 96, 1, -1, 3, 4, 5, 6, -1, 8, ! 9, 10, 11, 12, -1, 14, 15, 112, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, 61, -1, -1, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 1, -1, 3, ! 4, 5, 6, 102, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, --- 1090,3941 ---- 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 3, 1, 2, 2, ! 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, ! 4, 1, 1, 1, 1, 3, 1, 3, 1, 3, ! 0, 4, 0, 6, 3, 0, 4, 1, 3, 3, ! 0, 4, 3, 0, 1, 1, 2, 6, 1, 3, ! 0, 1, 4, 6, 4, 1, 1, 1, 1, 1, ! 3, 0, 2, 1, 2, 3, 4, 1, 1, 3, ! 4, 3, 5, 3, 3, 3, 0, 3, 3, 3, ! 0, 2, 2, 0, 6, 0, 5, 2, 2, 2, ! 0, 0, 0, 11, 1, 0, 1, 0, 1, 1, ! 2, 2, 2, 2, 2, 2, 3, 4, 3, 2, ! 3, 4, 1, 2, 1, 2, 2, 2, 2, 3, ! 3, 2, 0, 2, 3, 1, 4, 1, 3, 1, ! 1, 2, 2, 3, 3, 0, 1, 3, 2, 2, ! 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, ! 2, 3, 1, 2, 2, 4, 4, 2, 1, 5, ! 4, 1, 0, 1, 3, 0, 1, 3, 1, 1, ! 1, 1, 4, 4, 4, 4, 4, 3, 4, 4, ! 4, 4, 3, 2, 1, 1, 3, 1, 3, 2, ! 1, 6, 0, 2, 1, 2, 1, 2, 3, 3, ! 1, 3, 1, 2, 3, 3, 2, 2, 3, 1, ! 4, 4, 3, 3, 2, 1, 1, 2, 1, 1, ! 2, 2, 1, 2, 3, 3, 2, 2, 3, 1, ! 3, 3, 2, 2, 3, 1, 4, 3, 4, 3, ! 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, ! 4, 4, 2, 1, 1, 1, 1, 2, 4, 3, ! 3, 2, 2, 2, 2, 1, 2, 2, 2, 2, ! 3, 1, 2, 3, 4, 2, 2, 2, 2, 2, ! 2, 4, 2, 1, 2, 2, 3, 1, 3, 2, ! 3, 2, 2, 3, 1, 3, 4, 1, 2, 3, ! 2, 2, 1, 3, 2, 2, 1, 2, 3, 1, ! 3, 6, 4, 4, 3, 5, 3, 3, 3, 2, ! 1, 1, 2, 2, 2, 0, 1, 1, 2, 3, ! 0, 4, 1, 0, 0, 5, 1, 0, 3, 1, ! 2, 1, 2, 0, 4, 1, 0, 0, 5, 0, ! 0, 7, 0, 0, 0, 0, 12, 0, 0, 7, ! 0, 5, 0, 7, 0, 4, 2, 2, 2, 3, ! 6, 8, 10, 8, 12, 10, 10, 4, 3, 2, ! 2, 1, 1, 1, 1, 1, 0, 0, 5, 0, ! 0, 5, 1, 2, 0, 0, 0, 5, 1, 1, ! 3, 3, 2, 2, 2, 2, 2, 1, 2, 0, ! 1, 0, 1, 1, 0, 1, 1, 3, 4, 7, ! 1, 3, 0, 1, 1, 1, 2, 2, 2, 1, ! 2, 2, 0, 3, 1, 1, 1, 2, 2, 2, ! 4, 2, 2, 2, 2, 2, 2, 1, 2, 1, ! 2, 1, 1, 0, 0, 1, 5, 3, 0, 3, ! 0, 0, 4, 2, 1, 1, 1, 3, 0, 3, ! 3, 3, 1, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, ! 3, 3, 4, 3, 3, 5, 5, 4, 3, 0 }; static const short yydefact[] = { 3, ! 12, 12, 5, 0, 4, 0, 313, 674, 675, 0, ! 420, 436, 615, 0, 11, 434, 0, 0, 10, 520, ! 893, 0, 0, 0, 178, 708, 16, 314, 315, 88, ! 0, 0, 874, 0, 47, 0, 0, 13, 27, 0, 29, 8, 52, 53, 0, 18, 15, 95, 118, 92, ! 0, 676, 182, 334, 311, 335, 650, 0, 409, 0, ! 408, 0, 424, 0, 449, 617, 466, 435, 0, 533, ! 535, 515, 543, 419, 639, 437, 640, 116, 333, 661, ! 637, 0, 677, 613, 0, 89, 0, 312, 85, 87, ! 86, 189, 0, 682, 189, 683, 189, 316, 178, 151, ! 152, 153, 154, 155, 506, 508, 0, 704, 0, 509, 0, 0, 0, 152, 153, 154, 155, 25, 0, 0, ! 0, 0, 0, 0, 0, 510, 686, 0, 692, 0, 0, 0, 39, 0, 0, 33, 0, 0, 49, 0, ! 0, 189, 684, 0, 313, 617, 0, 648, 643, 0, ! 0, 0, 647, 0, 0, 0, 0, 334, 0, 325, ! 0, 0, 0, 333, 613, 30, 0, 28, 3, 48, 0, 68, 420, 0, 0, 8, 71, 67, 70, 95, ! 0, 0, 0, 435, 96, 14, 0, 464, 0, 0, ! 482, 93, 83, 685, 621, 0, 0, 613, 84, 0, ! 0, 0, 114, 0, 445, 399, 630, 400, 636, 0, ! 613, 422, 421, 82, 117, 410, 0, 447, 423, 115, ! 0, 416, 442, 443, 411, 426, 428, 431, 444, 0, ! 79, 467, 521, 522, 523, 524, 542, 160, 159, 161, ! 526, 534, 183, 530, 525, 0, 0, 536, 537, 538, ! 539, 874, 0, 616, 425, 618, 0, 461, 313, 675, ! 0, 314, 706, 182, 667, 668, 664, 642, 678, 0, ! 313, 315, 663, 641, 662, 638, 0, 894, 894, 894, ! 894, 894, 894, 894, 0, 894, 894, 894, 894, 894, ! 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, ! 894, 894, 894, 894, 894, 894, 894, 0, 894, 819, ! 424, 820, 889, 316, 615, 338, 341, 388, 432, 433, ! 0, 0, 0, 384, 382, 355, 386, 387, 0, 0, ! 0, 0, 0, 314, 307, 0, 0, 199, 198, 0, ! 200, 201, 0, 0, 202, 0, 0, 190, 191, 0, ! 257, 0, 285, 196, 337, 225, 0, 0, 339, 340, ! 0, 193, 406, 0, 0, 424, 407, 669, 367, 357, ! 0, 0, 881, 0, 0, 189, 0, 518, 504, 0, ! 0, 0, 705, 703, 283, 0, 203, 260, 204, 0, ! 0, 0, 471, 3, 23, 31, 700, 696, 697, 699, ! 701, 698, 151, 152, 153, 0, 154, 155, 688, 689, ! 693, 690, 687, 0, 313, 323, 324, 322, 666, 665, ! 35, 34, 51, 0, 168, 0, 0, 424, 166, 17, ! 0, 0, 189, 644, 618, 646, 0, 645, 152, 153, ! 309, 310, 329, 617, 0, 654, 328, 0, 653, 0, ! 336, 314, 315, 0, 0, 0, 327, 326, 658, 0, ! 0, 12, 0, 178, 9, 9, 74, 0, 69, 0, ! 0, 75, 78, 0, 463, 465, 132, 101, 807, 99, ! 390, 100, 135, 0, 0, 133, 94, 0, 850, 224, ! 0, 223, 845, 868, 0, 406, 424, 407, 0, 844, ! 846, 875, 857, 0, 0, 660, 0, 0, 882, 617, ! 0, 628, 623, 0, 627, 0, 0, 0, 0, 0, ! 613, 464, 0, 81, 0, 613, 635, 0, 413, 414, ! 0, 80, 464, 0, 0, 418, 417, 412, 429, 430, ! 451, 450, 189, 540, 541, 151, 154, 527, 531, 529, ! 0, 544, 511, 427, 464, 680, 613, 102, 0, 0, ! 0, 0, 681, 613, 108, 614, 0, 649, 675, 707, ! 182, 929, 0, 925, 0, 924, 922, 904, 909, 910, ! 894, 916, 915, 901, 902, 900, 919, 908, 905, 906, ! 907, 911, 912, 898, 899, 895, 896, 897, 921, 913, ! 914, 903, 920, 894, 917, 426, 613, 613, 0, 613, ! 0, 894, 189, 0, 247, 248, 0, 0, 0, 0, ! 0, 0, 308, 231, 228, 227, 229, 0, 0, 0, ! 0, 0, 337, 0, 930, 0, 226, 187, 188, 331, ! 0, 230, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 348, 0, 350, 353, + 354, 392, 391, 0, 0, 0, 0, 0, 236, 611, + 0, 244, 389, 381, 0, 0, 874, 370, 373, 374, + 0, 0, 401, 727, 723, 0, 0, 613, 613, 613, + 403, 730, 0, 232, 0, 234, 0, 673, 405, 0, + 0, 404, 369, 0, 0, 364, 383, 195, 365, 385, + 670, 0, 366, 0, 0, 186, 186, 0, 176, 0, + 424, 174, 519, 608, 605, 0, 518, 606, 518, 0, + 284, 440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 441, 477, 478, 479, ! 476, 0, 469, 472, 0, 3, 0, 691, 189, 694, ! 0, 43, 44, 0, 57, 0, 0, 0, 61, 65, ! 54, 873, 424, 57, 872, 63, 179, 164, 162, 179, ! 186, 332, 0, 652, 651, 336, 0, 655, 0, 20, ! 22, 95, 9, 9, 77, 76, 0, 137, 0, 930, ! 91, 90, 488, 0, 484, 483, 0, 622, 619, 849, ! 863, 852, 727, 723, 0, 864, 613, 867, 869, 0, ! 0, 865, 0, 866, 620, 848, 862, 851, 847, 876, ! 859, 870, 860, 853, 858, 659, 0, 673, 0, 657, ! 624, 618, 626, 625, 617, 0, 0, 0, 0, 0, ! 0, 613, 634, 0, 459, 458, 446, 633, 0, 882, ! 0, 629, 415, 448, 460, 438, 439, 464, 0, 528, ! 532, 674, 675, 874, 874, 676, 545, 546, 548, 874, ! 551, 550, 0, 0, 462, 882, 843, 189, 189, 679, ! 189, 882, 843, 613, 105, 613, 111, 894, 894, 918, ! 923, 889, 889, 889, 0, 928, 0, 0, 0, 0, ! 0, 0, 424, 0, 0, 0, 344, 0, 342, 343, ! 0, 0, 255, 192, 313, 674, 675, 314, 315, 0, ! 0, 489, 516, 0, 306, 305, 834, 833, 0, 303, ! 302, 300, 301, 299, 298, 297, 295, 296, 293, 294, ! 288, 289, 290, 291, 292, 286, 287, 0, 0, 0, ! 0, 0, 0, 0, 238, 252, 0, 0, 237, 613, ! 613, 0, 613, 610, 715, 0, 0, 0, 0, 0, ! 372, 0, 376, 0, 378, 0, 617, 726, 725, 718, ! 722, 721, 873, 0, 0, 740, 0, 0, 882, 402, ! 882, 728, 613, 843, 0, 0, 0, 727, 723, 0, ! 0, 613, 0, 617, 0, 0, 0, 0, 197, 0, ! 877, 181, 185, 317, 179, 172, 170, 179, 0, 507, ! 519, 604, 0, 222, 221, 220, 219, 282, 281, 0, ! 279, 278, 276, 277, 275, 274, 273, 270, 271, 272, ! 268, 269, 263, 264, 265, 266, 267, 261, 262, 471, ! 0, 0, 26, 0, 0, 695, 0, 40, 46, 45, ! 59, 56, 49, 57, 0, 50, 0, 0, 58, 526, ! 0, 169, 179, 179, 167, 180, 331, 330, 19, 21, ! 73, 95, 452, 808, 150, 156, 143, 157, 158, 0, ! 0, 139, 0, 0, 0, 0, 485, 0, 134, 617, ! 726, 722, 727, 723, 0, 617, 637, 0, 613, 728, ! 0, 727, 723, 0, 337, 0, 669, 0, 871, 0, ! 0, 884, 0, 0, 0, 0, 456, 632, 631, 455, ! 186, 553, 552, 874, 874, 874, 0, 579, 675, 0, ! 569, 0, 0, 0, 582, 0, 131, 126, 0, 182, ! 583, 586, 0, 0, 561, 0, 129, 573, 104, 0, ! 0, 0, 0, 110, 0, 882, 843, 882, 843, 927, ! 926, 891, 890, 892, 318, 356, 0, 362, 363, 0, ! 0, 0, 0, 343, 346, 751, 0, 0, 0, 0, ! 256, 0, 347, 349, 352, 250, 249, 240, 0, 239, ! 254, 0, 0, 712, 710, 0, 713, 0, 245, 0, ! 0, 189, 379, 0, 0, 0, 719, 618, 724, 720, ! 731, 613, 739, 737, 738, 0, 729, 882, 0, 735, ! 0, 233, 235, 671, 672, 727, 723, 0, 368, 880, ! 177, 179, 179, 175, 609, 607, 505, 0, 470, 468, ! 313, 0, 24, 32, 702, 60, 55, 62, 66, 64, ! 165, 163, 72, 815, 0, 141, 0, 145, 0, 147, ! 0, 149, 0, 97, 0, 486, 618, 726, 722, 727, ! 723, 0, 613, 642, 728, 0, 0, 672, 364, 365, ! 670, 366, 861, 855, 856, 854, 886, 885, 887, 0, ! 0, 0, 0, 618, 0, 0, 453, 184, 0, 555, ! 554, 549, 613, 843, 578, 0, 570, 583, 571, 464, ! 464, 567, 568, 565, 566, 613, 843, 313, 674, 0, ! 451, 127, 574, 584, 589, 590, 451, 451, 0, 0, ! 451, 125, 575, 587, 451, 0, 464, 0, 562, 563, ! 564, 464, 613, 320, 319, 321, 613, 107, 0, 113, ! 0, 0, 0, 0, 0, 0, 746, 0, 492, 0, ! 490, 259, 304, 0, 241, 242, 251, 253, 711, 709, ! 716, 714, 0, 246, 0, 0, 371, 375, 377, 882, ! 733, 613, 734, 173, 171, 280, 0, 473, 475, 816, ! 809, 813, 142, 140, 0, 0, 0, 746, 487, 726, ! 722, 0, 728, 343, 0, 883, 617, 457, 0, 547, ! 882, 0, 0, 572, 482, 482, 882, 0, 0, 0, ! 464, 464, 0, 464, 464, 0, 464, 0, 560, 512, ! 0, 482, 882, 882, 613, 613, 351, 0, 0, 0, ! 0, 0, 215, 752, 0, 747, 748, 491, 0, 0, ! 243, 717, 380, 319, 736, 882, 0, 0, 814, 144, ! 146, 148, 98, 727, 723, 0, 618, 0, 888, 454, ! 121, 613, 613, 843, 577, 581, 124, 613, 464, 464, ! 598, 482, 313, 674, 0, 585, 591, 592, 451, 451, ! 482, 482, 0, 482, 588, 501, 576, 103, 109, 882, ! 882, 358, 359, 360, 361, 480, 0, 0, 0, 742, ! 753, 760, 741, 0, 749, 493, 612, 732, 474, 0, ! 817, 617, 882, 882, 0, 882, 597, 594, 596, 0, ! 0, 464, 464, 464, 593, 595, 580, 0, 106, 112, ! 0, 750, 745, 218, 0, 216, 744, 743, 313, 674, ! 675, 754, 767, 770, 773, 778, 0, 0, 0, 0, ! 0, 0, 0, 0, 314, 802, 810, 0, 830, 806, ! 805, 804, 0, 762, 0, 0, 424, 766, 761, 803, ! 930, 0, 0, 930, 119, 122, 613, 123, 464, 464, ! 603, 482, 482, 503, 0, 502, 497, 481, 217, 823, ! 825, 826, 0, 0, 758, 0, 0, 0, 785, 787, ! 788, 789, 0, 0, 0, 0, 0, 0, 0, 824, ! 930, 398, 831, 0, 763, 396, 451, 0, 397, 0, ! 451, 0, 0, 764, 801, 800, 821, 822, 818, 882, ! 602, 600, 599, 601, 0, 0, 514, 207, 0, 755, ! 768, 757, 0, 930, 0, 0, 0, 781, 930, 790, ! 0, 799, 41, 155, 36, 155, 0, 37, 811, 0, ! 394, 395, 0, 0, 0, 393, 758, 120, 500, 499, ! 92, 95, 214, 0, 424, 0, 758, 758, 771, 0, ! 746, 828, 774, 0, 0, 0, 930, 786, 798, 42, ! 38, 815, 0, 765, 0, 498, 208, 451, 756, 769, ! 0, 759, 829, 0, 827, 779, 783, 782, 812, 835, ! 835, 0, 496, 494, 495, 464, 205, 0, 0, 211, ! 0, 210, 758, 930, 0, 0, 0, 836, 837, 0, ! 791, 0, 0, 772, 775, 780, 784, 0, 0, 0, ! 0, 0, 0, 835, 0, 212, 206, 0, 0, 0, ! 841, 0, 794, 838, 0, 0, 792, 0, 0, 839, ! 0, 0, 0, 0, 0, 0, 213, 776, 0, 842, ! 796, 797, 0, 793, 758, 0, 0, 777, 840, 795, ! 0, 0, 0 }; ! static const short yydefgoto[] = { 1831, ! 462, 2, 463, 171, 811, 346, 187, 3, 4, 38, ! 141, 776, 394, 39, 777, 1175, 1611, 41, 414, 1658, ! 781, 42, 43, 424, 44, 1176, 788, 1091, 789, 790, ! 791, 46, 178, 179, 47, 820, 190, 186, 480, 1438, ! 48, 49, 907, 1197, 913, 1199, 50, 1178, 1179, 191, ! 192, 821, 481, 1121, 1122, 734, 1123, 242, 51, 1104, ! 1103, 800, 797, 1273, 1272, 1048, 1045, 140, 1102, 52, ! 244, 53, 1042, 640, 347, 348, 349, 350, 632, 1769, ! 1690, 1771, 1724, 1808, 1484, 387, 1031, 351, 678, 989, ! 352, 388, 389, 354, 355, 376, 55, 266, 782, 443, ! 160, 56, 57, 356, 635, 357, 358, 359, 360, 822, ! 361, 1614, 541, 699, 362, 1181, 494, 225, 495, 363, ! 226, 364, 365, 62, 508, 227, 204, 217, 64, 522, ! 542, 1449, 875, 1336, 205, 218, 65, 555, 876, 66, ! 67, 772, 773, 774, 1547, 486, 952, 953, 1722, 1687, ! 1636, 1578, 68, 739, 378, 904, 1536, 1637, 1220, 735, ! 69, 70, 71, 72, 73, 253, 897, 898, 899, 900, ! 1183, 1378, 1184, 1185, 1186, 1363, 1373, 1364, 1526, 1365, ! 1366, 1527, 1528, 736, 737, 738, 679, 1019, 367, 198, ! 520, 513, 207, 75, 76, 77, 148, 149, 163, 79, ! 136, 368, 369, 370, 81, 391, 83, 902, 127, 128, ! 129, 561, 110, 84, 392, 994, 995, 1014, 1010, 702, ! 1549, 1550, 1485, 1486, 1487, 1551, 1397, 1552, 1618, 1643, ! 1727, 1693, 1694, 1553, 1619, 1717, 1644, 1728, 1645, 1751, ! 1646, 1754, 1798, 1825, 1647, 1773, 1737, 1774, 1699, 482, ! 818, 1294, 1620, 1661, 1742, 1431, 1432, 1498, 1624, 1726, ! 1561, 1621, 1733, 1664, 959, 1777, 1778, 1779, 1802, 499, ! 1015, 855, 1151, 1326, 501, 502, 503, 851, 504, 154, ! 853, 1188, 93, 725, 860, 1329, 1330, 612, 87, 572, ! 88, 942 }; ! static const short yypact[] = { 166, ! 189,-32768,-32768, 2909,-32768, 58, 121, 405, 440, 60, ! 158,-32768,-32768, 1066,-32768,-32768, 107, 228,-32768,-32768, ! -32768, 1235, 1578, 1102, 254,-32768,-32768, 281, 504,-32768, ! 1072, 1072,-32768, 2487,-32768, 2909, 304,-32768,-32768, 351, ! -32768, 152,-32768,-32768, 4624,-32768,-32768, 315, 911, 401, ! 371, 442,-32768,-32768,-32768,-32768, 529, 2462,-32768, 7370, ! -32768, 409, 3123, 867,-32768, 477,-32768,-32768, 996, 577, ! 724,-32768, 458, 7869,-32768,-32768,-32768, 830,-32768,-32768, ! -32768, 826,-32768,-32768, 2245,-32768, 6505, 449,-32768,-32768, ! -32768, 11743, 533,-32768, 11743,-32768, 11743,-32768,-32768,-32768, ! 405, 440, 281, 495,-32768, 505, 442,-32768, 1885,-32768, ! 331, 11836, 464,-32768,-32768,-32768,-32768,-32768, 94, 535, ! 508, 572, 617, 545, 553,-32768,-32768, 1913,-32768, 1588, ! 405, 440,-32768, 281, 495,-32768, 1376, 3330, 563, 13256, ! 565, 11743,-32768, 11743, 645, 7187, 2200,-32768,-32768, 1396, ! 3508, 2200,-32768, 1697, 5083, 5083, 2487, 607, 618,-32768, ! 529, 327, 620, 632,-32768,-32768, 742,-32768, 649,-32768, ! 6188,-32768,-32768, 254, 5248, 663,-32768,-32768,-32768, 315, ! 1800, 13317, 878, 707,-32768,-32768, 689, 477, 783, 162, ! 407, 729,-32768,-32768,-32768, 9182, 10694,-32768,-32768, 6052, ! 6052, 7434, 830, 893,-32768,-32768, 629,-32768,-32768, 1596, ! -32768,-32768,-32768,-32768,-32768, 3123, 918,-32768, 477, 830, ! 11836,-32768,-32768,-32768, 1297, 3123,-32768, 477,-32768, 1800, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 722, 877, 442,-32768, 477, 2005, 1719,-32768,-32768,-32768, ! -32768,-32768, 748,-32768, 2045, 477, 331,-32768, 740, 443, ! 1315, 745,-32768, 196,-32768,-32768,-32768,-32768,-32768, 6289, ! -32768, 495,-32768,-32768,-32768,-32768, 2473,-32768, 730, 737, ! -32768,-32768,-32768,-32768, 785,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + -32768,-32768,-32768,-32768,-32768,-32768,-32768, 705,-32768,-32768, + 2045, 7869, 342,-32768, 757,-32768,-32768,-32768,-32768,-32768, + 12953, 12953, 762,-32768,-32768,-32768,-32768,-32768, 765, 806, + 822, 824, 836, 1108, 12301, 1833, 12953,-32768,-32768, 12953, + -32768,-32768, 12953, 9480,-32768, 12953, 364, 865,-32768, 12953, + -32768, 12394,-32768, 8489, 288, 1023, 3814, 12487,-32768, 907, + 485,-32768, 991, 13046, 13139, 5389, 5285,-32768, 435,-32768, + 1469, 2101, 869, 364, 364, 11743, 13256, 973,-32768, 904, + 1833, 745,-32768,-32768, 12581, 855, 906,-32768, 13413, 874, + 1819, 2400, 1613, 649,-32768,-32768,-32768,-32768,-32768,-32768, + -32768,-32768, 535, 508, 572, 1833, 617, 545, 909, 553, + -32768, 933,-32768, 3467, 904, 405, 440,-32768,-32768,-32768, + -32768,-32768,-32768, 5180,-32768, 1800, 7547, 857,-32768,-32768, + 364, 588, 11743,-32768, 7187,-32768, 3944,-32768, 948, 953, + -32768,-32768,-32768, 327, 2200,-32768,-32768, 2200,-32768, 929, + -32768,-32768,-32768, 327, 327, 327,-32768,-32768,-32768, 6289, + 86, 931, 935,-32768,-32768,-32768,-32768, 13256,-32768, 930, + 975,-32768,-32768, 742,-32768, 477,-32768,-32768,-32768,-32768, + 979,-32768,-32768, 10136, 12581,-32768,-32768, 939,-32768, 906, + 943, 13413, 383, 2035, 13317, 2035, 2020, 6996, 949,-32768, + 253, 2838, 1006, 1012, 757,-32768, 950, 498, 74, 7877, + 6382,-32768,-32768, 6382,-32768, 6600, 6600, 7434, 8192, 955, + -32768, 477, 1800,-32768, 10787,-32768,-32768, 6649, 1297, 3123, + 1800,-32768, 477, 978, 983,-32768,-32768, 1297,-32768, 477, + 1070,-32768, 11743,-32768,-32768, 904, 745, 722,-32768,-32768, + 2005, 1677,-32768, 2045, 477,-32768,-32768,-32768, 1018, 1031, + 1058, 1047,-32768,-32768,-32768,-32768, 7187,-32768, 1005,-32768, + 564,-32768, 1024,-32768, 1029,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 2045,-32768,-32768, 685,-32768, ! 640,-32768, 11743, 12581,-32768,-32768, 12581, 11836, 8172, 8172, ! 8172, 8172, 8489,-32768,-32768,-32768,-32768, 1034, 12674, 12674, ! 9480, 1054, 192, 1077,-32768, 1082,-32768,-32768,-32768, 1150, ! 11743,-32768, 9573, 9480,-32768, 12301, 12301, 10229, 12301, 12301, ! 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301, ! 12301, 12301, 12301, 12301, 12301, 12301,-32768, 12581,-32768,-32768, ! -32768,-32768,-32768, 12581, 12581, 12581, 11836, 3924, 597, 815, ! 10880,-32768,-32768,-32768, 1101, 1315, 1169, 567, 603, 687, ! 2587, 640,-32768, 2359, 2359, 3337, 10973, 1085, 1133,-32768, ! -32768, 741, 9480,-32768, 9480,-32768, 11367, 1236,-32768, 876, ! 331,-32768,-32768, 12581, 1315,-32768,-32768, 281,-32768,-32768, ! -32768, 393, 449, 12581, 1132,-32768,-32768, 364,-32768, 1800, ! 2987,-32768,-32768, 1130,-32768, 1098, 1149,-32768, 973, 909, ! 13484,-32768, 10415, 10508, 12581, 12581, 10229, 12581, 12581, 12581, ! 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, 12581, ! 12581, 12581, 12581, 12581, 12581, 12581,-32768,-32768,-32768,-32768, ! -32768, 129,-32768, 1118, 1115, 649, 3467, 1173, 11743,-32768, ! 1168,-32768,-32768, 3330, 1704, 1155, 1196, 613, 1170, 1177, ! -32768,-32768, 4050, 996,-32768, 1179,-32768,-32768,-32768,-32768, ! -32768,-32768, 364,-32768,-32768, 1126, 1138,-32768, 1184,-32768, ! -32768, 315,-32768,-32768,-32768,-32768, 90,-32768, 528,-32768, ! -32768,-32768,-32768, 9368, 13484,-32768, 1140,-32768,-32768,-32768, ! -32768,-32768, 1898, 1898, 4226,-32768,-32768,-32768,-32768, 1596, ! 2245,-32768, 11461,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 1012, 1192,-32768,-32768,-32768, 11929, 1133, 692,-32768, ! -32768, 7877,-32768,-32768, 8192, 6382, 6382, 6823, 6823, 8192, ! 876,-32768,-32768, 6649,-32768, 1193,-32768,-32768, 1151, 74, ! 7877,-32768, 1297,-32768,-32768,-32768,-32768, 477, 1188, 722, ! -32768, 508, 572,-32768,-32768, 553, 1189,-32768,-32768, 137, ! -32768,-32768, 2177, 6742,-32768, 74, 6934, 11743, 11743,-32768, ! 11743, 74, 6934,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 1425, 1425, 1425, 1008,-32768, 364, 1159, 13439, 1160, ! 1161, 1194, 5788, 1197, 1201, 1204,-32768, 1164,-32768,-32768, ! 1174, 1222,-32768,-32768, 1221, 363, 469, 392, 866, 12581, ! 1223,-32768, 1225, 1187, 8489, 8489,-32768,-32768, 1234, 13312, ! 8944, 7399, 5868, 5598, 5991, 4656, 3360, 3360, 2388, 2388, ! 1732, 1732, 998, 998, 998,-32768,-32768, 1200, 1203, 1202, ! 1191, 1212, 1214, 8172, 597,-32768, 10136, 12581,-32768,-32768, ! -32768, 12581,-32768,-32768, 1229, 12953, 1213, 1245, 1262, 1296, ! -32768, 12581,-32768, 12581,-32768, 12581, 2708, 2624,-32768,-32768, ! 2624,-32768, 139, 1240, 1243,-32768, 1242, 8172, 74,-32768, ! 74, 3264,-32768, 6934, 11066, 1247, 1249, 11555, 11555, 8848, ! 1251, 12394, 1255, 2119, 4340, 2400, 1304, 1256, 1031, 1263, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 12581,-32768, ! 1833,-32768, 1261,-32768, 13484,-32768, 13484, 13484, 13484, 1313, ! 7561, 5576, 8216, 7900, 5890, 4525, 5728, 3691, 3691, 3691, ! 2502, 2502, 1761, 1761, 1049, 1049, 1049,-32768,-32768, 1613, ! 1273, 12767,-32768, 1278, 1321,-32768, 364,-32768,-32768,-32768, ! -32768,-32768,-32768, 1737, 5180,-32768, 8172, 11743,-32768, 1112, ! 12301,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 315,-32768,-32768,-32768, 535,-32768, 617, 545, 12581, ! 202,-32768, 699, 702, 709, 1329,-32768, 111,-32768, 4503, ! 2134, 2134, 3038, 3038, 4226, 4977, 83, 1596,-32768, 3179, ! 4413, 11649, 11649, 9072, 224, 1284, 356, 3050,-32768, 10136, ! 9669,-32768, 6619, 2666, 2666, 3164,-32768,-32768,-32768, 1331, ! -32768,-32768,-32768,-32768,-32768,-32768, 2093,-32768, 1043, 1217, ! -32768, 12581, 8459, 8037,-32768, 8037, 216, 216, 514, 772, ! 5485, 7528, 79, 7166,-32768, 227, 216,-32768,-32768, 1286, ! 364, 364, 364,-32768, 1294, 74, 6934, 74, 6934,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768, 8172,-32768,-32768, 1310, ! 1312, 1316, 1320, 1126,-32768,-32768, 13347, 10136, 9764, 1299, ! -32768, 12301,-32768,-32768,-32768,-32768,-32768, 616, 1298,-32768, ! -32768, 1308, 229, 601, 601, 1307, 601, 12581,-32768, 12953, ! 1416, 11743,-32768, 1317, 1335, 1338,-32768, 2708,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 2708,-32768, 74, 1341,-32768, ! 1339,-32768,-32768,-32768,-32768, 4406, 4406, 4903,-32768,-32768, ! -32768,-32768,-32768,-32768, 13484,-32768,-32768, 12581,-32768,-32768, ! 230, 1343,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 8489, ! -32768,-32768,-32768, 1356, 1348,-32768, 459,-32768, 12581,-32768, ! 12581,-32768, 12581,-32768, 9857,-32768, 4503, 2134, 2134, 4725, ! 4725, 6322,-32768, 457, 3179, 4503, 1350, 537, 559, 749, ! 751, 311,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 232, ! 3445, 3445, 1893, 1893, 1893, 10136,-32768,-32768, 1677,-32768, ! -32768,-32768,-32768, 6934, 13484, 240,-32768, 3821,-32768, 477, ! 477,-32768,-32768,-32768,-32768,-32768, 6934, 497, 602, 12581, ! 1070,-32768, 1399,-32768,-32768,-32768, 451, 542, 826, 3508, ! 566, 216, 1401,-32768, 746, 1404, 477, 8341,-32768,-32768, ! -32768, 477,-32768,-32768, 1420,-32768,-32768,-32768, 1367,-32768, ! 1370, 1372, 12581, 12581, 12581, 12581, 75, 10136,-32768, 1418, ! -32768,-32768, 8489, 12581,-32768, 616,-32768,-32768,-32768,-32768, ! -32768,-32768, 1373,-32768, 1440, 364,-32768,-32768,-32768, 74, ! -32768,-32768,-32768,-32768,-32768, 13484, 12581,-32768,-32768,-32768, ! 1356,-32768,-32768,-32768, 1380, 1383, 1385, 75,-32768, 3645, ! 3645, 876, 3660, 753, 6619,-32768, 1893,-32768, 10136,-32768, ! 74, 1386, 775,-32768, 1430, 1430, 74, 1390, 12581, 12581, ! 7042, 477, 6894, 477, 477, 4759, 477, 8334,-32768,-32768, ! 8949, 1430, 74, 74,-32768,-32768,-32768, 1392, 1393, 1394, ! 1397, 1833,-32768,-32768, 8738, 1482,-32768,-32768, 10136, 1405, ! -32768,-32768,-32768,-32768,-32768, 74, 1407, 1427,-32768,-32768, ! -32768,-32768,-32768, 4188, 4188, 3528, 4298, 4298,-32768,-32768, ! -32768,-32768,-32768, 6934,-32768,-32768,-32768,-32768, 7042, 7042, ! -32768, 1430, 549, 902, 12581,-32768,-32768,-32768, 1070, 1070, ! 1430, 1430, 1005, 1430,-32768,-32768,-32768,-32768,-32768, 74, ! 74,-32768,-32768,-32768,-32768,-32768, 1067, 246, 8604,-32768, ! -32768,-32768,-32768, 11177,-32768,-32768,-32768,-32768,-32768, 7298, ! -32768, 4298, 74, 74, 1410, 74,-32768,-32768,-32768, 12581, ! 12581, 7042, 477, 477,-32768,-32768,-32768, 7710,-32768,-32768, ! 1833,-32768,-32768,-32768, 251,-32768,-32768,-32768, 1458, 905, ! 954,-32768,-32768,-32768,-32768,-32768, 12581, 1467, 1470, 1475, ! 12022, 295, 1833, 701, 655,-32768,-32768, 12115, 1531,-32768, ! -32768,-32768, 1480,-32768, 4123, 13210, 5661, 1528,-32768,-32768, ! 1435, 1437, 1439,-32768,-32768,-32768,-32768,-32768, 7042, 7042, ! -32768, 1430, 1430,-32768, 10601,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 778, 778, 1489, 1462, 1466, 4801,-32768,-32768, ! -32768,-32768, 1499, 12581, 1500, 1501, 1510, 2271, 2295,-32768, ! -32768,-32768,-32768, 1474,-32768,-32768, 1070, 1084,-32768, 1137, ! 1070, 12208, 1145,-32768,-32768,-32768,-32768,-32768,-32768, 74, ! -32768,-32768,-32768,-32768, 1463, 13369, 1471,-32768, 11836,-32768, ! -32768,-32768, 1556,-32768, 9275, 11836, 12581,-32768,-32768,-32768, ! 1513,-32768,-32768, 1523,-32768, 1510, 2271,-32768,-32768, 742, ! -32768,-32768, 12860, 12860, 9950,-32768, 1489,-32768,-32768,-32768, ! 401, 315,-32768, 1484, 718, 1800, 1489, 1489,-32768, 11272, ! 75,-32768,-32768, 1521, 1486, 13462,-32768,-32768,-32768,-32768, ! -32768, 1356, 175,-32768, 163,-32768,-32768, 1070,-32768,-32768, ! 828,-32768,-32768, 10043,-32768,-32768,-32768,-32768, 1356, 64, ! 64, 1527,-32768,-32768,-32768, 477,-32768, 12581, 1540,-32768, ! 1541,-32768, 1489,-32768, 1511, 1833, 161, 1543,-32768, 100, ! -32768, 1544, 1502,-32768,-32768,-32768,-32768, 12581, 1497, 742, ! 1551, 64, 742, 64, 1560,-32768,-32768, 10322, 1516, 1615, ! 907, 267,-32768,-32768, 349, 239,-32768, 10136, 1519,-32768, ! 1535, 742, 1569, 1573, 742, 1577,-32768,-32768, 12581, 907, ! -32768,-32768, 368,-32768, 1489, 1532, 1580,-32768,-32768,-32768, ! 1649, 1658,-32768 }; static const short yypgoto[] = {-32768, ! 1661,-32768, -330, 1487, -401, 44, -3, 1662,-32768, 1632, ! -32768,-32768,-32768, -1477,-32768, 280,-32768, -1476,-32768, 11, ! 894, 37, -387,-32768,-32768, 97,-32768, -725,-32768,-32768, ! 579, 36, 1508, 1207, 1515,-32768, -31, -178, -808,-32768, ! -21, 186,-32768,-32768,-32768,-32768,-32768, 510,-32768,-32768, ! -32768,-32768,-32768,-32768, 399, -14,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1598, -759, 7802, ! -180, 28, -681, -247, -70, 1555, -603,-32768, 131,-32768, ! 62,-32768, -1574,-32768, -1370, 39, 1266, -322,-32768, -935, ! 7005, 5257, 6906, 1950, 4998, 1391, -343, -66, -81, 834, ! -134, -76, 119,-32768,-32768,-32768, -340,-32768, -162,-32768, ! -32768, -1524, 61, -349, 4916, 54, 17, -101, 43, 59, ! -204,-32768,-32768,-32768, -1, -165, -168, -166, 0, -38, ! -266,-32768, -397,-32768,-32768,-32768,-32768,-32768, 555, 1354, ! 3136,-32768, 633,-32768,-32768, -1325, -480, 891,-32768,-32768, ! -32768,-32768, 42,-32768,-32768,-32768,-32768,-32768,-32768, 980, ! -390,-32768,-32768,-32768,-32768,-32768,-32768, 379, 552,-32768, ! -32768,-32768, 347, -1068,-32768,-32768,-32768,-32768,-32768,-32768, ! 544,-32768, 260, 992,-32768, 679, 1056, 2999, 81, 1536, ! 2626, 1770,-32768, -516,-32768, 12, 1899, 3865, -136, 298, ! -63, 5586, 1374,-32768, 6554, 2282, 1962, -16, -108,-32768, ! 1622, -58,-32768, 6007, 3657, -69,-32768, 3173, 524,-32768, ! -32768, 203,-32768,-32768, 272, 1124,-32768, -1252,-32768,-32768, ! -32768, -1512,-32768, -1449, 31,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 20, ! -32768,-32768,-32768,-32768,-32768, 24, -1364,-32768,-32768, -56, ! -32768,-32768,-32768,-32768, -738, -1420,-32768, -24, -1376, -762, ! -173, 919,-32768,-32768,-32768,-32768, -410,-32768, -409, -213, ! -32768, 99,-32768,-32768, 2380, 338,-32768, 92,-32768, 5700, ! -243, -766 }; ! #define YYLAST 13571 ! static const short yytable[] = { 106, ! 37, 469, 63, 826, 461, 267, 126, 119, 1060, 1114, ! 188, 530, 470, 795, 796, 471, 708, 562, 446, 449, ! 59, 413, 500, 180, 374, 108, 375, 458, 719, 645, ! 313, 720, 37, 794, 63, 901, 787, 944, 552, 258, ! 1105, 704, 706, 63, 183, 1043, 60, 36, 719, 1230, ! 554, 720, 59, 1126, 241, 420, 421, 58, 216, 537, ! 539, 59, 61, 775, 812, 549, 1499, 1503, 1099, 412, ! 419, 431, 255, 267, 422, 1775, 1610, 1612, 60, 36, ! 177, 176, 566, 1662, 74, 311, 184, 182, 175, 58, ! 366, 795, 852, 366, 61, 366, 274, 683, 181, 1588, ! 45, 683, 86, 61, 229, 1347, 606, 1349, 1482, 264, ! 366, 147, 152, 409, 529, 1379, 74, 1376, 203, 1106, ! 89, 1735, 383, -879, 538, 74, 726, 727, 723, 1515, ! 1516, -636, 45, 267, 86, 885, 98, 859, 428, 441, ! 366, 45, 366, 1165, 1190, 310, 1537, 708, 723, 466, ! 1195, 830, 161, 180, 395, 1793, 59, 905, 858, 1776, ! 396, 606, 478, 1763, 1794, -1, 90, 312, 91, 63, ! 1732, 1676, 1305, 63, 183, 1166, 430, -636, -636, 1772, ! 216, 533, 427, 801, 802, 1483, 683, 59, -2, 1377, ! 1080, 59, -636, 426, 497, 809, 1569, 92, 61, 1113, ! 831, 112, 1296, 832, 1744, 1575, 1576, 99, 1577, 1795, ! 177, 176, 169, 60, 1749, 1750, 184, 182, 175, 366, ! 74, 1306, -137, -137, 58, 1790, -137, -137, 181, 61, ! 1760, 548, 550, 61, 490, 445, 448, 45, 1081, 1761, ! 667, 203, 386, 15, 564, 215, 560, -451, 943, 1738, ! 170, 74, 1610, 1612, 496, 74, 877, 229, 479, 479, ! 1786, 1259, -136, 1297, 884, 846, 229, 229, 274, 86, ! 1791, 45, -334, 161, 161, 161, 498, 693, -451, 689, ! 511, 514, -451, 40, 1762, 1271, 668, 1758, 1274, 1380, ! 565, 1427, 1405, 1445, 688, 96, 229, 100, 114, 115, ! 680, -327, 1124, 1815, 571, 728, 1683, 1684, 1583, 458, ! 255, 817, 1828, 1583, 847, 40, 97, 848, -334, -334, ! 161, 624, 113, 857, 1787, 425, -451, 507, 1812, 271, ! 139, 164, 10, -327, 8, 9, 667, 1381, 1408, 1428, ! 1780, 1446, 366, 1291, 1292, 131, 132, 778, 1816, 1453, ! 783, 534, 229, 116, 117, 311, 1584, 142, 18, -312, ! 1753, 1639, 803, 537, 539, 255, 740, 215, 1286, 21, ! 891, 1679, 537, 1806, 366, 731, 1813, 1654, 771, 446, ! 449, 720, 668, 274, 458, 452, 453, 314, 539, 134, ! 135, 740, 1692, 59, 1499, 830, 1094, 26, 167, 454, ! 134, 135, 1379, 274, -661, -312, -312, 229, 1709, 455, ! 1812, 1111, 1112, 168, 607, 310, 1805, 33, 94, 427, ! -312, 456, 793, 185, 608, 216, 189, -152, 883, 1812, ! 730, 366, 324, 193, 1389, 61, 1391, 312, 1823, 95, ! 539, 638, 562, 639, 831, 1084, 814, 832, 26, -873, ! -661, -661, 164, 164, 164, 483, -154, 74, 1814, 1115, ! 94, 1116, 892, 893, 1692, -661, 63, 183, 142, 229, ! 1491, 562, 889, 484, 1692, 1692, -399, 1827, 15, 1338, ! 1044, 95, 496, 713, 59, 684, 798, 271, 416, 417, ! 10, 557, 685, 216, 1289, 96, 255, 194, 96, 164, ! 793, 485, 888, 221, 498, -635, 1231, 1117, 18, 184, ! 182, -399, 1424, 1425, 26, -399, 97, 1118, 1119, 97, ! 1692, 181, 252, 490, 96, 314, 61, 21, 1115, 714, ! 1116, 892, 893, -153, 686, 373, 890, 558, 229, 1352, ! 26, 366, 927, 28, 272, 97, 693, -399, 74, -336, ! 143, -635, -635, 1120, 836, 1107, 842, 844, 393, 143, ! 496, 1459, 729, 398, -336, 379, -635, -400, -336, 15, ! 229, 229, 1692, 433, 1353, 687, 1117, 195, 1354, 229, ! 144, 1452, 498, 26, 95, -336, 1118, 1119, -138, -138, ! 397, -130, 857, 15, 1458, 229, 866, 867, -336, -336, ! 401, -336, -400, -336, 131, 132, -400, -313, 402, 566, ! 1355, 366, 916, 1570, 174, 1001, 366, 933, 933, 933, ! 933, 680, 1120, 196, 197, 433, -130, 399, 951, 366, ! -130, -336, -336, 1110, 161, 161, 161, 248, -400, 366, ! 423, 249, 366, 131, 132, 986, -336, 229, 97, 641, ! 901, 1003, 490, -313, -313, 879, 26, 94, 917, 134, ! 135, 1002, -130, 987, 986, 638, 1460, 639, -313, 1323, ! 1325, 999, 400, 990, 1095, 366, 311, 195, 95, 1205, ! 1162, 1163, 987, 991, 795, 796, 1167, 380, 131, 132, ! 1096, 988, 719, 142, 793, 720, 992, 1004, 134, 135, ! 1039, 366, 1089, 366, 794, 497, 490, 787, 1087, 645, ! 988, 1404, 490, 783, 490, 490, -327, 537, 1554, 1660, ! 1090, 433, 274, 196, 525, 223, 224, 451, 606, 459, ! 458, 142, 14, 500, 381, 1005, 310, 1399, 1401, 500, ! 1152, -656, 475, 382, 135, 490, 133, 1298, 930, 18, ! 1300, 1565, 490, 318, 496, 20, 26, 1302, 312, -7, ! 1657, 170, 490, 267, 23, 496, 693, 263, 126, 473, ! 1092, -128, 229, 15, 1008, 1011, 498, 366, 958, 1100, ! 1124, 1006, 1554, 474, 250, 477, 1153, 498, 251, 1023, ! 1046, 487, 723, 1299, 413, 556, 1301, -311, 543, -662, ! 563, -336, 1125, 1303, 1320, 980, -128, 720, 553, 951, ! -128, 997, 857, 164, 164, 164, 433, 604, 131, 132, ! 1356, 142, 901, 1513, 1401, 573, 1688, 1017, 259, 8, ! 260, 10, 575, 793, 229, 1024, 1025, 1191, 1192, 1285, ! 1193, 497, -128, -311, -311, -662, -662, -336, -336, 581, ! 500, 614, 274, 844, 1554, 1448, 617, 15, -311, 618, ! -662, -451, -330, 222, 223, 224, 1357, 159, 21, 1514, ! 26, 14, 1689, 134, 135, 261, 1767, 958, 380, 8, ! 9, 490, 619, 858, 262, 29, 701, 990, 18, 709, ! 712, -451, -451, 496, 20, 490, -451, 991, 620, 458, ! 621, 496, 63, 23, 1322, 793, 366, 366, 263, 366, ! 992, 793, 622, 1131, 1132, 498, 33, 1488, 683, 799, ! 59, 143, 1768, 498, 229, 381, 641, 1730, 230, 231, ! -155, 1180, 1554, 1293, 382, 135, 1764, 544, 15, 230, ! 472, 545, -451, 1384, 1385, 1386, 1182, 1174, 1154, 1155, ! 1339, 1340, 1341, 161, 523, 524, 1734, 94, 263, 556, ! 94, 161, 61, 724, 742, 496, 1571, 743, 1510, 1641, ! 1554, 496, -451, -451, 229, 100, 114, 115, 95, 531, ! 532, 95, 933, 767, 74, 779, 1233, 498, 780, 447, ! 450, 523, 815, 498, 131, 132, 446, 449, 100, 101, ! 102, 458, 233, 234, 235, 446, 449, 1554, 1556, 96, ! 380, 131, 132, 1202, 1203, 1204, 933, 838, 1642, 701, ! 709, 712, 793, 500, 95, 500, 490, 18, 497, 97, ! 97, 116, 117, 236, 733, 159, 531, 816, 806, 693, ! 490, -6, 490, 819, 490, 810, 26, 274, 828, 134, ! 135, 26, 829, 914, 103, 104, 237, 381, 845, 1809, ! 96, 267, 856, 694, 873, 771, 382, 135, 100, 101, ! 102, 669, -872, 695, 145, 131, 132, 10, 854, 1092, ! 13, 97, 496, 665, 666, 696, 697, 886, 496, 1177, ! 570, 1343, 887, 793, 908, 933, 366, 15, 96, 915, ! 238, 239, 240, 18, 498, 131, 132, 909, 1008, 1011, ! 498, 670, 671, 910, 21, 672, 673, 674, 675, 97, ! 490, 26, 1236, 911, 103, 104, 105, 26, 1581, 1582, ! 28, 29, 164, 793, 765, 766, 918, 1344, 1350, 1351, ! 164, 919, 497, 937, 31, 523, 1711, 133, 1382, 795, ! 1623, 933, -878, 496, 32, 1261, 998, 26, 490, 274, ! 134, 135, 33, 939, 1409, 1410, 34, 1412, 1494, -194, ! 500, 1416, 63, -56, 63, 498, 1000, 634, -56, 1018, ! 216, 1020, 63, 500, 142, -194, 940, -194, 543, -56, ! 59, 943, 59, 496, 1041, 793, 1049, 793, 531, 1712, ! 59, 1180, 496, 1180, 1400, 933, 523, 1716, 1050, 1180, ! 1051, 1180, 1082, 1308, 1309, 498, 1182, 1174, 1182, 1174, ! 131, 132, 1308, 1309, 498, 1083, 1182, 1174, 1086, 1348, ! 1088, 1093, 61, 20, 61, -330, 1097, 100, 114, 115, ! 366, 1362, 61, 1098, -613, 1101, 1109, 1108, -613, 1129, ! 1164, 161, 161, 161, 74, 496, 74, 496, 1150, 1157, ! 161, 161, 161, 1158, 74, 1161, 793, 858, 1206, 1208, ! 1209, 1210, 26, 1214, 1211, 134, 135, 498, 1212, 498, ! 1125, 1213, 1216, 1215, 1020, -151, 1219, 1218, 447, 807, ! 1400, 161, 267, 116, 117, 118, 1221, -613, 1222, -613, ! -613, 1226, -613, 536, 223, 224, 380, 8, 9, 1223, ! 793, 14, 1224, -613, 1225, -613, 709, 100, 114, 115, ! 559, 1227, 1462, 1228, 1238, 1240, 496, 1817, 1464, 1465, ! -613, -613, 1462, 1467, 20, 1241, 1465, 490, 1242, 490, ! 500, 490, 793, 23, 1243, -613, 1008, 1011, 498, 1251, ! 447, 450, 1252, 381, 1253, 793, 1262, 21, 1263, 1177, ! 1264, 1177, 382, 135, 1265, 1269, 1361, 1371, 1413, 1177, ! 496, 1277, 1270, 116, 117, 858, 63, 1278, 415, 416, ! 417, 10, 1280, 1284, 146, 146, 570, 162, 1283, 1304, ! 1440, 1441, 498, 1318, 59, 1383, 264, 1337, 259, 131, ! 132, 10, 496, 1387, 1393, 1180, 1394, 1406, 1362, 1402, ! 1395, 1154, 1155, 219, 1396, 496, 228, 1407, 21, 1411, ! 1182, 1174, 245, 1415, 498, 261, 1417, 256, 131, 132, ! 164, 164, 164, 566, 262, 272, 61, 498, 21, 164, ! 164, 164, 1160, 933, 1418, 261, 1668, 1419, 1673, 1670, ! 1422, 1423, 1429, 1430, 262, 29, 709, 1433, 74, 1444, ! 1463, 491, 1468, 447, 938, 490, 33, 1546, 1469, 63, ! 164, 415, 8, 9, 10, -702, 1475, 634, 263, 1476, ! 26, 1477, 1489, 134, 135, 1492, 33, 59, 1493, 1500, ! 1573, 1574, 1501, 571, 1502, 1512, 484, 607, 1180, 1518, ! 435, 1542, 1543, 1544, 793, 435, 1545, 608, 444, 444, ! 162, 21, 793, 1182, 1174, 1482, 1559, 1557, 715, 1627, ! 606, 1560, 1640, 1478, 1479, 1480, 1481, 262, 272, 61, ! 1247, 1649, 1650, 1361, 1490, 219, 634, 1651, 634, 1663, ! 1033, 476, 1665, 1746, 1674, 1675, 1677, 1743, 1678, -930, ! 1609, 74, 1617, 510, 510, 519, 1695, 1247, 793, 33, ! 1696, 1700, 1702, 1177, 496, 1703, 1638, 396, 1710, 228, ! 59, 1719, 496, 1729, 1721, 1739, 446, 449, 1740, 540, ! 120, 121, 122, 1755, 1440, 1441, 498, 1655, 1656, 1781, ! 120, 121, 122, 1747, 498, 1756, 1616, 1608, 259, 8, ! 9, 10, 1784, 1785, 1792, 1788, 1617, 1615, 228, 1800, ! 1796, 1797, 61, 1803, 216, 100, 114, 115, 496, 768, ! 769, 770, 1807, 567, 59, 1810, 1811, 1801, 1818, 1819, ! 1801, 1821, 533, 26, 74, 1822, 123, 124, 21, 1824, ! 498, 1829, 1830, 1705, 1708, 261, 123, 124, 1832, 1820, ! 1616, 1608, 1801, 1247, 262, 29, 1177, 1833, 229, 1247, ! 1, 1615, 468, 5, 228, 256, 61, 166, 159, 1707, ! 1085, 116, 117, 1287, 813, 1667, 1146, 1667, 263, 120, ! 892, 893, 467, 894, 1613, 465, 33, 1725, 74, 1745, ! 1033, 1372, 1741, 1617, 1725, 1434, 377, 444, 432, 100, ! 439, 440, 447, 807, 613, 1691, 403, 404, 405, 1766, ! 490, 59, 1279, 366, 1128, 895, 1052, 1450, 1342, 228, ! 256, 100, 101, 102, 1471, 1374, 1609, 1535, 1617, 1276, ! 1053, 1653, 26, 985, 690, 123, 124, 1616, 1608, 100, ! 114, 115, 526, 233, 234, 235, 59, 310, 1615, 411, ! 827, 1587, 1725, 61, 310, 103, 117, 1555, 941, 26, ! 1752, 1789, 407, 408, 1765, 1759, 229, 1804, 18, 312, ! 1149, 1247, 1616, 1608, 236, 74, 312, 103, 104, 1247, ! 219, 228, 1509, 1615, 1701, 0, 1748, 0, 61, 0, ! 161, 0, 0, 866, 867, 116, 117, 0, 435, 0, ! 0, 435, 145, 8, 9, 10, 0, 162, 162, 162, ! 74, 0, 310, 567, 662, 663, 664, 665, 666, 1723, ! 0, 415, 8, 9, 10, 958, 1723, 206, 0, 0, ! 1247, 161, 161, 161, 312, 100, 114, 115, 0, 1247, ! 0, 0, 21, 762, 763, 764, 765, 766, 219, 0, ! 228, 256, 0, 0, 0, 26, 0, 0, 28, 29, ! 1613, 21, 447, 938, 862, 0, 0, 862, 261, 865, ! 865, 519, 200, 0, 0, 476, 0, 262, 272, 928, ! 0, 881, 201, 540, 1723, 0, 476, 380, 8, 9, ! 33, 116, 117, 0, 202, 0, 8, 9, 1783, 0, ! 145, 8, 9, 10, 1455, 1456, 13, 540, 476, 33, ! 0, 0, 0, 0, 0, 403, 404, 405, 1799, 0, ! 0, 0, 0, 0, 18, 0, 0, 0, 958, 18, ! 153, 1470, 0, 978, 381, 0, 1472, 0, 0, 979, ! 21, 981, 982, 382, 135, 0, 693, 0, 26, 1826, ! 206, 134, 135, 26, 0, 0, 28, 29, 0, 540, ! 0, 0, 406, 0, 0, 1331, 0, 447, 450, 164, ! 833, 407, 408, 0, 0, 1332, 447, 1317, 0, 1038, ! 834, 0, 162, 162, 444, 0, 0, 1333, 33, 1040, ! 0, 0, 835, 697, 0, 0, 0, 444, 0, 206, ! 0, 0, 0, 0, 0, 0, 159, 546, 101, 102, ! 164, 164, 164, 0, 0, 1521, 1522, 0, 1531, 1532, ! 0, 1534, 145, 8, 9, 10, 222, 223, 224, 0, ! 1247, 1247, 0, 0, 14, 0, 0, 145, 8, 9, ! 10, 0, 0, 269, 0, 436, 0, 1007, 1007, 1007, ! 438, 18, 223, 224, 381, 0, 444, 20, 444, 14, ! 1034, 0, 21, 547, 104, 0, 23, 0, 693, 0, ! 269, 0, 0, 1567, 1568, 26, 18, 21, 28, 29, ! 0, 0, 20, 693, 228, 1247, 0, 0, 0, 0, ! 26, 23, 833, 28, 29, 120, 892, 893, 269, 153, ! 447, 807, 834, 716, 8, 9, 10, 833, 0, 0, ! 33, 269, 0, 0, 843, 697, 0, 834, 0, 0, ! 0, 271, 131, 132, 10, 33, 1631, 1632, 1633, 835, ! 697, 0, 0, 0, 0, 0, 145, 8, 9, 10, ! 324, 717, 254, 21, 447, 807, 228, 245, 26, 0, ! 18, 123, 124, 0, 0, 0, 26, 0, 0, 718, ! 135, 21, 0, 0, 0, 18, 0, 693, 568, 0, ! 0, 269, 0, 0, 26, 0, 21, 28, 272, 120, ! 892, 893, 693, 1681, 1682, 0, 1130, 1130, 1136, 26, ! 0, 1266, 28, 29, 0, 206, 1136, 0, 0, 0, ! 0, 1267, 145, 131, 132, 10, 833, 269, 254, 33, ! 162, 0, 0, 1268, 697, 0, 834, 0, 0, 862, ! 862, 865, 865, 519, 33, 0, 0, 881, 835, 697, ! 0, 18, 0, 0, 0, 123, 124, 0, 269, 0, ! 0, 476, 21, 0, 0, 0, 0, 271, 8, 9, ! 10, 0, 0, 1232, 0, 26, 0, 0, 28, 29, ! 0, 0, 0, 206, 0, 206, 206, 1244, 0, 1245, ! 0, 1246, 31, 100, 114, 115, 0, 0, 0, 861, ! 0, 0, 32, 0, 623, 82, 228, 21, 861, 0, ! 33, 0, 206, 0, 34, 109, 0, 100, 114, 115, ! 206, 0, 0, 28, 272, 137, 0, 0, 0, 0, ! 0, 0, 150, 150, 0, 150, 0, 82, 0, 0, ! 1782, 0, 0, 0, 0, 0, 82, 0, 0, 116, ! 1704, 0, 269, 0, 0, 33, 0, 0, 0, 210, ! 0, 82, 0, 804, 0, 0, 805, 1282, 0, 0, ! 246, 0, 269, 116, 1706, 109, 0, 0, 808, 0, ! 0, 1248, 131, 132, 1248, 0, 277, 13, 109, 0, ! 0, 0, 0, 371, 0, 1256, 371, 0, 371, 0, ! 0, 1034, 1034, 1034, 0, 1295, 0, 0, 0, 0, ! 18, 0, 109, 0, 0, 0, 0, 0, 269, 0, ! 0, 0, 716, 8, 9, 10, 0, 693, 0, 436, ! 0, 0, 438, 0, 26, 0, 0, 134, 135, 137, ! 0, 82, 0, 371, 0, 371, 568, 150, 150, 0, ! 0, 694, 437, 150, 0, 0, 150, 150, 150, 324, ! 717, 695, 21, 0, 0, 0, 0, 245, 0, 0, ! 0, 0, 82, 696, 697, 26, 82, 0, 134, 135, ! 0, 0, 210, 82, 145, 8, 9, 10, 660, 661, ! 662, 663, 664, 665, 666, 415, 8, 569, 10, 0, ! 0, 210, 210, 210, 1307, 1307, 1136, 1136, 1136, 145, ! 131, 132, 10, 1316, 0, 1136, 1136, 1136, 0, 206, ! 0, 0, 0, 0, 21, 1146, 0, 1334, 1334, 1335, ! 0, 210, 269, 0, 0, 21, 0, 26, 18, 0, ! 28, 29, 261, 0, 199, 0, 162, 0, 551, 21, ! 0, 262, 272, 0, 200, 219, 0, 0, 109, 0, ! 0, 0, 26, 0, 201, 28, 29, 447, 1317, 0, ! 0, 150, 33, 0, 0, 570, 202, 0, 0, 155, ! 0, 0, 206, 33, 1435, 0, 1436, 0, 1437, 156, ! 269, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 157, 760, 761, 762, 763, 764, 765, 766, 415, ! 131, 132, 10, 109, 609, 955, 956, 0, 960, 961, ! 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, ! 972, 973, 974, 975, 976, 977, 0, 0, 0, 1034, ! 1034, 1034, 0, 0, 0, 0, 0, 131, 132, 21, ! 0, 861, 254, 0, 861, 0, 261, 0, 109, 0, ! 0, 0, 691, 0, 609, 262, 272, 609, 710, 0, ! 861, 0, 269, 0, 0, 18, 0, 371, 82, 0, ! 0, 1307, 1307, 1136, 1136, 1136, 0, 0, 1316, 8, ! 9, 269, 693, 0, 254, 0, 0, 33, 0, 26, ! 0, 0, 134, 135, 1447, 1447, 1335, 0, 0, 0, ! 0, 0, 1497, 0, 0, 137, 694, 18, 0, 0, ! 0, 0, 0, 476, 476, 109, 695, 210, 109, 0, ! 0, 131, 132, 0, 371, 0, 150, 0, 696, 697, ! 0, 26, 0, 0, 134, 135, 150, 0, 0, 150, ! 476, 0, 153, 0, 0, 476, 0, 0, 1331, 18, ! 0, 150, 0, 0, 0, 0, 0, 0, 1332, 82, ! 0, 0, 0, 0, 0, 0, 693, 0, 0, 0, ! 1333, 0, 0, 26, 804, 805, 134, 135, 0, 0, ! 0, 0, 808, 0, 0, 210, 840, 210, 210, 710, ! 694, 0, 0, 840, 0, 0, 0, 0, 0, 0, ! 695, 210, 210, 1507, 1507, 210, 1508, 210, 210, 210, ! 871, 269, 696, 697, 210, 0, 0, 0, 0, 210, ! 0, 0, 210, 0, 476, 476, 0, 476, 476, 0, ! 476, 0, 0, 0, 371, 512, 515, 0, 0, 0, ! 0, 0, 269, 0, 0, 0, 0, 0, 0, 0, ! 145, 8, 9, 10, 173, 12, 13, 0, 150, 0, ! 849, 0, 14, 0, 0, 0, 0, 1562, 1562, 1562, ! 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, ! 0, 0, 476, 476, 0, 20, 0, 0, 0, 0, ! 21, 0, 0, 0, 23, 0, 269, 0, 0, 0, ! 0, 0, 925, 26, 371, 0, 28, 29, 0, 861, ! 109, 109, 109, 109, 0, 861, 0, 0, 0, 6, ! 31, 7, 8, 9, 10, 11, 12, 13, 0, 0, ! 32, 0, 371, 14, 0, 476, 476, 476, 33, 0, ! 0, 0, 34, 0, 0, 0, 15, 16, 0, 17, ! 18, 19, 0, 0, 0, 0, 20, 0, 0, 0, ! 1367, 21, 0, 0, 22, 23, 24, 0, 25, 109, ! 0, 609, 0, 0, 26, 27, 0, 28, 29, 219, ! 228, 30, 0, 691, 0, 609, 609, 710, 0, 0, ! 0, 31, 476, 476, 0, 0, 0, 0, 1035, 0, ! 0, 32, 1037, 222, 223, 224, 269, 0, 269, 33, ! 0, 14, 0, 34, 0, 0, 0, 35, 0, 0, ! 0, 210, 0, 0, 0, 0, 0, 0, 18, 0, ! 0, 0, 0, 0, 20, 519, 0, 0, 0, 436, ! 438, 0, 0, 23, 0, 0, 0, 0, 568, 0, ! 145, 8, 9, 10, 0, 0, 13, 0, 0, 1047, ! 1290, 0, 1319, 8, 9, 10, 0, 0, 137, 0, ! 371, 0, 0, 0, 0, 137, 865, 865, 865, 18, ! 0, 0, 0, 0, 210, 246, 861, 0, 228, 0, ! 21, 0, 270, 0, 0, 861, 693, 0, 0, 324, ! 717, 0, 21, 26, 0, 0, 28, 29, 0, 269, ! 0, 0, 269, 861, 861, 26, 0, 0, 28, 272, ! 1133, 0, 0, 0, 210, 210, 1138, 1367, 0, 476, ! 1134, 0, 1141, 0, 1138, 0, 0, 0, 33, 222, ! 223, 224, 1135, 697, 0, 0, 863, 14, 0, 864, ! 33, 512, 515, 210, 0, 0, 871, 210, 210, 871, ! 871, 871, 0, 882, 18, 210, 0, 0, 0, 0, ! 20, 0, 210, 460, 0, 0, 0, 8, 9, 23, ! 0, 1403, 566, 0, 0, 0, 0, 0, 0, 0, ! 0, 145, 8, 9, 10, 82, 0, 566, 109, 371, ! 371, 0, 371, 0, 109, 18, 509, 0, 0, 0, ! 0, 232, 0, 609, 609, 609, 804, 805, 0, 528, ! 18, 0, 0, 808, 609, 0, 861, 0, 0, 26, ! 0, 21, 134, 135, 0, 0, 0, 693, 0, 0, ! 0, 0, 1529, 0, 26, 0, 1331, 28, 29, 0, ! 0, 0, 0, 0, 0, 0, 1332, 0, 0, 0, ! 0, 833, 0, 0, 0, 0, 0, 0, 1333, 1159, ! 0, 834, 0, 0, 0, 109, 0, 131, 132, 33, ! 0, 0, 566, 835, 697, 0, 861, 861, 0, 0, ! 0, 232, 0, 0, 0, 1189, 0, 0, 609, 609, ! 0, 1194, 609, 0, 0, 18, 0, 232, 0, 109, ! 0, 0, 0, 609, 0, 109, 0, 0, 0, 1035, ! 1035, 1035, 693, 0, 0, 609, 0, 1141, 0, 26, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, ! 269, 861, 271, 416, 417, 10, 694, 0, 0, 0, ! 8, 9, 0, 173, 12, 13, 695, 0, 0, 489, ! 0, 14, 0, 0, 232, 0, 0, 0, 696, 697, ! 0, 0, 0, 232, 0, 16, 0, 17, 18, 0, ! 0, 0, 21, 0, 20, 0, 109, 0, 109, 371, ! 232, 0, 0, 23, 206, 693, 206, 0, 28, 272, ! 0, 232, 26, 0, 0, 134, 135, 0, 1254, 0, ! 1255, 0, 0, 269, 0, 0, 0, 0, 0, 694, ! 0, 210, 210, 210, 210, 210, 1138, 871, 0, 695, ! 33, 210, 0, 1138, 1138, 1138, 0, 269, 0, 1141, ! 0, 696, 697, 0, 109, 871, 871, 871, 658, 659, ! 660, 661, 662, 663, 664, 665, 666, 0, 8, 9, ! 0, 137, 0, 13, 150, 82, 0, 82, 512, 515, ! 0, 0, 1369, 82, 0, 82, 0, 0, 0, 271, ! 416, 417, 10, 0, 0, 0, 18, 0, 109, 0, ! 109, 0, 0, 0, 0, 0, 0, 0, 109, 0, ! 0, 863, 864, 512, 515, 206, 0, 0, 0, 882, ! 26, 0, 0, 134, 135, 0, 0, 0, 0, 21, ! 271, 131, 132, 10, 0, 609, 609, 1331, 609, 874, ! 0, 0, 26, 371, 880, 28, 272, 1332, 0, 609, ! 0, 8, 9, 0, 173, 12, 13, 609, 0, 1333, ! 489, 0, 14, 0, 0, 0, 0, 609, 609, 710, ! 21, 0, 0, 0, 0, 906, 16, 33, 17, 18, ! 0, 0, 912, 0, 0, 20, 28, 272, 0, 0, ! 232, 0, 0, 0, 23, 1388, 693, 1390, 0, 232, ! 0, 0, 0, 26, 0, 0, 134, 135, 210, 210, ! 210, 871, 871, 1442, 0, 0, 210, 210, 33, 0, ! 1504, 0, 0, 0, 0, 922, 923, 0, 924, 0, ! 1505, 232, 871, 871, 871, 871, 871, 0, 0, 0, ! 0, 0, 1506, 697, 0, 109, 0, 0, 0, 1369, ! 0, 0, 0, 0, 0, 0, 0, 1421, 109, 0, ! 0, 0, 0, 0, 0, 232, 0, 0, 8, 9, ! 0, 1466, 0, 254, 232, 0, 0, 0, 0, 82, ! 85, 0, 0, 8, 9, 0, 0, 0, 566, 0, ! 111, 0, 0, 0, 0, 232, 18, 0, 0, 130, ! 138, 0, 0, 0, 0, 0, 0, 151, 151, 0, ! 151, 18, 85, 693, 0, 0, 0, 1021, 1022, 0, ! 26, 85, 232, 134, 135, 0, 1021, 0, 693, 0, ! 0, 0, 0, 0, 151, 26, 85, 1504, 134, 135, ! 0, 871, 871, 0, 871, 247, 109, 1505, 871, 0, ! 257, 0, 1504, 0, 0, 0, 0, 0, 0, 1506, ! 697, 0, 1505, 257, 210, 0, 0, 0, 372, 150, ! 0, 372, 82, 372, 1506, 697, 863, 864, 512, 515, ! 0, 0, 0, 0, 0, 882, 0, 512, 515, 758, ! 759, 760, 761, 762, 763, 764, 765, 766, 0, 863, ! 864, 882, 0, 0, 0, 871, 871, 1442, 871, 871, ! 0, 0, 0, 0, 0, 109, 85, 0, 372, 1495, ! 372, 0, 151, 151, 0, 0, 0, 0, 151, 0, ! 0, 151, 151, 151, 0, 0, 0, 8, 9, 0, ! 0, 12, 13, 1358, 1359, 9, 10, 85, 14, 0, ! 1511, 85, 0, 0, 0, 1140, 1517, 151, 85, 0, ! 0, 109, 16, 871, 17, 18, 0, 0, 0, 0, ! 0, 20, 1538, 1539, 0, 0, 151, 151, 151, 0, ! 23, 0, 0, 21, 0, 0, 1009, 1012, 78, 26, ! 1156, 0, 134, 135, 676, 1558, 26, 0, 0, 28, ! 29, 0, 0, 1454, 0, 1360, 151, 0, 0, 0, ! 0, 0, 0, 200, 0, 0, 210, 840, 210, 0, ! 78, 0, 0, 201, 0, 0, 0, 0, 677, 78, ! 0, 33, 1196, 0, 1198, 202, 0, 0, 0, 1579, ! 1580, 0, 208, 0, 220, 0, 151, 8, 9, 0, ! 0, 12, 13, 863, 864, 512, 515, 0, 14, 0, ! 882, 0, 1625, 1626, 0, 1628, 415, 131, 132, 10, ! 0, 0, 16, 1138, 17, 18, 512, 515, 0, 0, ! 0, 20, 0, 0, 0, 0, 0, 0, 257, 611, ! 23, 0, 0, 0, 0, 0, 0, 0, 0, 26, ! 0, 0, 134, 135, 0, 0, 21, 0, 1234, 1235, ! 0, 1237, 0, 261, 1138, 1138, 1138, 232, 0, 0, ! 232, 0, 262, 272, 429, 1009, 1012, 210, 0, 0, ! 434, 0, 0, 257, 0, 0, 232, 692, 984, 611, ! 0, 1258, 611, 711, 0, 0, 570, 0, 722, 0, ! 0, 0, 372, 85, 33, 78, 0, 0, 0, 78, ! 0, 0, 0, 0, 0, 208, 220, 0, 722, 0, ! 0, 0, 145, 8, 9, 10, 222, 223, 224, 1718, ! 0, 0, 0, 0, 14, 863, 864, 0, 882, 0, ! 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 257, 18, 151, 257, 0, 0, 0, 20, 0, 372, ! 0, 151, 21, 0, 208, 0, 23, 0, 693, 0, ! 0, 151, 0, 0, 151, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, ! 0, 0, 833, 0, 85, 145, 8, 9, 10, 512, ! 515, 0, 834, 0, 0, 0, 0, 1315, 0, 0, ! 33, 0, 232, 0, 835, 697, 0, 0, 0, 0, ! 151, 841, 151, 151, 711, 0, 0, 0, 841, 0, ! 0, 0, 0, 0, 0, 21, 151, 151, 0, 232, ! 151, 0, 151, 151, 151, 611, 0, 0, 26, 151, ! 1249, 28, 29, 1250, 151, 1666, 0, 151, 0, 0, ! 0, 8, 9, 0, 1257, 200, 13, 0, 0, 372, ! 1009, 1012, 0, 0, 0, 201, 0, 0, 903, 0, ! 0, 0, 0, 33, 0, 0, 0, 202, 0, 18, ! 0, 0, 0, 151, 0, 0, 0, 0, 145, 8, ! 9, 10, 173, 12, 13, 0, 693, 0, 489, 0, ! 14, 732, 0, 26, 0, 0, 134, 135, 0, 0, ! 1420, 0, 0, 0, 16, 0, 17, 18, 0, 0, ! 1504, 0, 0, 20, 0, 232, 0, 0, 21, 372, ! 1505, 232, 23, 0, 693, 257, 257, 257, 257, 0, ! 0, 26, 1506, 697, 28, 29, 0, 0, 0, 0, ! 208, 0, 0, 0, 0, 0, 0, 372, 1133, 434, ! 0, 8, 9, 1249, 1250, 1009, 1012, 0, 1134, 0, ! 0, 1443, 1257, 0, 1009, 1012, 33, 0, 0, 0, ! 1135, 697, 0, 0, 0, 0, 0, 0, 0, 18, ! 0, 0, 78, 0, 257, 0, 611, 0, 512, 515, ! 0, 1451, 415, 8, 9, 10, 693, 0, 0, 0, ! 611, 611, 711, 26, 1457, 0, 134, 135, 208, 839, ! 208, 208, 0, 1036, 0, 0, 850, 0, 0, 0, ! 1504, 0, 0, 0, 434, 0, 0, 0, 722, 0, ! 1505, 1473, 21, 232, 0, 1474, 151, 208, 0, 261, ! 0, 232, 1506, 697, 0, 208, 0, 0, 262, 272, ! 0, 0, 0, 0, 0, 0, 0, 0, 271, 131, ! 132, 10, 0, 0, 13, 415, 8, 9, 10, 0, ! 1496, 0, 263, 0, 0, 0, 0, 0, 0, 0, ! 33, 434, 0, 784, 0, 372, 0, 18, 1009, 1012, ! 0, 130, 232, 0, 0, 0, 0, 0, 21, 151, ! 247, 232, 0, 0, 693, 21, 0, 0, 0, 0, ! 0, 26, 261, 0, 28, 272, 0, 0, 0, 232, ! 232, 262, 272, 1540, 1541, 903, 0, 0, 1266, 0, ! 1249, 1250, 1009, 1012, 0, 0, 0, 1257, 1267, 151, ! 151, 841, 0, 0, 0, 570, 33, 0, 0, 1148, ! 1268, 697, 0, 33, 0, 145, 8, 9, 10, 0, ! 1563, 1564, 0, 0, 0, 0, 1566, 0, 151, 0, ! 0, 611, 151, 151, 611, 611, 611, 0, 0, 0, ! 151, 0, 0, 0, 18, 0, 0, 151, 0, 0, ! 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, ! 0, 693, 0, 0, 0, 0, 0, 0, 26, 0, ! 85, 28, 29, 257, 372, 372, 0, 372, 0, 257, ! 0, 0, 0, 0, 0, 833, 0, 0, 611, 611, ! 611, 0, 232, 0, 0, 834, 0, 0, 0, 611, ! 0, 0, 0, 33, 208, 0, 0, 835, 697, 754, ! 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, ! 765, 766, 1249, 1250, 0, 1257, 0, 0, 0, 0, ! 0, 0, 0, 0, 172, 1680, 145, 8, 9, 10, ! 173, 12, 13, 0, 0, 0, 0, 0, 14, 0, ! 257, 0, 232, 232, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 0, 17, 18, 19, 208, 0, 0, ! 0, 20, 0, 611, 611, 0, 21, 611, 0, 0, ! 23, 0, 0, 174, 257, 0, 1009, 1012, 611, 26, ! 257, 0, 28, 29, 1036, 1036, 1036, 0, 0, 0, ! 611, 0, 722, 0, 0, 0, 31, 232, 0, 0, ! 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, ! 0, 0, 0, 0, 33, 0, 0, 0, 34, 0, ! 0, 0, 35, 0, 0, 0, 434, 271, 8, 9, ! 10, 656, 657, 13, 658, 659, 660, 661, 662, 663, ! 664, 665, 666, 0, 0, 434, 0, 0, 0, 0, ! 0, 257, 0, 257, 372, 0, 18, 0, 0, 0, ! 0, 415, 131, 1533, 10, 0, 0, 21, 1187, 0, ! 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, ! 26, 0, 0, 28, 272, 0, 151, 151, 151, 151, ! 151, 841, 611, 0, 0, 0, 151, 1310, 1148, 1148, ! 1148, 21, 0, 0, 722, 0, 0, 1311, 261, 257, ! 611, 611, 611, 1697, 0, 33, 0, 262, 272, 1312, ! 697, 0, 0, 903, 0, 0, 138, 0, 0, 151, ! 85, 0, 85, 0, 0, 0, 0, 1370, 85, 0, ! 85, 570, 0, 0, 0, 0, 0, 0, 0, 33, ! 0, 0, 0, 257, 0, 257, 0, 0, 0, 0, ! 0, 0, 0, 257, 0, 1698, 745, 746, 747, 748, ! 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, ! 759, 760, 761, 762, 763, 764, 765, 766, 0, 0, ! 611, 611, 0, 611, 0, 0, 0, 0, 372, 0, ! 0, 0, 0, 0, 611, 271, 8, 9, 10, 173, ! 12, 13, 611, 0, 0, 489, 0, 14, 0, 0, ! 0, 0, 611, 611, 711, 0, 0, 0, 0, 0, ! 0, 16, 0, 17, 18, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 0, 23, ! 0, 693, 0, 903, 0, 0, 0, 0, 26, 0, ! 0, 28, 272, 151, 151, 151, 611, 611, 711, 0, ! 0, 151, 151, 0, 0, 1266, 0, 0, 0, 271, ! 8, 9, 10, 0, 0, 1267, 0, 611, 611, 611, ! 611, 611, 0, 33, 434, 903, 0, 1268, 697, 0, ! 257, 54, 0, 0, 1370, 0, 0, 0, 18, 0, ! 0, 0, 0, 257, 0, 0, 0, 0, 0, 21, ! 0, 0, 0, 0, 0, 693, 0, 390, 54, 54, ! 0, 158, 26, 54, 85, 28, 272, 0, 1187, 0, ! 1187, 0, 54, 0, 0, 1368, 1375, 0, 1187, 1310, ! 0, 0, 0, 0, 0, 54, 0, 54, 0, 1311, ! 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 1312, 697, 0, 0, 0, 0, 0, 0, 265, ! 0, 0, 273, 0, 0, 145, 131, 132, 10, 0, ! 0, 13, 0, 0, 0, 0, 611, 611, 0, 611, ! 0, 257, 0, 611, 0, 0, 0, 0, 0, 0, ! 0, 493, 0, 0, 18, 0, 0, 0, 0, 151, ! 0, 0, 0, 0, 151, 21, 0, 85, 0, 0, ! 0, 0, 0, 0, 418, 418, 535, 54, 26, 0, ! 0, 28, 29, 54, 54, 0, 0, 265, 273, 54, ! 0, 0, 158, 158, 158, 155, 0, 0, 0, 457, ! 611, 611, 711, 611, 611, 156, 0, 0, 54, 0, ! 257, 434, 54, 33, 0, 0, 0, 157, 54, 54, ! 434, 0, 0, 8, 9, 0, 173, 12, 13, 0, ! 0, 0, 0, 0, 14, 0, 0, 54, 54, 158, ! 0, 0, 0, 0, 0, 0, 0, 265, 16, 0, ! 17, 18, 1368, 0, 0, 0, 257, 20, 611, 0, ! 0, 0, 0, 0, 0, 0, 785, 54, 0, 786, ! 0, 0, 0, 0, 0, 26, 0, 0, 134, 135, ! 0, 0, 1187, 0, 0, 0, 0, 0, 0, 0, ! 145, 8, 9, 10, 173, 12, 13, 0, 0, 636, ! 1659, 0, 14, 0, 0, 0, 0, 54, 0, 0, ! 0, 151, 841, 151, 265, 0, 16, 0, 17, 18, ! 19, 0, 0, 0, 0, 20, 0, 0, 8, 9, ! 21, 0, 12, 254, 23, 0, 0, 174, 0, 14, 0, 0, 0, 26, 0, 0, 28, 29, 0, 0, ! 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, ! 31, 0, 20, 0, 0, 0, 0, 1530, 1148, 0, ! 32, 23, 1530, 693, 0, 1187, 0, 0, 33, 792, ! 26, 633, 34, 134, 135, 0, 35, 0, 353, 0, ! 0, 353, 0, 353, 0, 0, 0, 694, 418, 0, ! 0, 0, 0, 0, 0, 0, 0, 695, 265, 1148, ! 1148, 1148, 0, 0, 54, 0, 0, 0, 0, 696, ! 697, 0, 151, 0, 0, 0, 0, 0, 265, 0, ! 0, 0, 131, 132, 0, 0, 223, 224, 353, 0, ! 353, 0, 0, 14, 0, 0, 0, 0, 0, 0, ! 0, 418, 0, 0, 0, 0, 0, 792, 0, 0, ! 18, 0, 0, 54, 0, 0, 20, 0, 0, 0, ! 0, 0, 54, 0, 265, 23, 0, 693, 0, 0, ! 0, 457, 54, 0, 26, 54, 0, 134, 135, 0, ! 0, 457, 457, 457, 0, 0, 0, 54, 0, 0, ! 0, 694, 0, 0, 0, 54, 0, 0, 0, 0, ! 0, 695, 0, 0, 0, 0, 0, 0, 0, 208, ! 1671, 208, 0, 707, 697, 0, 0, 1358, 1359, 9, ! 10, 54, 54, 54, 54, 0, 0, 0, 0, 54, ! 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, ! 0, 54, 0, 158, 158, 158, 457, 0, 0, 0, ! 54, 0, 0, 0, 0, 54, 0, 21, 54, 0, ! 0, 0, 0, 931, 932, 934, 935, 936, 0, 0, ! 26, 0, 0, 28, 29, 0, 636, 0, 0, 1360, ! 0, 0, 0, 0, 0, 0, 0, 200, 0, 954, ! 0, 0, 0, 0, 54, 0, 0, 201, 0, 0, ! 0, 0, 0, 0, 0, 33, 0, 615, 616, 202, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, ! 208, 353, 983, 625, 0, 0, 626, 0, 0, 627, ! 0, 0, 637, 0, 0, 0, 642, 0, 0, 0, ! 0, 1013, 0, 0, 682, 0, 80, 80, 1026, 80, ! 1027, 80, 1013, 0, 0, 0, 633, 633, 633, 0, ! 80, 0, 353, 0, 0, 0, 0, 0, 0, 0, ! 0, 633, 0, 80, 0, 80, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 764, 765, 766, 145, 8, 9, 10, 222, 223, 224, ! 275, 654, 655, 656, 657, 14, 658, 659, 660, 661, ! 662, 663, 664, 665, 666, 0, 0, 0, 265, 353, ! 0, 0, 18, 0, 0, 0, 0, 0, 20, 0, ! 633, 0, 633, 21, 633, 0, 0, 23, 0, 693, ! 0, 0, 0, 0, 0, 0, 26, 0, 0, 28, ! 29, 0, 0, 0, 0, 80, 0, 54, 0, 0, ! 0, 80, 80, 200, 0, 0, 275, 80, 0, 0, ! 80, 80, 80, 201, 0, 0, 0, 0, 0, 0, ! 1013, 33, 0, 0, 0, 1672, 80, 0, 1013, 0, ! 80, 0, 0, 0, 0, 0, 80, 80, 0, 0, ! 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, ! 0, 418, 0, 0, 0, 80, 80, 80, 0, 0, ! 54, 131, 132, 0, 0, 223, 224, 0, 0, 353, ! 0, 0, 14, 755, 756, 757, 758, 759, 760, 761, ! 762, 763, 764, 765, 766, 80, 0, 0, 0, 18, ! 0, 0, 493, 0, 0, 20, 0, 0, 493, 0, ! 54, 54, 158, 0, 23, 0, 693, 265, 273, 0, ! 1145, 0, 0, 26, 0, 0, 134, 135, 0, 0, ! 0, 0, 0, 0, 633, 80, 0, 0, 0, 54, ! 694, 0, 457, 54, 54, 457, 457, 457, 0, 353, ! 695, 54, 0, 0, 0, 0, 0, 0, 54, 0, ! 0, 0, 696, 697, 0, 625, 626, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 353, 0, 1229, ! 0, 54, 353, 353, 0, 353, 353, 353, 353, 353, ! 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ! 353, 353, 353, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 954, 0, 0, 0, 0, 0, 493, ! 653, 654, 655, 656, 657, 1013, 658, 659, 660, 661, ! 662, 663, 664, 665, 666, 0, 0, 721, 0, 0, ! 0, 0, 80, 753, 754, 755, 756, 757, 758, 759, ! 760, 761, 762, 763, 764, 765, 766, 721, 574, 576, ! 577, 578, 579, 580, 0, 582, 583, 584, 585, 586, ! 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, ! 597, 598, 599, 600, 601, 602, 603, 0, 605, 0, ! 792, 80, 1288, 0, 0, 0, 0, 0, 0, 0, ! 80, 0, 0, 0, 0, 633, 633, 633, 0, 0, ! 80, 457, 265, 80, 0, 353, 0, 0, 0, 0, ! 165, 0, 0, 0, 0, 80, 0, 0, 0, 0, ! 1013, 0, 0, 80, 145, 8, 9, 10, 0, 1013, ! 13, 0, 0, 0, 211, 655, 656, 657, 1328, 658, ! 659, 660, 661, 662, 663, 664, 665, 666, 0, 80, ! 80, 80, 80, 18, 0, 0, 0, 80, 0, 0, ! 0, 0, 0, 0, 21, 80, 80, 0, 0, 80, ! 0, 80, 80, 80, 0, 0, 0, 26, 80, 0, ! 28, 29, 493, 80, 493, 0, 80, 0, 0, 0, ! 0, 0, 1392, 0, 200, 0, 0, 54, 54, 54, ! 158, 158, 158, 457, 201, 265, 0, 54, 265, 1145, ! 1145, 1145, 33, 0, 0, 273, 202, 0, 0, 0, ! 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, ! 0, 165, 165, 165, 353, 353, 0, 353, 0, 0, ! 158, 54, 0, 54, 0, 0, 0, 0, 54, 54, ! 0, 54, 0, 1013, 0, 0, 0, 211, 6, 0, ! 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, ! 0, 0, 14, 0, 0, 0, 211, 211, 521, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, ! 0, 0, 0, 0, 0, 20, 0, 1013, 0, 0, ! 21, 0, 0, 0, 23, 0, 211, 464, 0, 0, ! 0, 0, 0, 26, 0, 0, 28, 29, 0, 0, ! 30, 0, 1239, 0, 0, 0, 0, 0, 0, 493, ! 31, 0, 0, 457, 457, 457, 0, 0, 0, 0, ! 32, 0, 493, 0, 0, 0, 0, 721, 33, 0, ! 920, 0, 34, 0, 625, 626, 0, 0, 0, 0, ! 0, 145, 131, 132, 10, 0, 0, 566, 0, 0, ! 0, 0, 0, 921, 54, 54, 54, 457, 457, 457, ! 0, 926, 54, 54, 0, 80, 0, 0, 0, 610, ! 18, 0, 0, 0, 271, 8, 9, 10, 173, 12, ! 13, 21, 0, 0, 489, 0, 14, 0, 0, 0, ! 0, 0, 0, 0, 26, 54, 0, 28, 29, 0, ! 16, 0, 17, 18, 353, 0, 0, 353, 0, 20, ! 1328, 31, 0, 0, 21, 0, 265, 273, 23, 700, ! 693, 32, 700, 700, 0, 54, 0, 26, 80, 33, ! 28, 272, 0, 34, 145, 8, 9, 10, 0, 0, ! 254, 0, 0, 0, 1310, 0, 0, 0, 625, 626, ! 0, 0, 0, 0, 1311, 0, 0, 0, 0, 0, ! 0, 0, 33, 18, 0, 0, 1312, 697, 80, 80, ! 80, 1013, 0, 0, 21, 0, 275, 0, 1147, 493, ! 0, 0, 211, 0, 0, 0, 0, 26, 0, 0, ! 28, 29, 0, 0, 0, 0, 0, 80, 0, 0, ! 0, 80, 80, 0, 200, 0, 0, 0, 0, 80, ! 54, 0, 0, 265, 201, 54, 80, 0, 54, 0, ! 0, 0, 33, 0, 0, 792, 202, 0, 353, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, ! 0, 0, 0, 0, 0, 0, 1414, 0, 353, 0, ! 837, 0, 837, 837, 700, 278, 0, 0, 8, 9, ! 0, 0, 12, 13, 0, 0, 211, 211, 0, 14, ! 211, 0, 521, 521, 521, 872, 0, 0, 0, 211, ! 0, 0, 0, 16, 211, 17, 18, 211, 0, 0, ! 0, 0, 20, 0, 279, 280, 0, 0, 0, 0, ! 0, 23, 0, 281, 0, 0, 0, 0, 0, 0, ! 26, 0, 0, 134, 135, 0, 282, 0, 0, 0, ! 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, ! 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ! 303, 0, 0, 304, 305, 306, 0, 307, 0, 0, ! 308, 0, 145, 8, 9, 10, 0, 0, 13, 0, ! 0, 209, 54, 54, 54, 0, 309, 1200, 1201, 1327, ! 0, 721, 8, 9, 0, 0, 12, 13, 0, 0, ! 636, 18, 0, 14, 0, 268, 0, 0, 276, 0, ! 0, 0, 21, 0, 0, 0, 0, 16, 0, 17, ! 18, 145, 8, 9, 10, 26, 20, 566, 28, 29, ! 0, 0, 268, 0, 384, 23, 0, 0, 0, 1145, ! 0, 0, 516, 0, 26, 0, 0, 134, 135, 0, ! 18, 0, 517, 0, 0, 0, 993, 0, 0, 0, ! 33, 21, 0, 0, 518, 0, 0, 0, 0, 0, ! 700, 700, 700, 0, 26, 0, 0, 28, 29, 0, ! 1145, 1145, 1145, 700, 0, 80, 80, 80, 80, 80, ! 80, 200, 0, 54, 0, 80, 0, 1147, 1147, 1147, ! 0, 201, 0, 1321, 209, 0, 211, 0, 0, 33, ! 0, 0, 1168, 202, 7, 8, 1169, 10, 173, 12, ! 13, 0, 0, 209, 209, 209, 14, 0, 80, 80, ! 0, 80, 0, 527, 0, 0, 80, 80, 0, 80, ! 16, 0, 17, 18, 19, 0, 0, 0, 0, 20, ! -556, 0, 0, 209, 21, 0, 0, 0, 23, 1170, ! 0, 174, 0, 0, 0, 0, 0, 26, 0, 837, ! 28, 29, 0, 0, 1171, 0, 1172, 0, 0, 0, ! 276, 0, 0, 0, 31, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 32, 271, 8, 9, 10, 0, ! 268, 13, 33, 0, 0, 0, 1173, 0, 0, 837, ! 837, 1139, 0, 0, 0, 0, 0, 0, 0, 1139, ! 0, 0, -556, 0, 18, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 637, 21, 0, 0, 211, 0, ! 0, 872, 211, 211, 872, 872, 872, 0, 26, 0, ! 211, 28, 272, 0, 0, 0, 0, 211, 0, 0, ! 0, 0, 80, 80, 80, 868, 1523, 1524, 9, 10, ! 80, 80, 0, 0, 0, 869, 0, 0, 0, 0, ! 0, 0, 0, 33, 0, 0, 0, 870, 0, 0, ! 0, 0, 0, 0, 268, 276, 0, 0, 610, 610, ! 610, 0, 0, 80, 0, 0, 21, 8, 9, 700, ! 173, 12, 13, 0, 268, 276, 489, 0, 14, 26, ! 0, 0, 28, 29, 0, 275, 0, 0, 1525, 0, ! 0, 0, 16, 80, 17, 18, 200, 0, 0, 625, ! 626, 20, 0, 0, 0, 0, 201, 0, 0, 209, ! 23, 0, 0, 0, 33, 0, 0, 0, 202, 26, ! 0, 0, 134, 135, 0, 0, 0, 0, -419, 8, ! 9, -419, -419, 12, 254, 0, 0, 0, 0, 0, ! 14, 0, 0, 700, 700, 0, 0, 700, 0, 0, ! 0, 0, 0, 0, 16, 0, 17, 18, 700, 0, ! 0, 0, 0, 20, 700, 700, 700, 0, -419, 0, ! 700, 0, 23, 0, 693, 0, 0, 209, 80, 209, ! 209, 26, 0, 80, 134, 135, 80, 0, 0, 0, ! 0, 0, 0, 209, 209, 0, 0, 209, 694, 209, ! 209, 209, 209, 18, 0, 0, 209, 0, 695, 0, ! 0, 209, 0, 0, 209, 0, -419, 0, 0, 0, ! 696, 697, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 492, 0, 0, 0, 0, 0, 745, 746, 747, ! 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 764, 765, 766, 0, ! 0, 0, 0, 0, 0, 0, 837, 837, 837, 1139, ! 1139, 1139, 1313, 0, 0, 0, 837, 0, 1139, 1139, ! 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 872, 872, 872, 0, 0, 0, 1168, 0, 7, 8, ! 1169, 10, 173, 12, 13, 0, 0, 0, 0, 165, ! 14, 0, 0, 0, 0, 0, 0, 211, 0, 145, ! 131, 132, 10, 0, 16, 0, 17, 18, 19, 0, ! 80, 80, 80, 20, -557, 0, 0, 0, 21, 0, ! 0, 0, 23, 1170, 0, 174, 0, 0, 18, 0, ! 0, 26, 0, 0, 28, 29, 0, 0, 1171, 21, ! 1172, 0, 0, 0, 0, 0, 0, 0, 31, 0, ! 993, 993, 26, 993, 0, 28, 29, 0, 32, 0, ! 0, 0, 0, 0, 700, 0, 33, 1147, 0, 31, ! 1173, 0, 700, 268, 276, 0, 0, 0, 0, 32, ! 0, 0, 700, 700, 700, 0, -557, 33, 0, 0, ! 0, 34, 0, 209, 0, 0, 0, 0, 0, 0, ! 741, 0, 0, 0, 0, 0, 0, 0, 1147, 1147, ! 1147, 8, 9, 0, 173, 12, 13, 0, 0, 0, ! 1622, 80, 14, 837, 837, 837, 1313, 1313, 1313, 0, ! 0, 837, 837, 0, 0, 0, 16, 0, 17, 18, ! 0, 0, 0, 0, 0, 20, 0, 872, 872, 872, ! 872, 872, 0, 0, 23, 0, 209, 0, 0, 0, ! 0, 0, 0, 26, 211, 0, 134, 135, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, ! 698, 698, 145, 8, 9, 10, 212, 12, 213, 0, ! 0, 0, 0, 0, 14, 0, 209, 209, 1137, 825, ! 492, 0, 0, 268, 276, 0, 1137, 0, 16, 0, ! 17, 18, 0, 0, 0, 0, 0, 20, 0, 0, ! 0, 0, 21, 0, 0, 209, 23, 0, 209, 209, ! 209, 209, 209, 209, 527, 26, 0, 209, 28, 29, ! 0, 0, 214, 0, 209, 0, 145, 8, 9, 10, ! 0, 0, 31, 0, 0, 0, 1313, 1313, 0, 1313, ! 0, 0, 32, 872, 0, 0, 276, 0, 0, 0, ! 33, 0, 0, 0, 34, 18, 0, 0, 0, 211, ! 652, 653, 654, 655, 656, 657, 21, 658, 659, 660, ! 661, 662, 663, 664, 665, 666, 0, 0, 0, 26, ! 0, 0, 28, 29, 0, 0, 0, 0, 698, 0, ! 698, 698, 698, 0, 0, 0, 516, 0, 0, 0, ! 1313, 1313, 1313, 1313, 1313, 0, 517, 0, 0, 492, ! 0, 0, 929, 0, 33, 0, 0, 0, 518, 0, ! 1358, 8, 1169, 10, 212, 12, 213, 0, 0, 0, ! 0, 0, 14, 0, 0, 0, 0, 0, 825, 0, ! 8, 9, 0, 212, 12, 213, 16, 0, 17, 18, ! 0, 14, 0, 0, 0, 20, 0, 0, 1313, 0, ! 21, 0, 0, 492, 23, 16, 0, 17, 18, 492, ! 0, 492, 492, 26, 20, 0, 28, 29, 268, 276, ! 268, 0, 1360, 23, 0, 0, 0, 0, 0, 0, ! 31, 0, 26, 0, 0, 134, 135, 0, 0, 0, ! 32, 0, 492, 0, 0, 0, 0, 0, 33, 492, ! 0, 211, 1173, 211, 0, 0, 0, 0, 0, 492, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, ! 759, 760, 761, 762, 763, 764, 765, 766, 1055, 1057, ! 1058, 1059, 0, 1061, 1062, 1063, 1064, 1065, 1066, 1067, ! 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, ! 1078, 1079, 0, 0, 0, 0, 0, 0, 521, 0, ! 0, 0, 0, 209, 209, 209, 209, 209, 1137, 209, ! 0, 1314, 0, 209, 268, 1137, 1137, 1137, 698, 698, ! 698, 276, 0, 0, 0, 0, 0, 209, 209, 209, ! 1634, 1032, -513, -513, -513, -513, -513, -513, -513, 521, ! 521, 521, -513, 0, -513, 0, 0, 0, 0, 825, ! 0, 0, 211, 0, 209, -513, 0, -513, 0, 0, ! 0, -513, 0, 0, 0, 0, 0, -513, 492, 0, ! 0, 0, -513, 0, 0, 0, -513, 0, -513, 0, ! 0, 0, 492, 0, 0, -513, 0, 0, -513, -513, ! -513, -513, -513, 0, -513, -513, -513, -513, -513, -513, ! -513, -513, -513, -513, -513, -513, -513, -513, -513, -513, ! -513, -513, -513, -513, -513, -513, -513, 698, -513, -513, ! -513, 0, -513, -513, -513, -513, -513, 0, 0, 0, ! 0, 0, 1635, -513, 0, 107, 0, 0, -513, -513, ! -513, 0, -513, 0, 125, 107, 0, 0, 0, 0, ! 0, 0, 107, 107, 0, 107, 0, 698, 698, 698, ! 0, 0, 0, 0, 0, 0, 0, 1032, 0, 0, ! 0, 0, 0, 0, 0, 1217, 0, 0, 0, 0, ! 209, 209, 209, 209, 209, 1137, 0, 0, 209, 209, ! 243, 0, 8, 9, 0, 0, 12, 254, 0, 145, ! 8, 9, 10, 14, 209, 209, 209, 209, 209, 0, ! 0, 0, 825, 492, 0, 0, 0, 16, 0, 17, ! 18, 209, 0, 0, 0, 0, 20, 492, 18, 492, ! 0, 492, 0, 0, 0, 23, 0, 0, 0, 21, ! 0, 0, 527, 0, 26, 0, 0, 134, 135, 410, ! 0, 125, 26, 0, 0, 28, 29, 698, 107, 107, ! 0, 0, 0, 0, 0, 0, 0, 107, 107, 200, ! 0, 107, 107, 107, 1275, 442, 107, 107, 107, 201, ! 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 202, 752, 753, 754, 755, 756, 757, 758, 759, ! 760, 761, 762, 763, 764, 765, 766, 492, 0, 0, ! 0, 0, 0, 209, 209, 1314, 209, 0, 0, 0, ! 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 698, 698, 0, 0, 698, 209, 0, 0, 0, ! 0, 0, 0, 0, 0, 492, 698, 0, 0, 0, ! 0, 0, 1032, 1032, 1032, 0, 0, 1168, 698, 7, ! 8, 1169, 10, 173, 12, 13, 0, 243, 107, 0, ! 0, 14, 0, 0, 0, 825, 825, 209, 209, 1137, ! 209, 209, 0, 0, 0, 16, 0, 17, 18, 19, ! 0, 107, 0, 0, 20, 0, 0, 1345, 0, 21, ! 0, 0, 0, 23, 1170, 0, 174, 0, 0, 0, ! 0, 0, 26, 0, 0, 28, 29, 0, 0, 1171, ! 0, 1172, 0, 0, 0, 0, 0, 0, 0, 31, ! 0, 0, 0, 0, 107, 209, 0, 0, 0, 32, ! 0, 0, 0, 825, 825, 0, 0, 33, 0, 0, ! 0, 1173, 0, 0, 698, 698, 698, 698, 698, 698, ! 698, 0, 0, 0, 698, 0, 1032, 1032, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 107, 0, 107, 0, 0, 107, 209, 0, ! 209, 0, 0, 0, 0, 8, 9, 0, 0, 12, ! 13, 0, 0, 1426, 0, 0, 14, 0, 0, 0, ! 0, 0, 0, 0, 271, 8, 9, 10, 0, 0, ! 16, 0, 17, 18, 492, 0, 492, 0, 492, 20, ! 825, 0, 0, 0, 0, 107, 0, 0, 23, 0, ! 0, 0, 0, 18, 0, 1137, 0, 26, 0, 0, ! 134, 135, 0, 0, 21, 0, 107, 0, 107, 0, ! 0, 825, 0, 0, 0, 0, 107, 26, 0, 107, ! 28, 272, 698, 0, 0, 0, 0, 0, 0, 0, ! 698, 107, 0, 0, 868, 1461, 1137, 1137, 1137, 0, ! 698, 698, 698, 0, 869, 0, 0, 0, 0, 209, ! 0, 0, 33, 0, 0, 0, 870, 751, 752, 753, ! 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, ! 764, 765, 766, 825, 0, 0, 0, 0, 0, 0, ! 0, 698, 698, 698, 698, 698, 698, 0, 0, 698, ! 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 492, 0, 0, 0, 1523, 131, 132, 10, ! 0, 1168, 0, 7, 8, 1169, 10, 173, 12, 13, ! 0, 0, 243, 896, 825, 14, 0, 0, 0, 0, ! 0, 0, 0, 0, 1519, 1520, 0, 0, 107, 16, ! 0, 17, 18, 19, 0, 0, 21, 0, 20, -559, ! 0, 0, 0, 21, 0, 0, 0, 23, 1170, 26, ! 174, 0, 28, 29, 825, 0, 26, 0, 1525, 28, ! 29, 0, 0, 1171, 0, 1172, 31, 0, 0, 0, ! 107, 0, 107, 31, 0, 0, 32, 0, 0, 0, ! 0, 0, 0, 32, 33, 0, 0, 0, 34, 0, ! 1572, 33, 0, 0, 0, 1173, 0, 0, 0, 0, ! 0, 0, 0, 0, 698, 698, 0, 698, 0, 0, ! 0, -559, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 145, 131, 1346, 10, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 1629, 1630, 0, 0, 0, ! 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, ! 18, 0, 107, 107, 0, 107, 107, 0, 0, 0, ! 0, 21, 1648, 0, 0, 0, 0, 0, 698, 698, ! 698, 698, 698, 0, 26, 0, 0, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, ! 1686, 156, 0, 0, 0, 0, 0, 0, 0, 33, ! 0, 0, 0, 157, 646, 647, 648, 649, 650, 651, ! 652, 653, 654, 655, 656, 657, 698, 658, 659, 660, ! 661, 662, 663, 664, 665, 666, 0, 492, 107, 0, ! 0, 0, 0, 0, 0, 107, 125, 0, 0, 0, ! 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, ! 0, 0, 1736, 0, 1585, 0, -930, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, 0, -930, -930, -930, ! 896, -930, -930, -930, -930, -930, -930, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, -930, 0, -930, -930, ! -930, -930, 0, -930, -930, -930, -930, -930, -930, -930, ! -930, -930, 0, 0, -930, -930, -930, -930, -930, -930, ! 0, 0, -930, -930, -930, 0, -930, -930, 0, 0, ! 0, 0, 0, -930, 0, 0, -930, 0, 0, 0, ! 0, 0, 0, 0, -930, -930, -930, 0, 0, 0, ! 0, 0, -930, -930, -930, 0, 0, 0, -930, 0, ! -930, 0, 0, 0, 896, 0, 0, 0, 0, 0, ! 0, 0, 0, 825, 1586, -930, 0, 0, 0, 0, ! 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, ! 0, 0, 0, 0, 107, 0, 0, 0, 1548, 0, ! -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, ! 0, -930, -930, -930, 0, -930, -930, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, ! -930, 0, -930, -930, -930, -930, 0, -930, -930, -930, ! -930, -930, -930, -930, -930, -930, 0, 0, -930, -930, ! -930, -930, -930, -930, 0, 0, -930, -930, -930, 0, ! -930, -930, 0, 0, 0, 0, 0, -930, 107, 107, ! -930, 0, 107, 0, 0, 0, 0, 0, -930, -930, ! -930, 0, 0, 107, 0, 0, -930, -930, -930, 0, ! 0, 0, -930, 0, -930, 107, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 628, -930, ! 271, 8, 9, 10, 173, 12, 315, 316, 317, 318, ! 489, 319, 14, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 18, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 693, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 272, -345, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 1028, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 1029, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 1030, 697, 0, 0, 0, 0, 0, 1168, ! 0, 7, 8, 1169, 10, 173, 12, 13, 0, 345, ! 0, 0, 0, 14, 0, 0, 0, 0, 896, 0, ! 0, 107, 0, 0, 107, 0, 0, 16, 0, 17, ! 18, 19, 0, 0, 0, 0, 20, -558, 0, 0, ! 0, 21, 0, 0, 0, 23, 1170, 0, 174, 0, ! 0, 0, 0, 0, 26, 0, 0, 28, 29, 0, ! 0, 1171, 0, 1172, 651, 652, 653, 654, 655, 656, ! 657, 31, 658, 659, 660, 661, 662, 663, 664, 665, ! 666, 32, 0, 0, 0, 107, 107, 0, 107, 33, ! 0, 0, 0, 1173, 0, 0, 0, 0, 0, 107, ! 0, 0, 0, 0, 0, 0, 0, 107, 0, -558, ! 0, 0, 0, 0, 0, 0, 0, 107, 107, 0, ! 0, 0, 628, 0, 145, 8, 9, 10, 173, 12, ! 315, 316, 317, 318, 489, 319, 14, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 896, 0, ! 16, 320, 17, 18, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 693, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 29, -345, 0, 0, 385, 0, 0, 0, 0, ! 896, 336, 0, 0, 1142, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 1143, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 1144, 697, 0, 0, ! 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 488, 345, 271, 8, 9, 10, 173, 12, ! 315, 316, 317, 318, 489, 319, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 18, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 0, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 107, 0, 107, ! 341, 342, 343, 0, 0, 957, 344, 271, 8, 9, ! 10, 173, 12, 315, 316, 317, 318, 0, 319, 14, ! 0, -843, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 18, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 1731, 0, -832, 385, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 823, 344, ! 945, 946, 947, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 0, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 948, 949, 824, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 344, 950, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 1127, 345, ! 628, 0, 271, 8, 9, 10, 0, 12, 315, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 18, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 272, ! -345, 0, 0, 385, 0, 0, 0, 0, 0, 336, ! 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 630, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 823, 631, 945, 946, 947, 10, 0, ! 12, 505, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 0, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 948, 949, 824, 0, 0, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 950, 823, ! 0, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 0, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 824, ! 0, 0, 385, 0, 0, 0, 0, 0, 336, 0, ! 0, 337, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 340, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 344, 823, 0, 945, 946, 947, 10, ! 1324, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 948, 949, 824, 0, 0, 385, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 823, 344, 945, ! 946, 947, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, -517, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 948, 949, 824, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 628, 344, 145, 8, 9, 10, 0, 12, 315, 316, ! 317, 318, 0, 319, 14, 0, 0, 1439, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 18, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 29, ! -345, 0, 0, 385, 0, 0, 0, 0, 0, 336, ! 0, 0, 1713, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 1714, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 1770, 1715, 271, 8, 9, 10, 0, ! 12, 315, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 18, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, -209, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 823, 344, 271, 8, ! 9, 10, 0, 12, 505, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 0, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 824, 0, 0, 385, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 957, ! 344, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 0, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 0, ! 0, 0, 385, -832, 0, 0, 0, 0, 336, 0, ! 0, 337, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 340, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 957, 344, 271, 8, 9, 10, 0, 12, ! 505, 316, 317, 318, 0, 319, 14, 0, 0, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 0, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 0, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 1054, 344, 271, 8, 9, ! 10, 0, 12, 505, 316, 317, 318, 0, 319, 14, ! 0, -832, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 0, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 0, 0, 0, 385, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 1056, 344, ! 271, 8, 9, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 0, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 272, 0, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 337, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 340, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 1685, 344, 271, 8, 9, 10, 0, 12, 505, ! 316, 317, 318, 0, 319, 14, 0, 0, 0, 345, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 0, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 272, 0, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 337, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 340, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 344, 271, 8, 9, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 0, 0, 0, 385, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 344, 271, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 506, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 271, 8, 9, 10, 0, 12, 505, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 345, 878, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 0, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 272, ! 0, 0, 0, 385, 0, 0, 0, 0, 0, 336, ! 0, 0, 337, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 340, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 0, 344, 271, 8, 9, 10, 0, ! 12, 505, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 996, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 0, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, 0, 385, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 271, 8, ! 9, 10, 0, 12, 505, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 1016, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 0, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 385, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 345, 1260, 1589, ! 1590, 1591, 10, 173, 12, 315, 316, 317, 318, 0, ! 319, 14, 1592, 0, 1593, 1594, 1595, 1596, 1597, 1598, ! 1599, 1600, 1601, 1602, 15, 16, 320, 17, 18, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 1603, 23, 1604, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 1605, 272, 1216, 0, 1606, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 0, 1607, 1589, 1590, 1591, 10, 173, 12, ! 315, 316, 317, 318, 0, 319, 14, 1592, 345, 1593, ! 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 15, ! 16, 320, 17, 18, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 1603, 23, 1604, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 1605, 272, 0, 0, 1606, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 344, 0, 1607, 271, ! 8, 9, 10, 173, 12, 315, 316, 317, 318, 489, ! 319, 14, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 18, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 693, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 1028, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 1029, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 1030, 697, 145, 8, 9, 10, 173, 12, 315, ! 316, 317, 318, 489, 319, 14, 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 18, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 693, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 29, 0, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 1142, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 1143, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 1144, 697, 271, 8, 9, ! 10, 0, 12, 315, 316, 317, 318, 0, 319, 14, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 18, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 693, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 336, 0, 0, 1028, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 1029, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 0, 1030, ! 697, 145, 8, 9, 10, 0, 12, 315, 316, 317, ! 318, 0, 319, 14, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 18, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 693, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 29, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, ! 0, 1142, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 1143, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 1144, 697, 271, 8, 9, 10, 0, ! 12, 315, 316, 317, 318, 0, 319, 14, 0, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 18, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 334, 272, 0, 0, 0, 335, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 271, 8, ! 9, 10, 0, 12, 315, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 18, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 385, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 0, ! 344, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 18, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 0, ! 0, 0, 385, 0, 0, 0, 0, 0, 336, 0, ! 0, 629, 0, 0, 0, 0, 0, 0, 0, 338, ! 339, 630, 0, 0, 0, 0, 0, 341, 342, 343, ! 0, 0, 0, 631, 271, 8, 9, 10, 0, 12, ! 505, 316, 317, 318, 0, 319, 14, 0, 0, 0, ! 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 16, 320, 17, 0, 19, 0, 321, 322, 323, 20, ! 0, 324, 325, 326, 21, 327, 328, 0, 23, 0, ! 0, 0, 329, 330, 331, 332, 333, 26, 0, 0, ! 28, 272, 0, 0, 1652, 385, 0, 0, 0, 0, ! 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, ! 0, 0, 338, 339, 340, 0, 0, 0, 0, 0, ! 341, 342, 343, 0, 0, 0, 344, 271, 8, 9, ! 10, 173, 12, 315, 316, 317, 318, 0, 319, 14, ! 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 16, 320, 17, 18, 19, 0, 321, ! 322, 323, 20, 0, 324, 325, 326, 21, 327, 328, ! 0, 23, 0, 0, 0, 329, 330, 331, 332, 333, ! 26, 0, 0, 28, 272, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, ! 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, ! 0, 0, 0, 341, 342, 343, 0, 0, 0, 344, ! 145, 8, 9, 10, 0, 12, 505, 316, 317, 318, ! 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 16, 320, 17, 18, ! 19, 0, 321, 322, 323, 20, 0, 324, 325, 326, ! 21, 327, 328, 0, 23, 0, 0, 0, 329, 330, ! 331, 332, 333, 26, 0, 0, 28, 29, 0, 0, ! 0, 385, 0, 0, 0, 0, 0, 336, 0, 0, ! 1713, 0, 0, 0, 0, 0, 0, 0, 338, 339, ! 1714, 0, 0, 0, 0, 0, 341, 342, 343, 0, ! 0, 0, 1715, 271, 8, 9, 10, 0, 12, 505, ! 316, 317, 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 0, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 272, 0, 0, 0, 335, 0, 0, 0, 0, 0, ! 336, 0, 0, 337, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 340, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 344, 271, 8, 9, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 0, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 643, 0, 0, 0, 0, 0, ! 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 644, 271, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 681, 271, 8, 9, 10, 0, 12, 505, ! 316, 317, 318, 0, 319, 14, 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, ! 320, 17, 0, 19, 0, 321, 322, 323, 20, 0, ! 324, 325, 326, 21, 327, 328, 0, 23, 0, 0, ! 0, 329, 330, 331, 332, 333, 26, 0, 0, 28, ! 272, 0, 0, 0, 385, 0, 0, 0, 0, 0, ! 336, 0, 0, 337, 0, 0, 0, 0, 0, 0, ! 0, 338, 339, 340, 0, 0, 0, 0, 0, 341, ! 342, 343, 0, 0, 0, 344, 271, 8, 9, 10, ! 0, 12, 505, 316, 317, 318, 0, 319, 14, 0, ! 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 320, 17, 18, 19, 0, 321, 322, ! 323, 20, 0, 324, 325, 326, 21, 327, 328, 0, ! 23, 0, 0, 0, 329, 330, 331, 332, 333, 26, ! 0, 0, 28, 272, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 336, 0, 0, 629, 0, 0, 0, ! 0, 0, 0, 0, 338, 339, 630, 0, 0, 0, ! 0, 0, 341, 342, 343, 0, 0, 0, 631, 1281, ! 8, 9, 10, 0, 12, 505, 316, 317, 318, 0, ! 319, 14, 0, 0, 0, 345, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 16, 320, 17, 0, 19, ! 0, 321, 322, 323, 20, 0, 324, 325, 326, 21, ! 327, 328, 0, 23, 0, 0, 0, 329, 330, 331, ! 332, 333, 26, 0, 0, 28, 272, 0, 0, 0, ! 385, 0, 0, 0, 0, 0, 336, 0, 0, 337, ! 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, ! 0, 0, 0, 0, 0, 341, 342, 343, 0, 0, ! 0, 344, 145, 8, 9, 10, 0, 12, 315, 316, ! 317, 318, 0, 319, 14, 0, 0, 0, 345, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 16, 320, ! 17, 18, 19, 0, 321, 322, 323, 20, 0, 324, ! 325, 326, 21, 327, 328, 0, 23, 0, 0, 0, ! 329, 330, 331, 332, 333, 26, 0, 0, 28, 29, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, ! 0, 0, 1713, 0, 0, 0, 0, 0, 0, 0, ! 338, 339, 1714, 0, 0, 0, 0, 0, 341, 342, ! 343, 0, 0, 0, 1715, 271, 8, 9, 10, 0, ! 12, 505, 316, 317, 318, 0, 319, 14, 0, 0, ! 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 16, 320, 17, 0, 19, 0, 321, 322, 323, ! 20, 0, 324, 325, 326, 21, 327, 328, 0, 23, ! 0, 0, 0, 329, 330, 331, 332, 333, 26, 0, ! 0, 28, 272, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, ! 0, 0, 0, 338, 339, 340, 0, 0, 0, 0, ! 0, 341, 342, 343, 0, 0, 0, 344, 271, 8, ! 9, 10, 0, 12, 505, 316, 317, 318, 0, 319, ! 14, 0, 0, 0, 345, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 320, 17, 0, 19, 0, ! 321, 322, 323, 20, 0, 324, 325, 326, 21, 327, ! 328, 0, 23, 0, 0, 0, 329, 330, 331, 332, ! 333, 26, 0, 0, 28, 272, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, ! 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, ! 0, 0, 0, 0, 341, 342, 343, 0, 0, 0, ! 703, 271, 8, 9, 10, 0, 12, 505, 316, 317, ! 318, 0, 319, 14, 0, 0, 0, 345, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 16, 320, 17, ! 0, 19, 0, 321, 322, 323, 20, 0, 324, 325, ! 326, 21, 327, 328, 0, 23, 0, 0, 0, 329, ! 330, 331, 332, 333, 26, 0, 0, 28, 272, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, ! 0, 337, 145, 8, 9, 10, 212, 12, 213, 338, ! 339, 340, 0, 0, 14, 0, 0, 341, 342, 343, ! 0, 0, 0, 705, 0, 0, 0, 0, 16, 0, ! 17, 18, 0, 0, 0, 0, 0, 20, 0, 0, ! 345, 0, 21, 0, 0, 0, 23, 0, 145, 8, ! 9, 10, 173, 12, 13, 26, 0, 0, 28, 29, ! 14, 0, 1669, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 31, 0, 16, 0, 17, 18, 0, 0, ! 0, 0, 32, 20, 0, 0, 0, 0, 21, 0, ! 33, 0, 23, 0, 34, 0, 0, 0, 0, 0, ! 0, 26, 0, 0, 28, 29, 0, 0, 0, 145, ! 8, 9, 10, 212, 12, 213, 0, 0, 31, 0, ! 0, 14, 0, 0, 0, 0, 0, 0, 32, 0, ! 0, 0, 0, 0, 0, 16, 33, 17, 18, 0, ! 34, 0, 0, 0, 20, 0, 0, 0, 0, 21, ! 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, ! 0, 0, 26, 0, 0, 28, 29, 0, 0, 0, ! 0, 650, 651, 652, 653, 654, 655, 656, 657, 31, ! 658, 659, 660, 661, 662, 663, 664, 665, 666, 32, ! 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, ! 0, 34, 745, 746, 747, 748, 749, 750, 751, 752, ! 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, ! 763, 764, 765, 766, 745, 746, 747, 748, 749, 750, ! 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, ! 761, 762, 763, 764, 765, 766, 0, 0, 0, 1398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 744, 0, 0, 1720, 745, 746, ! 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, ! 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, ! 1207, 0, 0, 0, 745, 746, 747, 748, 749, 750, ! 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, ! 761, 762, 763, 764, 765, 766, 1757, 745, 746, 747, ! 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, ! 758, 759, 760, 761, 762, 763, 764, 765, 766, 745, ! 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, ! 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, ! 766 }; static const short yycheck[] = { 14, ! 4, 180, 4, 484, 167, 82, 23, 22, 747, 818, ! 49, 216, 181, 424, 424, 182, 366, 261, 155, 156, ! 4, 130, 196, 45, 95, 14, 97, 162, 372, 352, ! 87, 372, 36, 424, 36, 552, 424, 641, 252, 78, ! 800, 364, 365, 45, 45, 727, 4, 4, 392, 985, ! 255, 392, 36, 820, 69, 137, 138, 4, 60, 225, ! 226, 45, 4, 394, 466, 246, 1431, 1438, 794, 128, ! 137, 142, 74, 150, 138, 12, 1554, 1554, 36, 36, ! 45, 45, 9, 1608, 4, 87, 45, 45, 45, 36, ! 92, 502, 502, 95, 36, 97, 85, 12, 45, 1549, ! 4, 12, 4, 45, 63, 1174, 311, 1176, 34, 82, ! 112, 31, 32, 128, 216, 1184, 36, 39, 58, 801, ! 63, 1696, 111, 3, 226, 45, 374, 375, 372, 1455, ! 1456, 49, 36, 210, 36, 533, 77, 64, 140, 154, ! 142, 45, 144, 7, 907, 87, 1472, 497, 392, 171, ! 913, 13, 34, 175, 61, 56, 140, 555, 508, 96, ! 67, 366, 1, 1, 65, 0, 109, 87, 111, 171, ! 1695, 1621, 62, 175, 175, 39, 141, 95, 96, 1754, ! 182, 220, 140, 431, 432, 111, 12, 171, 0, 111, ! 62, 175, 110, 140, 196, 110, 1522, 77, 140, 110, ! 62, 95, 1, 65, 1717, 1531, 1532, 50, 1534, 110, ! 175, 175, 61, 171, 1727, 1728, 175, 175, 175, 221, ! 140, 111, 61, 61, 171, 65, 65, 65, 175, 171, ! 56, 246, 247, 175, 196, 155, 156, 141, 110, 65, ! 49, 181, 112, 28, 49, 60, 261, 32, 110, 1699, ! 99, 171, 1730, 1730, 196, 175, 523, 216, 97, 97, ! 1773, 1024, 61, 62, 531, 13, 225, 226, 257, 171, ! 110, 175, 49, 155, 156, 157, 196, 49, 63, 361, ! 200, 201, 67, 4, 110, 1045, 95, 1737, 1048, 63, ! 95, 62, 1228, 62, 361, 56, 255, 3, 4, 5, ! 357, 110, 819, 65, 277, 376, 1632, 1633, 63, 444, ! 312, 474, 1825, 63, 62, 36, 77, 65, 95, 96, ! 202, 336, 95, 95, 1774, 140, 111, 197, 62, 3, ! 77, 34, 6, 110, 4, 5, 49, 111, 110, 110, ! 1761, 110, 344, 1103, 1104, 4, 5, 406, 110, 110, ! 414, 221, 311, 59, 60, 357, 111, 77, 32, 49, ! 1731, 111, 433, 529, 530, 367, 381, 182, 1094, 43, ! 551, 1624, 538, 1794, 376, 377, 110, 83, 393, 516, ! 517, 722, 95, 372, 519, 59, 60, 77, 554, 59, ! 60, 406, 1645, 377, 1759, 13, 787, 56, 95, 73, ! 59, 60, 1471, 392, 49, 95, 96, 366, 1661, 83, ! 62, 813, 814, 63, 73, 357, 1793, 91, 56, 377, ! 110, 95, 424, 109, 83, 427, 26, 65, 530, 62, ! 377, 433, 40, 63, 1197, 377, 1199, 357, 1815, 77, ! 606, 78, 686, 80, 62, 776, 468, 65, 56, 67, ! 95, 96, 155, 156, 157, 49, 65, 377, 110, 1, ! 56, 3, 4, 5, 1717, 110, 468, 468, 77, 428, ! 1406, 715, 543, 67, 1727, 1728, 26, 110, 28, 1161, ! 728, 77, 424, 49, 468, 1, 426, 3, 4, 5, ! 6, 49, 8, 495, 1098, 56, 498, 56, 56, 202, ! 502, 95, 541, 95, 424, 49, 987, 49, 32, 468, ! 468, 61, 1272, 1273, 56, 65, 77, 59, 60, 77, ! 1773, 468, 65, 485, 56, 77, 468, 43, 1, 95, ! 3, 4, 5, 65, 50, 3, 551, 95, 497, 26, ! 56, 543, 613, 59, 60, 77, 49, 97, 468, 13, ! 56, 95, 96, 95, 494, 803, 496, 497, 95, 56, ! 502, 65, 377, 56, 28, 61, 110, 26, 32, 28, ! 529, 530, 1825, 77, 61, 91, 49, 49, 65, 538, ! 77, 1344, 502, 56, 77, 49, 59, 60, 61, 62, ! 56, 26, 95, 28, 1357, 554, 516, 517, 62, 63, ! 56, 65, 61, 67, 4, 5, 65, 49, 56, 9, ! 97, 613, 49, 65, 50, 49, 618, 619, 620, 621, ! 622, 678, 95, 95, 96, 77, 61, 56, 643, 631, ! 65, 95, 96, 812, 516, 517, 518, 61, 97, 641, ! 78, 65, 644, 4, 5, 49, 110, 606, 77, 62, ! 1167, 49, 614, 95, 96, 525, 56, 56, 95, 59, ! 60, 95, 97, 67, 49, 78, 65, 80, 110, 1150, ! 1151, 686, 56, 73, 62, 677, 678, 49, 77, 927, ! 894, 895, 67, 83, 1095, 1095, 900, 3, 4, 5, ! 78, 95, 1036, 77, 696, 1036, 96, 95, 59, 60, ! 715, 703, 784, 705, 1095, 707, 668, 1095, 779, 1032, ! 95, 96, 674, 777, 676, 677, 110, 883, 1485, 65, ! 784, 77, 711, 95, 96, 8, 9, 110, 933, 110, ! 865, 77, 15, 907, 50, 49, 678, 1218, 1219, 913, ! 49, 110, 188, 59, 60, 707, 46, 49, 618, 32, ! 49, 1514, 714, 12, 696, 38, 56, 49, 678, 111, ! 60, 99, 724, 840, 47, 707, 49, 83, 785, 63, ! 785, 26, 731, 28, 694, 695, 696, 779, 648, 794, ! 1297, 95, 1549, 95, 61, 3, 95, 707, 65, 49, ! 730, 63, 1036, 95, 903, 56, 95, 49, 77, 49, ! 56, 49, 819, 95, 1148, 675, 61, 1148, 61, 824, ! 65, 681, 95, 516, 517, 518, 77, 113, 4, 5, ! 49, 77, 1339, 49, 1305, 96, 49, 697, 3, 4, ! 5, 6, 96, 835, 793, 95, 96, 908, 909, 1087, ! 911, 843, 97, 95, 96, 95, 96, 95, 96, 65, ! 1024, 95, 841, 793, 1621, 1336, 95, 28, 110, 95, ! 110, 32, 110, 7, 8, 9, 95, 34, 43, 95, ! 56, 15, 95, 59, 60, 50, 49, 747, 3, 4, ! 5, 843, 77, 1233, 59, 60, 363, 73, 32, 366, ! 367, 62, 63, 835, 38, 857, 67, 83, 77, 1034, ! 77, 843, 904, 47, 1148, 907, 908, 909, 83, 911, ! 96, 913, 77, 833, 834, 835, 91, 1398, 12, 63, ! 904, 56, 95, 843, 883, 50, 62, 1694, 62, 63, ! 65, 904, 1699, 1112, 59, 60, 1745, 61, 28, 62, ! 63, 65, 32, 1191, 1192, 1193, 904, 904, 868, 869, ! 1164, 1165, 1166, 835, 62, 63, 1695, 56, 83, 56, ! 56, 843, 904, 95, 110, 907, 65, 62, 1449, 65, ! 1737, 913, 62, 63, 933, 3, 4, 5, 77, 62, ! 63, 77, 984, 110, 904, 77, 988, 907, 56, 156, ! 157, 62, 63, 913, 4, 5, 1133, 1134, 3, 4, ! 5, 1136, 7, 8, 9, 1142, 1143, 1774, 1489, 56, ! 3, 4, 5, 922, 923, 924, 1018, 494, 65, 496, ! 497, 498, 1024, 1197, 77, 1199, 988, 32, 1030, 77, ! 77, 59, 60, 38, 62, 202, 62, 63, 110, 49, ! 1002, 111, 1004, 65, 1006, 111, 56, 1036, 110, 59, ! 60, 56, 110, 49, 59, 60, 61, 50, 110, 1798, ! 56, 1138, 113, 73, 110, 1080, 59, 60, 3, 4, ! 5, 49, 67, 83, 3, 4, 5, 6, 67, 1094, ! 9, 77, 1024, 86, 87, 95, 96, 110, 1030, 904, ! 83, 49, 110, 1095, 77, 1097, 1098, 28, 56, 95, ! 105, 106, 107, 32, 1024, 4, 5, 77, 1028, 1029, ! 1030, 89, 90, 56, 43, 93, 94, 95, 96, 77, ! 1082, 56, 992, 77, 59, 60, 61, 56, 62, 63, ! 59, 60, 835, 1135, 86, 87, 113, 95, 1177, 1178, ! 843, 113, 1144, 110, 73, 62, 63, 46, 1187, 1560, ! 1560, 1153, 3, 1095, 83, 1025, 56, 56, 1120, 1148, ! 59, 60, 91, 110, 1234, 1235, 95, 1237, 1416, 62, ! 1344, 1242, 1174, 62, 1176, 1095, 8, 344, 67, 95, ! 1182, 49, 1184, 1357, 77, 78, 110, 80, 77, 78, ! 1174, 110, 1176, 1135, 63, 1197, 67, 1199, 62, 63, ! 1184, 1174, 1144, 1176, 1219, 1207, 62, 63, 111, 1182, ! 62, 1184, 95, 1133, 1134, 1135, 1174, 1174, 1176, 1176, ! 4, 5, 1142, 1143, 1144, 111, 1184, 1184, 56, 1176, ! 63, 77, 1174, 38, 1176, 110, 67, 3, 4, 5, ! 1242, 1181, 1184, 67, 9, 67, 63, 110, 13, 110, ! 62, 1133, 1134, 1135, 1174, 1197, 1176, 1199, 67, 67, ! 1142, 1143, 1144, 113, 1184, 78, 1268, 1617, 110, 110, ! 110, 78, 56, 110, 78, 59, 60, 1197, 78, 1199, ! 1297, 78, 61, 110, 49, 65, 62, 65, 455, 456, ! 1305, 1173, 1369, 59, 60, 61, 110, 62, 65, 64, ! 65, 111, 67, 7, 8, 9, 3, 4, 5, 110, ! 1312, 15, 110, 78, 113, 80, 793, 3, 4, 5, ! 6, 110, 1361, 110, 96, 113, 1268, 1808, 1367, 1368, ! 95, 96, 1371, 1372, 38, 91, 1375, 1299, 77, 1301, ! 1514, 1303, 1344, 47, 49, 110, 1266, 1267, 1268, 110, ! 517, 518, 110, 50, 113, 1357, 110, 43, 110, 1174, ! 110, 1176, 59, 60, 110, 110, 1181, 1182, 1238, 1184, ! 1312, 111, 110, 59, 60, 1725, 1378, 65, 3, 4, ! 5, 6, 110, 63, 31, 32, 83, 34, 111, 61, ! 1310, 1311, 1312, 110, 1378, 110, 1369, 67, 3, 4, ! 5, 6, 1344, 110, 95, 1378, 95, 110, 1348, 111, ! 95, 1331, 1332, 60, 95, 1357, 63, 110, 43, 113, ! 1378, 1378, 69, 8, 1344, 50, 110, 74, 4, 5, ! 1133, 1134, 1135, 9, 59, 60, 1378, 1357, 43, 1142, ! 1143, 1144, 888, 1445, 110, 50, 1615, 110, 1617, 1616, ! 110, 113, 110, 98, 59, 60, 933, 110, 1378, 110, ! 62, 196, 62, 630, 631, 1427, 91, 1482, 65, 1471, ! 1173, 3, 4, 5, 6, 56, 110, 644, 83, 110, ! 56, 110, 65, 59, 60, 113, 91, 1471, 49, 110, ! 1529, 1530, 110, 1466, 110, 110, 67, 73, 1471, 110, ! 147, 110, 110, 110, 1506, 152, 110, 83, 155, 156, ! 157, 43, 1514, 1471, 1471, 34, 110, 113, 50, 110, ! 1725, 95, 65, 1393, 1394, 1395, 1396, 59, 60, 1471, ! 1007, 65, 63, 1348, 1404, 182, 703, 63, 705, 9, ! 707, 188, 63, 1722, 17, 111, 110, 1710, 110, 61, ! 1554, 1471, 1554, 200, 201, 202, 95, 1034, 1560, 91, ! 95, 63, 63, 1378, 1506, 56, 1581, 67, 95, 216, ! 1554, 109, 1514, 18, 104, 63, 1713, 1714, 56, 226, ! 3, 4, 5, 63, 1504, 1505, 1506, 1602, 1603, 63, ! 3, 4, 5, 110, 1514, 110, 1554, 1554, 3, 4, ! 5, 6, 63, 63, 62, 95, 1608, 1554, 255, 113, ! 67, 110, 1554, 63, 1616, 3, 4, 5, 1560, 7, ! 8, 9, 63, 270, 1608, 110, 12, 1790, 110, 95, ! 1793, 63, 1671, 56, 1554, 63, 59, 60, 43, 63, ! 1560, 110, 63, 1658, 1659, 50, 59, 60, 0, 1812, ! 1608, 1608, 1815, 1130, 59, 60, 1471, 0, 1617, 1136, ! 0, 1608, 176, 2, 311, 312, 1608, 36, 835, 1659, ! 777, 59, 60, 1095, 468, 1615, 843, 1617, 83, 3, ! 4, 5, 175, 7, 1554, 171, 91, 1689, 1608, 1721, ! 857, 1182, 1707, 1695, 1696, 1297, 99, 344, 144, 3, ! 4, 5, 869, 870, 314, 1644, 3, 4, 5, 1748, ! 1672, 1695, 1080, 1715, 824, 39, 737, 1339, 1167, 366, ! 367, 3, 4, 5, 1378, 1182, 1730, 1468, 1730, 1051, ! 739, 1601, 56, 678, 361, 59, 60, 1695, 1695, 3, ! 4, 5, 207, 7, 8, 9, 1730, 1689, 1695, 128, ! 485, 1549, 1754, 1695, 1696, 59, 60, 1486, 635, 56, ! 1730, 1776, 59, 60, 1745, 1742, 1725, 1792, 32, 1689, ! 852, 1248, 1730, 1730, 38, 1695, 1696, 59, 60, 1256, ! 427, 428, 1445, 1730, 1654, -1, 1726, -1, 1730, -1, ! 1672, -1, -1, 1713, 1714, 59, 60, -1, 445, -1, ! -1, 448, 3, 4, 5, 6, -1, 454, 455, 456, ! 1730, -1, 1754, 460, 83, 84, 85, 86, 87, 1689, ! -1, 3, 4, 5, 6, 1695, 1696, 58, -1, -1, ! 1307, 1713, 1714, 1715, 1754, 3, 4, 5, -1, 1316, ! -1, -1, 43, 83, 84, 85, 86, 87, 495, -1, ! 497, 498, -1, -1, -1, 56, -1, -1, 59, 60, ! 1730, 43, 1029, 1030, 511, -1, -1, 514, 50, 516, ! 517, 518, 73, -1, -1, 522, -1, 59, 60, 614, ! -1, 528, 83, 530, 1754, -1, 533, 3, 4, 5, ! 91, 59, 60, -1, 95, -1, 4, 5, 1768, -1, ! 3, 4, 5, 6, 1350, 1351, 9, 554, 555, 91, ! -1, -1, -1, -1, -1, 3, 4, 5, 1788, -1, ! -1, -1, -1, -1, 32, -1, -1, -1, 1798, 32, ! 32, 1377, -1, 668, 50, -1, 1382, -1, -1, 674, ! 43, 676, 677, 59, 60, -1, 49, -1, 56, 1819, ! 181, 59, 60, 56, -1, -1, 59, 60, -1, 606, ! -1, -1, 50, -1, -1, 73, -1, 1134, 1135, 1672, ! 73, 59, 60, -1, -1, 83, 1143, 1144, -1, 714, ! 83, -1, 629, 630, 631, -1, -1, 95, 91, 724, ! -1, -1, 95, 96, -1, -1, -1, 644, -1, 230, ! -1, -1, -1, -1, -1, -1, 1173, 3, 4, 5, ! 1713, 1714, 1715, -1, -1, 1461, 1462, -1, 1464, 1465, ! -1, 1467, 3, 4, 5, 6, 7, 8, 9, -1, ! 1507, 1508, -1, -1, 15, -1, -1, 3, 4, 5, ! 6, -1, -1, 82, -1, 147, -1, 694, 695, 696, ! 152, 32, 8, 9, 50, -1, 703, 38, 705, 15, ! 707, -1, 43, 59, 60, -1, 47, -1, 49, -1, ! 109, -1, -1, 1519, 1520, 56, 32, 43, 59, 60, ! -1, -1, 38, 49, 731, 1562, -1, -1, -1, -1, ! 56, 47, 73, 59, 60, 3, 4, 5, 137, 201, ! 1267, 1268, 83, 3, 4, 5, 6, 73, -1, -1, ! 91, 150, -1, -1, 95, 96, -1, 83, -1, -1, ! -1, 3, 4, 5, 6, 91, 1572, 1573, 1574, 95, ! 96, -1, -1, -1, -1, -1, 3, 4, 5, 6, ! 40, 41, 9, 43, 1311, 1312, 793, 794, 56, -1, ! 32, 59, 60, -1, -1, -1, 56, -1, -1, 59, ! 60, 43, -1, -1, -1, 32, -1, 49, 270, -1, ! -1, 210, -1, -1, 56, -1, 43, 59, 60, 3, ! 4, 5, 49, 1629, 1630, -1, 833, 834, 835, 56, ! -1, 73, 59, 60, -1, 426, 843, -1, -1, -1, ! -1, 83, 3, 4, 5, 6, 73, 246, 9, 91, ! 857, -1, -1, 95, 96, -1, 83, -1, -1, 866, ! 867, 868, 869, 870, 91, -1, -1, 874, 95, 96, ! -1, 32, -1, -1, -1, 59, 60, -1, 277, -1, ! -1, 888, 43, -1, -1, -1, -1, 3, 4, 5, ! 6, -1, -1, 988, -1, 56, -1, -1, 59, 60, ! -1, -1, -1, 494, -1, 496, 497, 1002, -1, 1004, ! -1, 1006, 73, 3, 4, 5, -1, -1, -1, 510, ! -1, -1, 83, -1, 335, 4, 933, 43, 519, -1, ! 91, -1, 523, -1, 95, 14, -1, 3, 4, 5, ! 531, -1, -1, 59, 60, 24, -1, -1, -1, -1, ! -1, -1, 31, 32, -1, 34, -1, 36, -1, -1, ! 1766, -1, -1, -1, -1, -1, 45, -1, -1, 59, ! 60, -1, 371, -1, -1, 91, -1, -1, -1, 58, ! -1, 60, -1, 445, -1, -1, 448, 1082, -1, -1, ! 69, -1, 391, 59, 60, 74, -1, -1, 460, -1, ! -1, 1008, 4, 5, 1011, -1, 85, 9, 87, -1, ! -1, -1, -1, 92, -1, 1022, 95, -1, 97, -1, ! -1, 1028, 1029, 1030, -1, 1120, -1, -1, -1, -1, ! 32, -1, 111, -1, -1, -1, -1, -1, 437, -1, ! -1, -1, 3, 4, 5, 6, -1, 49, -1, 511, ! -1, -1, 514, -1, 56, -1, -1, 59, 60, 138, ! -1, 140, -1, 142, -1, 144, 528, 146, 147, -1, ! -1, 73, 151, 152, -1, -1, 155, 156, 157, 40, ! 41, 83, 43, -1, -1, -1, -1, 1094, -1, -1, ! -1, -1, 171, 95, 96, 56, 175, -1, 59, 60, ! -1, -1, 181, 182, 3, 4, 5, 6, 81, 82, ! 83, 84, 85, 86, 87, 3, 4, 5, 6, -1, ! -1, 200, 201, 202, 1131, 1132, 1133, 1134, 1135, 3, ! 4, 5, 6, 1140, -1, 1142, 1143, 1144, -1, 730, ! -1, -1, -1, -1, 43, 1672, -1, 1154, 1155, 1156, ! -1, 230, 551, -1, -1, 43, -1, 56, 32, -1, ! 59, 60, 50, -1, 63, -1, 1173, -1, 247, 43, ! -1, 59, 60, -1, 73, 1182, -1, -1, 257, -1, ! -1, -1, 56, -1, 83, 59, 60, 1714, 1715, -1, ! -1, 270, 91, -1, -1, 83, 95, -1, -1, 73, ! -1, -1, 793, 91, 1299, -1, 1301, -1, 1303, 83, ! 609, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, 81, 82, 83, 84, 85, 86, 87, 3, ! 4, 5, 6, 312, 313, 646, 647, -1, 649, 650, ! 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, ! 661, 662, 663, 664, 665, 666, -1, -1, -1, 1266, ! 1267, 1268, -1, -1, -1, -1, -1, 4, 5, 43, ! -1, 862, 9, -1, 865, -1, 50, -1, 357, -1, ! -1, -1, 361, -1, 363, 59, 60, 366, 367, -1, ! 881, -1, 691, -1, -1, 32, -1, 376, 377, -1, ! -1, 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, 4, ! 5, 710, 49, -1, 9, -1, -1, 91, -1, 56, ! -1, -1, 59, 60, 1331, 1332, 1333, -1, -1, -1, ! -1, -1, 1427, -1, -1, 414, 73, 32, -1, -1, ! -1, -1, -1, 1350, 1351, 424, 83, 426, 427, -1, ! -1, 4, 5, -1, 433, -1, 435, -1, 95, 96, ! -1, 56, -1, -1, 59, 60, 445, -1, -1, 448, ! 1377, -1, 834, -1, -1, 1382, -1, -1, 73, 32, ! -1, 460, -1, -1, -1, -1, -1, -1, 83, 468, ! -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, ! 95, -1, -1, 56, 866, 867, 59, 60, -1, -1, ! -1, -1, 874, -1, -1, 494, 495, 496, 497, 498, ! 73, -1, -1, 502, -1, -1, -1, -1, -1, -1, ! 83, 510, 511, 1440, 1441, 514, 1443, 516, 517, 518, ! 519, 840, 95, 96, 523, -1, -1, -1, -1, 528, ! -1, -1, 531, -1, 1461, 1462, -1, 1464, 1465, -1, ! 1467, -1, -1, -1, 543, 200, 201, -1, -1, -1, ! -1, -1, 871, -1, -1, -1, -1, -1, -1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, 567, -1, ! 13, -1, 15, -1, -1, -1, -1, 1504, 1505, 1506, ! -1, -1, -1, -1, -1, -1, 29, -1, 31, 32, ! -1, -1, 1519, 1520, -1, 38, -1, -1, -1, -1, ! 43, -1, -1, -1, 47, -1, 925, -1, -1, -1, ! -1, -1, 611, 56, 613, -1, 59, 60, -1, 1130, ! 619, 620, 621, 622, -1, 1136, -1, -1, -1, 1, 73, 3, 4, 5, 6, 7, 8, 9, -1, -1, ! 83, -1, 641, 15, -1, 1572, 1573, 1574, 91, -1, ! -1, -1, 95, -1, -1, -1, 28, 29, -1, 31, ! 32, 33, -1, -1, -1, -1, 38, -1, -1, -1, ! 1181, 43, -1, -1, 46, 47, 48, -1, 50, 678, ! -1, 680, -1, -1, 56, 57, -1, 59, 60, 1616, ! 1617, 63, -1, 692, -1, 694, 695, 696, -1, -1, ! -1, 73, 1629, 1630, -1, -1, -1, -1, 707, -1, ! -1, 83, 711, 7, 8, 9, 1035, -1, 1037, 91, ! -1, 15, -1, 95, -1, -1, -1, 99, -1, -1, ! -1, 730, -1, -1, -1, -1, -1, -1, 32, -1, ! -1, -1, -1, -1, 38, 1672, -1, -1, -1, 1131, ! 1132, -1, -1, 47, -1, -1, -1, -1, 1140, -1, ! 3, 4, 5, 6, -1, -1, 9, -1, -1, 63, ! 1101, -1, 3, 4, 5, 6, -1, -1, 777, -1, ! 779, -1, -1, -1, -1, 784, 1713, 1714, 1715, 32, ! -1, -1, -1, -1, 793, 794, 1307, -1, 1725, -1, ! 43, -1, 84, -1, -1, 1316, 49, -1, -1, 40, ! 41, -1, 43, 56, -1, -1, 59, 60, -1, 1138, ! -1, -1, 1141, 1334, 1335, 56, -1, -1, 59, 60, ! 73, -1, -1, -1, 833, 834, 835, 1348, -1, 1766, ! 83, -1, 841, -1, 843, -1, -1, -1, 91, 7, ! 8, 9, 95, 96, -1, -1, 511, 15, -1, 514, ! 91, 516, 517, 862, -1, -1, 865, 866, 867, 868, ! 869, 870, -1, 528, 32, 874, -1, -1, -1, -1, ! 38, -1, 881, 165, -1, -1, -1, 4, 5, 47, ! -1, 1222, 9, -1, -1, -1, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, 904, -1, 9, 907, 908, ! 909, -1, 911, -1, 913, 32, 198, -1, -1, -1, ! -1, 66, -1, 922, 923, 924, 1308, 1309, -1, 211, ! 32, -1, -1, 1315, 933, -1, 1447, -1, -1, 56, ! -1, 43, 59, 60, -1, -1, -1, 49, -1, -1, ! -1, -1, 1463, -1, 56, -1, 73, 59, 60, -1, ! -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, 95, 880, ! -1, 83, -1, -1, -1, 984, -1, 4, 5, 91, ! -1, -1, 9, 95, 96, -1, 1507, 1508, -1, -1, ! -1, 146, -1, -1, -1, 906, -1, -1, 1007, 1008, ! -1, 912, 1011, -1, -1, 32, -1, 162, -1, 1018, ! -1, -1, -1, 1022, -1, 1024, -1, -1, -1, 1028, ! 1029, 1030, 49, -1, -1, 1034, -1, 1036, -1, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, ! 1369, 1562, 3, 4, 5, 6, 73, -1, -1, -1, ! 4, 5, -1, 7, 8, 9, 83, -1, -1, 13, ! -1, 15, -1, -1, 219, -1, -1, -1, 95, 96, ! -1, -1, -1, 228, -1, 29, -1, 31, 32, -1, ! -1, -1, 43, -1, 38, -1, 1095, -1, 1097, 1098, ! 245, -1, -1, 47, 1615, 49, 1617, -1, 59, 60, ! -1, 256, 56, -1, -1, 59, 60, -1, 1019, -1, ! 1021, -1, -1, 1442, -1, -1, -1, -1, -1, 73, ! -1, 1130, 1131, 1132, 1133, 1134, 1135, 1136, -1, 83, ! 91, 1140, -1, 1142, 1143, 1144, -1, 1466, -1, 1148, ! -1, 95, 96, -1, 1153, 1154, 1155, 1156, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, -1, 4, 5, ! -1, 1170, -1, 9, 1173, 1174, -1, 1176, 833, 834, ! -1, -1, 1181, 1182, -1, 1184, -1, -1, -1, 3, ! 4, 5, 6, -1, -1, -1, 32, -1, 1197, -1, ! 1199, -1, -1, -1, -1, -1, -1, -1, 1207, -1, ! -1, 866, 867, 868, 869, 1726, -1, -1, -1, 874, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, 43, ! 3, 4, 5, 6, -1, 1234, 1235, 73, 1237, 521, ! -1, -1, 56, 1242, 526, 59, 60, 83, -1, 1248, ! -1, 4, 5, -1, 7, 8, 9, 1256, -1, 95, ! 13, -1, 15, -1, -1, -1, -1, 1266, 1267, 1268, ! 43, -1, -1, -1, -1, 557, 29, 91, 31, 32, ! -1, -1, 564, -1, -1, 38, 59, 60, -1, -1, ! 435, -1, -1, -1, 47, 1196, 49, 1198, -1, 444, ! -1, -1, -1, 56, -1, -1, 59, 60, 1307, 1308, ! 1309, 1310, 1311, 1312, -1, -1, 1315, 1316, 91, -1, ! 73, -1, -1, -1, -1, 607, 608, -1, 610, -1, ! 83, 476, 1331, 1332, 1333, 1334, 1335, -1, -1, -1, ! -1, -1, 95, 96, -1, 1344, -1, -1, -1, 1348, ! -1, -1, -1, -1, -1, -1, -1, 1258, 1357, -1, ! -1, -1, -1, -1, -1, 510, -1, -1, 4, 5, ! -1, 1370, -1, 9, 519, -1, -1, -1, -1, 1378, ! 4, -1, -1, 4, 5, -1, -1, -1, 9, -1, ! 14, -1, -1, -1, -1, 540, 32, -1, -1, 23, ! 24, -1, -1, -1, -1, -1, -1, 31, 32, -1, ! 34, 32, 36, 49, -1, -1, -1, 699, 700, -1, ! 56, 45, 567, 59, 60, -1, 708, -1, 49, -1, ! -1, -1, -1, -1, 58, 56, 60, 73, 59, 60, ! -1, 1440, 1441, -1, 1443, 69, 1445, 83, 1447, -1, ! 74, -1, 73, -1, -1, -1, -1, -1, -1, 95, ! 96, -1, 83, 87, 1463, -1, -1, -1, 92, 1468, ! -1, 95, 1471, 97, 95, 96, 1131, 1132, 1133, 1134, ! -1, -1, -1, -1, -1, 1140, -1, 1142, 1143, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, 1154, ! 1155, 1156, -1, -1, -1, 1504, 1505, 1506, 1507, 1508, ! -1, -1, -1, -1, -1, 1514, 140, -1, 142, 1420, ! 144, -1, 146, 147, -1, -1, -1, -1, 152, -1, ! -1, 155, 156, 157, -1, -1, -1, 4, 5, -1, ! -1, 8, 9, 3, 4, 5, 6, 171, 15, -1, ! 1451, 175, -1, -1, -1, 837, 1457, 181, 182, -1, ! -1, 1560, 29, 1562, 31, 32, -1, -1, -1, -1, ! -1, 38, 1473, 1474, -1, -1, 200, 201, 202, -1, ! 47, -1, -1, 43, -1, -1, 694, 695, 4, 56, ! 872, -1, 59, 60, 61, 1496, 56, -1, -1, 59, ! 60, -1, -1, 63, -1, 65, 230, -1, -1, -1, ! -1, -1, -1, 73, -1, -1, 1615, 1616, 1617, -1, ! 36, -1, -1, 83, -1, -1, -1, -1, 95, 45, ! -1, 91, 914, -1, 916, 95, -1, -1, -1, 1540, ! 1541, -1, 58, -1, 60, -1, 270, 4, 5, -1, ! -1, 8, 9, 1308, 1309, 1310, 1311, -1, 15, -1, ! 1315, -1, 1563, 1564, -1, 1566, 3, 4, 5, 6, ! -1, -1, 29, 1672, 31, 32, 1331, 1332, -1, -1, ! -1, 38, -1, -1, -1, -1, -1, -1, 312, 313, 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, ! -1, -1, 59, 60, -1, -1, 43, -1, 990, 991, ! -1, 993, -1, 50, 1713, 1714, 1715, 862, -1, -1, ! 865, -1, 59, 60, 140, 833, 834, 1726, -1, -1, ! 146, -1, -1, 357, -1, -1, 881, 361, 95, 363, ! -1, 1023, 366, 367, -1, -1, 83, -1, 372, -1, ! -1, -1, 376, 377, 91, 171, -1, -1, -1, 175, ! -1, -1, -1, -1, -1, 181, 182, -1, 392, -1, ! -1, -1, 3, 4, 5, 6, 7, 8, 9, 1680, ! -1, -1, -1, -1, 15, 1440, 1441, -1, 1443, -1, ! 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 424, 32, 426, 427, -1, -1, -1, 38, -1, 433, ! -1, 435, 43, -1, 230, -1, 47, -1, 49, -1, ! -1, 445, -1, -1, 448, 56, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, 460, -1, -1, -1, ! -1, -1, 73, -1, 468, 3, 4, 5, 6, 1504, ! 1505, -1, 83, -1, -1, -1, -1, 1139, -1, -1, ! 91, -1, 1007, -1, 95, 96, -1, -1, -1, -1, ! 494, 495, 496, 497, 498, -1, -1, -1, 502, -1, ! -1, -1, -1, -1, -1, 43, 510, 511, -1, 1034, ! 514, -1, 516, 517, 518, 519, -1, -1, 56, 523, ! 1008, 59, 60, 1011, 528, 63, -1, 531, -1, -1, ! -1, 4, 5, -1, 1022, 73, 9, -1, -1, 543, ! 1028, 1029, -1, -1, -1, 83, -1, -1, 552, -1, ! -1, -1, -1, 91, -1, -1, -1, 95, -1, 32, ! -1, -1, -1, 567, -1, -1, -1, -1, 3, 4, ! 5, 6, 7, 8, 9, -1, 49, -1, 13, -1, ! 15, 377, -1, 56, -1, -1, 59, 60, -1, -1, ! 1252, -1, -1, -1, 29, -1, 31, 32, -1, -1, ! 73, -1, -1, 38, -1, 1130, -1, -1, 43, 613, ! 83, 1136, 47, -1, 49, 619, 620, 621, 622, -1, ! -1, 56, 95, 96, 59, 60, -1, -1, -1, -1, ! 426, -1, -1, -1, -1, -1, -1, 641, 73, 435, ! -1, 4, 5, 1131, 1132, 1133, 1134, -1, 83, -1, ! -1, 1313, 1140, -1, 1142, 1143, 91, -1, -1, -1, ! 95, 96, -1, -1, -1, -1, -1, -1, -1, 32, ! -1, -1, 468, -1, 678, -1, 680, -1, 1713, 1714, ! -1, 1343, 3, 4, 5, 6, 49, -1, -1, -1, ! 694, 695, 696, 56, 1356, -1, 59, 60, 494, 495, ! 496, 497, -1, 707, -1, -1, 502, -1, -1, -1, ! 73, -1, -1, -1, 510, -1, -1, -1, 722, -1, ! 83, 1383, 43, 1248, -1, 1387, 730, 523, -1, 50, ! -1, 1256, 95, 96, -1, 531, -1, -1, 59, 60, ! -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, ! 5, 6, -1, -1, 9, 3, 4, 5, 6, -1, ! 1422, -1, 83, -1, -1, -1, -1, -1, -1, -1, ! 91, 567, -1, 777, -1, 779, -1, 32, 1266, 1267, ! -1, 785, 1307, -1, -1, -1, -1, -1, 43, 793, ! 794, 1316, -1, -1, 49, 43, -1, -1, -1, -1, ! -1, 56, 50, -1, 59, 60, -1, -1, -1, 1334, ! 1335, 59, 60, 1475, 1476, 819, -1, -1, 73, -1, ! 1308, 1309, 1310, 1311, -1, -1, -1, 1315, 83, 833, ! 834, 835, -1, -1, -1, 83, 91, -1, -1, 843, ! 95, 96, -1, 91, -1, 3, 4, 5, 6, -1, ! 1512, 1513, -1, -1, -1, -1, 1518, -1, 862, -1, ! -1, 865, 866, 867, 868, 869, 870, -1, -1, -1, ! 874, -1, -1, -1, 32, -1, -1, 881, -1, -1, ! -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, ! -1, 49, -1, -1, -1, -1, -1, -1, 56, -1, ! 904, 59, 60, 907, 908, 909, -1, 911, -1, 913, ! -1, -1, -1, -1, -1, 73, -1, -1, 922, 923, ! 924, -1, 1447, -1, -1, 83, -1, -1, -1, 933, ! -1, -1, -1, 91, 730, -1, -1, 95, 96, 75, ! 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ! 86, 87, 1440, 1441, -1, 1443, -1, -1, -1, -1, ! -1, -1, -1, -1, 1, 1627, 3, 4, 5, 6, ! 7, 8, 9, -1, -1, -1, -1, -1, 15, -1, ! 984, -1, 1507, 1508, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, -1, 31, 32, 33, 793, -1, -1, ! -1, 38, -1, 1007, 1008, -1, 43, 1011, -1, -1, ! 47, -1, -1, 50, 1018, -1, 1504, 1505, 1022, 56, ! 1024, -1, 59, 60, 1028, 1029, 1030, -1, -1, -1, ! 1034, -1, 1036, -1, -1, -1, 73, 1562, -1, -1, ! -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, ! -1, -1, -1, -1, 91, -1, -1, -1, 95, -1, ! -1, -1, 99, -1, -1, -1, 862, 3, 4, 5, ! 6, 76, 77, 9, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, -1, -1, 881, -1, -1, -1, -1, ! -1, 1095, -1, 1097, 1098, -1, 32, -1, -1, -1, ! -1, 3, 4, 5, 6, -1, -1, 43, 904, -1, ! -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, ! 56, -1, -1, 59, 60, -1, 1130, 1131, 1132, 1133, ! 1134, 1135, 1136, -1, -1, -1, 1140, 73, 1142, 1143, ! 1144, 43, -1, -1, 1148, -1, -1, 83, 50, 1153, ! 1154, 1155, 1156, 13, -1, 91, -1, 59, 60, 95, ! 96, -1, -1, 1167, -1, -1, 1170, -1, -1, 1173, ! 1174, -1, 1176, -1, -1, -1, -1, 1181, 1182, -1, ! 1184, 83, -1, -1, -1, -1, -1, -1, -1, 91, ! -1, -1, -1, 1197, -1, 1199, -1, -1, -1, -1, ! -1, -1, -1, 1207, -1, 65, 66, 67, 68, 69, ! 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, -1, ! 1234, 1235, -1, 1237, -1, -1, -1, -1, 1242, -1, ! -1, -1, -1, -1, 1248, 3, 4, 5, 6, 7, ! 8, 9, 1256, -1, -1, 13, -1, 15, -1, -1, ! -1, -1, 1266, 1267, 1268, -1, -1, -1, -1, -1, ! -1, 29, -1, 31, 32, -1, -1, -1, -1, -1, ! 38, -1, -1, -1, -1, 43, -1, -1, -1, 47, ! -1, 49, -1, 1297, -1, -1, -1, -1, 56, -1, ! -1, 59, 60, 1307, 1308, 1309, 1310, 1311, 1312, -1, ! -1, 1315, 1316, -1, -1, 73, -1, -1, -1, 3, ! 4, 5, 6, -1, -1, 83, -1, 1331, 1332, 1333, ! 1334, 1335, -1, 91, 1130, 1339, -1, 95, 96, -1, ! 1344, 4, -1, -1, 1348, -1, -1, -1, 32, -1, ! -1, -1, -1, 1357, -1, -1, -1, -1, -1, 43, ! -1, -1, -1, -1, -1, 49, -1, 112, 31, 32, ! -1, 34, 56, 36, 1378, 59, 60, -1, 1174, -1, ! 1176, -1, 45, -1, -1, 1181, 1182, -1, 1184, 73, ! -1, -1, -1, -1, -1, 58, -1, 60, -1, 83, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, 96, -1, -1, -1, -1, -1, -1, 82, ! -1, -1, 85, -1, -1, 3, 4, 5, 6, -1, ! -1, 9, -1, -1, -1, -1, 1440, 1441, -1, 1443, ! -1, 1445, -1, 1447, -1, -1, -1, -1, -1, -1, ! -1, 196, -1, -1, 32, -1, -1, -1, -1, 1463, ! -1, -1, -1, -1, 1468, 43, -1, 1471, -1, -1, ! -1, -1, -1, -1, 137, 138, 221, 140, 56, -1, ! -1, 59, 60, 146, 147, -1, -1, 150, 151, 152, ! -1, -1, 155, 156, 157, 73, -1, -1, -1, 162, ! 1504, 1505, 1506, 1507, 1508, 83, -1, -1, 171, -1, ! 1514, 1307, 175, 91, -1, -1, -1, 95, 181, 182, ! 1316, -1, -1, 4, 5, -1, 7, 8, 9, -1, ! -1, -1, -1, -1, 15, -1, -1, 200, 201, 202, ! -1, -1, -1, -1, -1, -1, -1, 210, 29, -1, ! 31, 32, 1348, -1, -1, -1, 1560, 38, 1562, -1, ! -1, -1, -1, -1, -1, -1, 47, 230, -1, 50, ! -1, -1, -1, -1, -1, 56, -1, -1, 59, 60, ! -1, -1, 1378, -1, -1, -1, -1, -1, -1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, -1, 344, ! 1604, -1, 15, -1, -1, -1, -1, 270, -1, -1, ! -1, 1615, 1616, 1617, 277, -1, 29, -1, 31, 32, ! 33, -1, -1, -1, -1, 38, -1, -1, 4, 5, ! 43, -1, 8, 9, 47, -1, -1, 50, -1, 15, ! -1, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! -1, -1, -1, 29, -1, 31, 32, -1, -1, -1, ! 73, -1, 38, -1, -1, -1, -1, 1463, 1672, -1, ! 83, 47, 1468, 49, -1, 1471, -1, -1, 91, 424, ! 56, 344, 95, 59, 60, -1, 99, -1, 92, -1, ! -1, 95, -1, 97, -1, -1, -1, 73, 361, -1, ! -1, -1, -1, -1, -1, -1, -1, 83, 371, 1713, ! 1714, 1715, -1, -1, 377, -1, -1, -1, -1, 95, ! 96, -1, 1726, -1, -1, -1, -1, -1, 391, -1, ! -1, -1, 4, 5, -1, -1, 8, 9, 142, -1, ! 144, -1, -1, 15, -1, -1, -1, -1, -1, -1, ! -1, 414, -1, -1, -1, -1, -1, 502, -1, -1, ! 32, -1, -1, 426, -1, -1, 38, -1, -1, -1, ! -1, -1, 435, -1, 437, 47, -1, 49, -1, -1, ! -1, 444, 445, -1, 56, 448, -1, 59, 60, -1, ! -1, 454, 455, 456, -1, -1, -1, 460, -1, -1, ! -1, 73, -1, -1, -1, 468, -1, -1, -1, -1, ! -1, 83, -1, -1, -1, -1, -1, -1, -1, 1615, ! 1616, 1617, -1, 95, 96, -1, -1, 3, 4, 5, ! 6, 494, 495, 496, 497, -1, -1, -1, -1, 502, ! -1, -1, -1, -1, -1, -1, -1, 510, 511, -1, ! -1, 514, -1, 516, 517, 518, 519, -1, -1, -1, ! 523, -1, -1, -1, -1, 528, -1, 43, 531, -1, ! -1, -1, -1, 618, 619, 620, 621, 622, -1, -1, ! 56, -1, -1, 59, 60, -1, 631, -1, -1, 65, ! -1, -1, -1, -1, -1, -1, -1, 73, -1, 644, ! -1, -1, -1, -1, 567, -1, -1, 83, -1, -1, ! -1, -1, -1, -1, -1, 91, -1, 321, 322, 95, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, ! 1726, 335, 677, 337, -1, -1, 340, -1, -1, 343, ! -1, -1, 346, -1, -1, -1, 350, -1, -1, -1, ! -1, 696, -1, -1, 358, -1, 31, 32, 703, 34, ! 705, 36, 707, -1, -1, -1, 629, 630, 631, -1, ! 45, -1, 376, -1, -1, -1, -1, -1, -1, -1, ! -1, 644, -1, 58, -1, 60, 71, 72, 73, 74, ! 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, 3, 4, 5, 6, 7, 8, 9, ! 85, 74, 75, 76, 77, 15, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, -1, -1, -1, 691, 433, ! -1, -1, 32, -1, -1, -1, -1, -1, 38, -1, ! 703, -1, 705, 43, 707, -1, -1, 47, -1, 49, ! -1, -1, -1, -1, -1, -1, 56, -1, -1, 59, ! 60, -1, -1, -1, -1, 140, -1, 730, -1, -1, ! -1, 146, 147, 73, -1, -1, 151, 152, -1, -1, ! 155, 156, 157, 83, -1, -1, -1, -1, -1, -1, ! 835, 91, -1, -1, -1, 95, 171, -1, 843, -1, ! 175, -1, -1, -1, -1, -1, 181, 182, -1, -1, ! -1, -1, -1, -1, 777, -1, -1, -1, -1, -1, ! -1, 784, -1, -1, -1, 200, 201, 202, -1, -1, ! 793, 4, 5, -1, -1, 8, 9, -1, -1, 543, ! -1, -1, 15, 76, 77, 78, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, 230, -1, -1, -1, 32, ! -1, -1, 907, -1, -1, 38, -1, -1, 913, -1, ! 833, 834, 835, -1, 47, -1, 49, 840, 841, -1, ! 843, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! -1, -1, -1, -1, 857, 270, -1, -1, -1, 862, ! 73, -1, 865, 866, 867, 868, 869, 870, -1, 613, ! 83, 874, -1, -1, -1, -1, -1, -1, 881, -1, ! -1, -1, 95, 96, -1, 629, 630, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 641, -1, 984, ! -1, 904, 646, 647, -1, 649, 650, 651, 652, 653, ! 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, ! 664, 665, 666, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 1018, -1, -1, -1, -1, -1, 1024, ! 73, 74, 75, 76, 77, 1030, 79, 80, 81, 82, ! 83, 84, 85, 86, 87, -1, -1, 372, -1, -1, ! -1, -1, 377, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 392, 279, 280, ! 281, 282, 283, 284, -1, 286, 287, 288, 289, 290, ! 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ! 301, 302, 303, 304, 305, 306, 307, -1, 309, -1, ! 1095, 426, 1097, -1, -1, -1, -1, -1, -1, -1, ! 435, -1, -1, -1, -1, 1028, 1029, 1030, -1, -1, ! 445, 1034, 1035, 448, -1, 779, -1, -1, -1, -1, ! 34, -1, -1, -1, -1, 460, -1, -1, -1, -1, ! 1135, -1, -1, 468, 3, 4, 5, 6, -1, 1144, ! 9, -1, -1, -1, 58, 75, 76, 77, 1153, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, -1, 494, ! 495, 496, 497, 32, -1, -1, -1, 502, -1, -1, ! -1, -1, -1, -1, 43, 510, 511, -1, -1, 514, ! -1, 516, 517, 518, -1, -1, -1, 56, 523, -1, ! 59, 60, 1197, 528, 1199, -1, 531, -1, -1, -1, ! -1, -1, 1207, -1, 73, -1, -1, 1130, 1131, 1132, ! 1133, 1134, 1135, 1136, 83, 1138, -1, 1140, 1141, 1142, ! 1143, 1144, 91, -1, -1, 1148, 95, -1, -1, -1, ! -1, -1, 567, -1, -1, -1, -1, -1, -1, -1, ! -1, 155, 156, 157, 908, 909, -1, 911, -1, -1, ! 1173, 1174, -1, 1176, -1, -1, -1, -1, 1181, 1182, ! -1, 1184, -1, 1268, -1, -1, -1, 181, 1, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, ! -1, -1, 15, -1, -1, -1, 200, 201, 202, -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, 32, ! -1, -1, -1, -1, -1, 38, -1, 1312, -1, -1, ! 43, -1, -1, -1, 47, -1, 230, 50, -1, -1, -1, -1, -1, 56, -1, -1, 59, 60, -1, -1, ! 63, -1, 996, -1, -1, -1, -1, -1, -1, 1344, ! 73, -1, -1, 1266, 1267, 1268, -1, -1, -1, -1, ! 83, -1, 1357, -1, -1, -1, -1, 692, 91, -1, ! 581, -1, 95, -1, 1028, 1029, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, -1, -1, 9, -1, -1, ! -1, -1, -1, 604, 1307, 1308, 1309, 1310, 1311, 1312, ! -1, 612, 1315, 1316, -1, 730, -1, -1, -1, 313, ! 32, -1, -1, -1, 3, 4, 5, 6, 7, 8, ! 9, 43, -1, -1, 13, -1, 15, -1, -1, -1, ! -1, -1, -1, -1, 56, 1348, -1, 59, 60, -1, ! 29, -1, 31, 32, 1098, -1, -1, 1101, -1, 38, ! 1445, 73, -1, -1, 43, -1, 1369, 1370, 47, 363, ! 49, 83, 366, 367, -1, 1378, -1, 56, 793, 91, ! 59, 60, -1, 95, 3, 4, 5, 6, -1, -1, ! 9, -1, -1, -1, 73, -1, -1, -1, 1142, 1143, ! -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, ! -1, -1, 91, 32, -1, -1, 95, 96, 833, 834, ! 835, 1506, -1, -1, 43, -1, 841, -1, 843, 1514, ! -1, -1, 426, -1, -1, -1, -1, 56, -1, -1, ! 59, 60, -1, -1, -1, -1, -1, 862, -1, -1, ! -1, 866, 867, -1, 73, -1, -1, -1, -1, 874, ! 1463, -1, -1, 1466, 83, 1468, 881, -1, 1471, -1, ! -1, -1, 91, -1, -1, 1560, 95, -1, 1222, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 904, ! -1, -1, -1, -1, -1, -1, 1240, -1, 1242, -1, ! 494, -1, 496, 497, 498, 1, -1, -1, 4, 5, ! -1, -1, 8, 9, -1, -1, 510, 511, -1, 15, ! 514, -1, 516, 517, 518, 519, -1, -1, -1, 523, ! -1, -1, -1, 29, 528, 31, 32, 531, -1, -1, ! -1, -1, 38, -1, 40, 41, -1, -1, -1, -1, ! -1, 47, -1, 49, -1, -1, -1, -1, -1, -1, ! 56, -1, -1, 59, 60, -1, 62, -1, -1, -1, ! 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ! 86, -1, -1, 89, 90, 91, -1, 93, -1, -1, ! 96, -1, 3, 4, 5, 6, -1, -1, 9, -1, ! -1, 58, 1615, 1616, 1617, -1, 112, 918, 919, 1, ! -1, 1036, 4, 5, -1, -1, 8, 9, -1, -1, ! 1715, 32, -1, 15, -1, 82, -1, -1, 85, -1, ! -1, -1, 43, -1, -1, -1, -1, 29, -1, 31, ! 32, 3, 4, 5, 6, 56, 38, 9, 59, 60, ! -1, -1, 109, -1, 111, 47, -1, -1, -1, 1672, ! -1, -1, 73, -1, 56, -1, -1, 59, 60, -1, ! 32, -1, 83, -1, -1, -1, 680, -1, -1, -1, ! 91, 43, -1, -1, 95, -1, -1, -1, -1, -1, ! 694, 695, 696, -1, 56, -1, -1, 59, 60, -1, ! 1713, 1714, 1715, 707, -1, 1130, 1131, 1132, 1133, 1134, ! 1135, 73, -1, 1726, -1, 1140, -1, 1142, 1143, 1144, ! -1, 83, -1, 1148, 181, -1, 730, -1, -1, 91, ! -1, -1, 1, 95, 3, 4, 5, 6, 7, 8, ! 9, -1, -1, 200, 201, 202, 15, -1, 1173, 1174, ! -1, 1176, -1, 210, -1, -1, 1181, 1182, -1, 1184, ! 29, -1, 31, 32, 33, -1, -1, -1, -1, 38, ! 39, -1, -1, 230, 43, -1, -1, -1, 47, 48, ! -1, 50, -1, -1, -1, -1, -1, 56, -1, 793, ! 59, 60, -1, -1, 63, -1, 65, -1, -1, -1, ! 257, -1, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 83, 3, 4, 5, 6, -1, ! 277, 9, 91, -1, -1, -1, 95, -1, -1, 833, ! 834, 835, -1, -1, -1, -1, -1, -1, -1, 843, ! -1, -1, 111, -1, 32, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 1608, 43, -1, -1, 862, -1, ! -1, 865, 866, 867, 868, 869, 870, -1, 56, -1, ! 874, 59, 60, -1, -1, -1, -1, 881, -1, -1, ! -1, -1, 1307, 1308, 1309, 73, 3, 4, 5, 6, ! 1315, 1316, -1, -1, -1, 83, -1, -1, -1, -1, ! -1, -1, -1, 91, -1, -1, -1, 95, -1, -1, ! -1, -1, -1, -1, 371, 372, -1, -1, 922, 923, ! 924, -1, -1, 1348, -1, -1, 43, 4, 5, 933, ! 7, 8, 9, -1, 391, 392, 13, -1, 15, 56, ! -1, -1, 59, 60, -1, 1370, -1, -1, 65, -1, ! -1, -1, 29, 1378, 31, 32, 73, -1, -1, 1713, ! 1714, 38, -1, -1, -1, -1, 83, -1, -1, 426, ! 47, -1, -1, -1, 91, -1, -1, -1, 95, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, 3, 4, ! 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, ! 15, -1, -1, 1007, 1008, -1, -1, 1011, -1, -1, ! -1, -1, -1, -1, 29, -1, 31, 32, 1022, -1, ! -1, -1, -1, 38, 1028, 1029, 1030, -1, 43, -1, ! 1034, -1, 47, -1, 49, -1, -1, 494, 1463, 496, ! 497, 56, -1, 1468, 59, 60, 1471, -1, -1, -1, ! -1, -1, -1, 510, 511, -1, -1, 514, 73, 516, ! 517, 518, 519, 32, -1, -1, 523, -1, 83, -1, ! -1, 528, -1, -1, 531, -1, 91, -1, -1, -1, ! 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 196, -1, -1, -1, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, ! -1, -1, -1, -1, -1, -1, 1130, 1131, 1132, 1133, ! 1134, 1135, 1136, -1, -1, -1, 1140, -1, 1142, 1143, ! 1144, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 1154, 1155, 1156, -1, -1, -1, 1, -1, 3, 4, ! 5, 6, 7, 8, 9, -1, -1, -1, -1, 1173, ! 15, -1, -1, -1, -1, -1, -1, 1181, -1, 3, ! 4, 5, 6, -1, 29, -1, 31, 32, 33, -1, ! 1615, 1616, 1617, 38, 39, -1, -1, -1, 43, -1, ! -1, -1, 47, 48, -1, 50, -1, -1, 32, -1, ! -1, 56, -1, -1, 59, 60, -1, -1, 63, 43, ! 65, -1, -1, -1, -1, -1, -1, -1, 73, -1, ! 1234, 1235, 56, 1237, -1, 59, 60, -1, 83, -1, ! -1, -1, -1, -1, 1248, -1, 91, 1672, -1, 73, ! 95, -1, 1256, 710, 711, -1, -1, -1, -1, 83, ! -1, -1, 1266, 1267, 1268, -1, 111, 91, -1, -1, ! -1, 95, -1, 730, -1, -1, -1, -1, -1, -1, ! 385, -1, -1, -1, -1, -1, -1, -1, 1713, 1714, ! 1715, 4, 5, -1, 7, 8, 9, -1, -1, -1, ! 13, 1726, 15, 1307, 1308, 1309, 1310, 1311, 1312, -1, ! -1, 1315, 1316, -1, -1, -1, 29, -1, 31, 32, ! -1, -1, -1, -1, -1, 38, -1, 1331, 1332, 1333, ! 1334, 1335, -1, -1, 47, -1, 793, -1, -1, -1, ! -1, -1, -1, 56, 1348, -1, 59, 60, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 363, -1, -1, ! 366, 367, 3, 4, 5, 6, 7, 8, 9, -1, ! -1, -1, -1, -1, 15, -1, 833, 834, 835, 484, ! 485, -1, -1, 840, 841, -1, 843, -1, 29, -1, ! 31, 32, -1, -1, -1, -1, -1, 38, -1, -1, ! -1, -1, 43, -1, -1, 862, 47, -1, 865, 866, ! 867, 868, 869, 870, 871, 56, -1, 874, 59, 60, ! -1, -1, 63, -1, 881, -1, 3, 4, 5, 6, ! -1, -1, 73, -1, -1, -1, 1440, 1441, -1, 1443, ! -1, -1, 83, 1447, -1, -1, 903, -1, -1, -1, ! 91, -1, -1, -1, 95, 32, -1, -1, -1, 1463, ! 72, 73, 74, 75, 76, 77, 43, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, -1, -1, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, 494, -1, ! 496, 497, 498, -1, -1, -1, 73, -1, -1, -1, ! 1504, 1505, 1506, 1507, 1508, -1, 83, -1, -1, 614, ! -1, -1, 617, -1, 91, -1, -1, -1, 95, -1, ! 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, ! -1, -1, 15, -1, -1, -1, -1, -1, 643, -1, ! 4, 5, -1, 7, 8, 9, 29, -1, 31, 32, ! -1, 15, -1, -1, -1, 38, -1, -1, 1562, -1, ! 43, -1, -1, 668, 47, 29, -1, 31, 32, 674, ! -1, 676, 677, 56, 38, -1, 59, 60, 1035, 1036, ! 1037, -1, 65, 47, -1, -1, -1, -1, -1, -1, ! 73, -1, 56, -1, -1, 59, 60, -1, -1, -1, ! 83, -1, 707, -1, -1, -1, -1, -1, 91, 714, ! -1, 1615, 95, 1617, -1, -1, -1, -1, -1, 724, ! 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, ! 80, 81, 82, 83, 84, 85, 86, 87, 743, 744, ! 745, 746, -1, 748, 749, 750, 751, 752, 753, 754, ! 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, ! 765, 766, -1, -1, -1, -1, -1, -1, 1672, -1, ! -1, -1, -1, 1130, 1131, 1132, 1133, 1134, 1135, 1136, ! -1, 1138, -1, 1140, 1141, 1142, 1143, 1144, 694, 695, ! 696, 1148, -1, -1, -1, -1, -1, 1154, 1155, 1156, ! 1, 707, 3, 4, 5, 6, 7, 8, 9, 1713, ! 1714, 1715, 13, -1, 15, -1, -1, -1, -1, 824, ! -1, -1, 1726, -1, 1181, 26, -1, 28, -1, -1, ! -1, 32, -1, -1, -1, -1, -1, 38, 843, -1, ! -1, -1, 43, -1, -1, -1, 47, -1, 49, -1, ! -1, -1, 857, -1, -1, 56, -1, -1, 59, 60, ! 61, 62, 63, -1, 65, 66, 67, 68, 69, 70, ! 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 793, 89, 90, ! 91, -1, 93, 94, 95, 96, 97, -1, -1, -1, ! -1, -1, 103, 104, -1, 14, -1, -1, 109, 110, ! 111, -1, 113, -1, 23, 24, -1, -1, -1, -1, ! -1, -1, 31, 32, -1, 34, -1, 833, 834, 835, ! -1, -1, -1, -1, -1, -1, -1, 843, -1, -1, ! -1, -1, -1, -1, -1, 950, -1, -1, -1, -1, ! 1307, 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, 1316, ! 69, -1, 4, 5, -1, -1, 8, 9, -1, 3, ! 4, 5, 6, 15, 1331, 1332, 1333, 1334, 1335, -1, ! -1, -1, 987, 988, -1, -1, -1, 29, -1, 31, ! 32, 1348, -1, -1, -1, -1, 38, 1002, 32, 1004, ! -1, 1006, -1, -1, -1, 47, -1, -1, -1, 43, ! -1, -1, 1369, -1, 56, -1, -1, 59, 60, 128, ! -1, 130, 56, -1, -1, 59, 60, 933, 137, 138, ! -1, -1, -1, -1, -1, -1, -1, 146, 147, 73, ! -1, 150, 151, 152, 1049, 154, 155, 156, 157, 83, ! -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, 73, 74, 75, 76, 77, 78, 79, 80, ! 81, 82, 83, 84, 85, 86, 87, 1082, -1, -1, ! -1, -1, -1, 1440, 1441, 1442, 1443, -1, -1, -1, ! 1447, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 1007, 1008, -1, -1, 1011, 1463, -1, -1, -1, ! -1, -1, -1, -1, -1, 1120, 1022, -1, -1, -1, ! -1, -1, 1028, 1029, 1030, -1, -1, 1, 1034, 3, ! 4, 5, 6, 7, 8, 9, -1, 246, 247, -1, ! -1, 15, -1, -1, -1, 1150, 1151, 1504, 1505, 1506, ! 1507, 1508, -1, -1, -1, 29, -1, 31, 32, 33, ! -1, 270, -1, -1, 38, -1, -1, 1172, -1, 43, ! -1, -1, -1, 47, 48, -1, 50, -1, -1, -1, ! -1, -1, 56, -1, -1, 59, 60, -1, -1, 63, ! -1, 65, -1, -1, -1, -1, -1, -1, -1, 73, ! -1, -1, -1, -1, 313, 1562, -1, -1, -1, 83, ! -1, -1, -1, 1218, 1219, -1, -1, 91, -1, -1, ! -1, 95, -1, -1, 1130, 1131, 1132, 1133, 1134, 1135, ! 1136, -1, -1, -1, 1140, -1, 1142, 1143, 1144, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 361, -1, 363, -1, -1, 366, 1615, -1, ! 1617, -1, -1, -1, -1, 4, 5, -1, -1, 8, ! 9, -1, -1, 1278, -1, -1, 15, -1, -1, -1, ! -1, -1, -1, -1, 3, 4, 5, 6, -1, -1, ! 29, -1, 31, 32, 1299, -1, 1301, -1, 1303, 38, ! 1305, -1, -1, -1, -1, 414, -1, -1, 47, -1, ! -1, -1, -1, 32, -1, 1672, -1, 56, -1, -1, ! 59, 60, -1, -1, 43, -1, 435, -1, 437, -1, ! -1, 1336, -1, -1, -1, -1, 445, 56, -1, 448, ! 59, 60, 1248, -1, -1, -1, -1, -1, -1, -1, ! 1256, 460, -1, -1, 73, 1360, 1713, 1714, 1715, -1, ! 1266, 1267, 1268, -1, 83, -1, -1, -1, -1, 1726, ! -1, -1, 91, -1, -1, -1, 95, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, ! 85, 86, 87, 1398, -1, -1, -1, -1, -1, -1, ! -1, 1307, 1308, 1309, 1310, 1311, 1312, -1, -1, 1315, ! 1316, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 1427, -1, -1, -1, 3, 4, 5, 6, ! -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, ! -1, -1, 551, 552, 1449, 15, -1, -1, -1, -1, ! -1, -1, -1, -1, 1459, 1460, -1, -1, 567, 29, ! -1, 31, 32, 33, -1, -1, 43, -1, 38, 39, ! -1, -1, -1, 43, -1, -1, -1, 47, 48, 56, ! 50, -1, 59, 60, 1489, -1, 56, -1, 65, 59, ! 60, -1, -1, 63, -1, 65, 73, -1, -1, -1, ! 609, -1, 611, 73, -1, -1, 83, -1, -1, -1, ! -1, -1, -1, 83, 91, -1, -1, -1, 95, -1, ! 1525, 91, -1, -1, -1, 95, -1, -1, -1, -1, ! -1, -1, -1, -1, 1440, 1441, -1, 1443, -1, -1, ! -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 3, 4, 5, 6, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 1570, 1571, -1, -1, -1, ! -1, 680, -1, -1, -1, -1, -1, -1, -1, -1, ! 32, -1, 691, 692, -1, 694, 695, -1, -1, -1, ! -1, 43, 1597, -1, -1, -1, -1, -1, 1504, 1505, ! 1506, 1507, 1508, -1, 56, -1, -1, 59, 60, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, ! 1635, 83, -1, -1, -1, -1, -1, -1, -1, 91, ! -1, -1, -1, 95, 66, 67, 68, 69, 70, 71, ! 72, 73, 74, 75, 76, 77, 1562, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, 1672, 777, -1, ! -1, -1, -1, -1, -1, 784, 785, -1, -1, -1, ! -1, -1, -1, -1, -1, 794, -1, -1, -1, -1, ! -1, -1, 1697, -1, 1, -1, 3, 4, 5, 6, ! 7, 8, 9, 10, 11, 12, -1, 14, 15, 16, ! 819, 18, 19, 20, 21, 22, 23, 24, 25, 26, ! 27, 28, 29, 30, 31, 32, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, ! 47, 48, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, 61, -1, 63, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, -1, ! 97, -1, -1, -1, 903, -1, -1, -1, -1, -1, ! -1, -1, -1, 1808, 111, 112, -1, -1, -1, -1, ! -1, -1, -1, 922, 923, 924, 925, -1, -1, -1, ! -1, -1, -1, -1, 933, -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! 63, 64, -1, -1, -1, -1, -1, 70, 1007, 1008, ! 73, -1, 1011, -1, -1, -1, -1, -1, 81, 82, ! 83, -1, -1, 1022, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, -1, 97, 1034, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 1, 112, ! 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ! 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, ! 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, ! 43, 44, 45, -1, 47, -1, 49, -1, 51, 52, ! 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 96, -1, -1, -1, -1, -1, 1, ! -1, 3, 4, 5, 6, 7, 8, 9, -1, 112, ! -1, -1, -1, 15, -1, -1, -1, -1, 1167, -1, ! -1, 1170, -1, -1, 1173, -1, -1, 29, -1, 31, ! 32, 33, -1, -1, -1, -1, 38, 39, -1, -1, ! -1, 43, -1, -1, -1, 47, 48, -1, 50, -1, ! -1, -1, -1, -1, 56, -1, -1, 59, 60, -1, ! -1, 63, -1, 65, 71, 72, 73, 74, 75, 76, ! 77, 73, 79, 80, 81, 82, 83, 84, 85, 86, ! 87, 83, -1, -1, -1, 1234, 1235, -1, 1237, 91, ! -1, -1, -1, 95, -1, -1, -1, -1, -1, 1248, ! -1, -1, -1, -1, -1, -1, -1, 1256, -1, 111, ! -1, -1, -1, -1, -1, -1, -1, 1266, 1267, -1, ! -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, ! 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 1297, -1, ! 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! 49, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, 61, -1, -1, 64, -1, -1, -1, -1, ! 1339, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 96, -1, -1, ! -1, 1370, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 1, 112, 3, 4, 5, 6, 7, 8, ! 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, 1466, -1, 1468, ! 89, 90, 91, -1, -1, 1, 95, 3, 4, 5, ! 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, 110, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, 61, -1, 63, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, ! 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, ! -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 96, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, ! 1, -1, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, 1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 96, 1, ! -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, ! 12, -1, 14, 15, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, ! -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, ! 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, ! 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, ! -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 1, -1, 3, 4, 5, 6, ! 102, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, 61, -1, -1, 64, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, 1, 95, 3, ! 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, *************** static const short yycheck[] = { 14, *** 4034,4040 **** 1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, --- 3946,3952 ---- 1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, *************** static const short yycheck[] = { 14, *** 4042,4052 **** 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, 61, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, 3, 4, --- 3954,3964 ---- 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, 1, 95, 3, 4, *************** static const short yycheck[] = { 14, *** 4205,4210 **** --- 4117,4150 ---- 12, -1, 14, 15, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, + 42, 43, 44, 45, -1, 47, -1, 49, -1, 51, + 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, + -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, + 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, + -1, -1, -1, 95, 96, 3, 4, 5, 6, -1, + 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, + 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, + 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, + -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, + -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, + -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, + -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, + -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, + 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, + 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, + 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, + 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, + 55, 56, -1, -1, 59, 60, -1, -1, -1, 64, + -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, + -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, + 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, + 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, *************** static const short yycheck[] = { 14, *** 4213,4259 **** -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, ! 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, ! 63, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, --- 4153,4199 ---- -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, 63, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, ! 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, ! -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, ! -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, *************** static const short yycheck[] = { 14, *** 4263,4292 **** -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, ! 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, ! 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, ! 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, ! 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, ! 61, -1, -1, -1, -1, -1, -1, -1, -1, 70, ! -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, ! 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, ! 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, ! 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, ! -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, ! 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, ! -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, ! -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, ! -1, 89, 90, 91, -1, -1, -1, 95, 96, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, --- 4203,4232 ---- -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, ! -1, 95, 96, 3, 4, 5, 6, -1, 8, 9, ! 10, 11, 12, -1, 14, 15, -1, -1, 112, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, ! 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, ! 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, ! -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, ! 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, ! 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, ! -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, ! 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, ! -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, ! -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, ! 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, ! 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, ! -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, ! -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, ! -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, ! 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, *************** static const short yycheck[] = { 14, *** 4309,4321 **** -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, -1, 64, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, -1, --- 4249,4261 ---- -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, ! -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, 112, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, -1, *************** static const short yycheck[] = { 14, *** 4329,4361 **** 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, -1, -1, -1, -1, -1, -1, -1, 81, ! 82, 83, -1, -1, -1, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, 3, 4, 5, 6, -1, 8, ! 9, 10, 11, 12, -1, 14, 15, -1, -1, -1, ! 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, ! -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, ! -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, ! 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 70, -1, -1, 73, -1, -1, -1, -1, -1, ! -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, ! 89, 90, 91, -1, -1, -1, 95, 3, 4, 5, ! 6, -1, 8, 9, 10, 11, 12, -1, 14, 15, ! -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, ! 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, ! -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, ! 56, -1, -1, 59, 60, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 70, -1, -1, 73, -1, -1, ! -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, ! -1, -1, -1, 89, 90, 91, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, 112, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ! 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ --- 4269,4310 ---- 42, 43, 44, 45, -1, 47, -1, -1, -1, 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, ! -1, 73, 3, 4, 5, 6, 7, 8, 9, 81, ! 82, 83, -1, -1, 15, -1, -1, 89, 90, 91, ! -1, -1, -1, 95, -1, -1, -1, -1, 29, -1, ! 31, 32, -1, -1, -1, -1, -1, 38, -1, -1, ! 112, -1, 43, -1, -1, -1, 47, -1, 3, 4, ! 5, 6, 7, 8, 9, 56, -1, -1, 59, 60, ! 15, -1, 63, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 73, -1, 29, -1, 31, 32, -1, -1, ! -1, -1, 83, 38, -1, -1, -1, -1, 43, -1, ! 91, -1, 47, -1, 95, -1, -1, -1, -1, -1, ! -1, 56, -1, -1, 59, 60, -1, -1, -1, 3, ! 4, 5, 6, 7, 8, 9, -1, -1, 73, -1, ! -1, 15, -1, -1, -1, -1, -1, -1, 83, -1, ! -1, -1, -1, -1, -1, 29, 91, 31, 32, -1, ! 95, -1, -1, -1, 38, -1, -1, -1, -1, 43, ! -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, ! -1, -1, 56, -1, -1, 59, 60, -1, -1, -1, ! -1, 70, 71, 72, 73, 74, 75, 76, 77, 73, ! 79, 80, 81, 82, 83, 84, 85, 86, 87, 83, ! -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, ! -1, 95, 66, 67, 68, 69, 70, 71, 72, 73, ! 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ! 84, 85, 86, 87, 66, 67, 68, 69, 70, 71, ! 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, -1, -1, -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 62, -1, -1, 109, 66, 67, ! 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ! 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ! 62, -1, -1, -1, 66, 67, 68, 69, 70, 71, ! 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ! 82, 83, 84, 85, 86, 87, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ! 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ *************** case 170: *** 5548,5592 **** { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype, 1); yyungetc (';', 1); ; break;} case 172: ! #line 1036 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 174: #line 1040 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; break;} case 176: ! #line 1043 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; break;} ! case 178: #line 1048 "parse.y" { begin_explicit_instantiation(); ; break;} case 179: ! #line 1052 "parse.y" { end_explicit_instantiation(); ; break;} case 180: ! #line 1062 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 181: ! #line 1065 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 184: ! #line 1073 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 185: ! #line 1079 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 186: ! #line 1083 "parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; --- 5497,5557 ---- { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype, 1); yyungetc (';', 1); ; break;} + case 171: + #line 1034 "parse.y" + {; + break;} case 172: ! #line 1037 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 173: #line 1040 "parse.y" + {; + break;} + case 174: + #line 1042 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; break;} + case 175: + #line 1044 "parse.y" + {; + break;} case 176: ! #line 1046 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; break;} ! case 177: #line 1048 "parse.y" + {; + break;} + case 178: + #line 1052 "parse.y" { begin_explicit_instantiation(); ; break;} case 179: ! #line 1056 "parse.y" { end_explicit_instantiation(); ; break;} case 180: ! #line 1066 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 181: ! #line 1069 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 184: ! #line 1077 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 185: ! #line 1083 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 186: ! #line 1087 "parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; *************** case 186: *** 5596,5602 **** ; break;} case 188: ! #line 1095 "parse.y" { /* Handle `Class>' without space in the `>>' */ pedwarn ("`>>' should be `> >' in template class name"); --- 5561,5567 ---- ; break;} case 188: ! #line 1099 "parse.y" { /* Handle `Class>' without space in the `>>' */ pedwarn ("`>>' should be `> >' in template class name"); *************** case 188: *** 5604,5626 **** ; break;} case 189: ! #line 1104 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 191: ! #line 1110 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 192: ! #line 1112 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 193: ! #line 1117 "parse.y" { yyval.ttype = groktypename (yyvsp[0].ftype.t); ; break;} case 194: ! #line 1119 "parse.y" { yyval.ttype = lastiddecl; if (DECL_TEMPLATE_TEMPLATE_PARM_P (yyval.ttype)) --- 5569,5591 ---- ; break;} case 189: ! #line 1108 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 191: ! #line 1114 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 192: ! #line 1116 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 193: ! #line 1121 "parse.y" { yyval.ttype = groktypename (yyvsp[0].ftype.t); ; break;} case 194: ! #line 1123 "parse.y" { yyval.ttype = lastiddecl; if (DECL_TEMPLATE_TEMPLATE_PARM_P (yyval.ttype)) *************** case 194: *** 5628,5634 **** ; break;} case 195: ! #line 1125 "parse.y" { yyval.ttype = lastiddecl; if (DECL_TEMPLATE_TEMPLATE_PARM_P (yyval.ttype)) --- 5593,5599 ---- ; break;} case 195: ! #line 1129 "parse.y" { yyval.ttype = lastiddecl; if (DECL_TEMPLATE_TEMPLATE_PARM_P (yyval.ttype)) *************** case 195: *** 5636,5642 **** ; break;} case 197: ! #line 1132 "parse.y" { if (!processing_template_decl) { --- 5601,5607 ---- ; break;} case 197: ! #line 1136 "parse.y" { if (!processing_template_decl) { *************** case 197: *** 5648,5706 **** ; break;} case 198: ! #line 1145 "parse.y" { yyval.code = NEGATE_EXPR; ; break;} case 199: ! #line 1147 "parse.y" { yyval.code = CONVERT_EXPR; ; break;} case 200: ! #line 1149 "parse.y" { yyval.code = PREINCREMENT_EXPR; ; break;} case 201: ! #line 1151 "parse.y" { yyval.code = PREDECREMENT_EXPR; ; break;} case 202: ! #line 1153 "parse.y" { yyval.code = TRUTH_NOT_EXPR; ; break;} case 203: ! #line 1158 "parse.y" { yyval.ttype = build_x_compound_expr (yyval.ttype); ; break;} case 205: ! #line 1164 "parse.y" { error ("ISO C++ forbids an empty condition for `%s'", cond_stmt_keyword); yyval.ttype = integer_zero_node; ; break;} case 206: ! #line 1168 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 207: ! #line 1173 "parse.y" { error ("ISO C++ forbids an empty condition for `%s'", cond_stmt_keyword); yyval.ttype = integer_zero_node; ; break;} case 208: ! #line 1177 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 209: ! #line 1182 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 211: ! #line 1185 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 212: ! #line 1190 "parse.y" { { tree d; for (d = getdecls (); d; d = TREE_CHAIN (d)) --- 5613,5671 ---- ; break;} case 198: ! #line 1149 "parse.y" { yyval.code = NEGATE_EXPR; ; break;} case 199: ! #line 1151 "parse.y" { yyval.code = CONVERT_EXPR; ; break;} case 200: ! #line 1153 "parse.y" { yyval.code = PREINCREMENT_EXPR; ; break;} case 201: ! #line 1155 "parse.y" { yyval.code = PREDECREMENT_EXPR; ; break;} case 202: ! #line 1157 "parse.y" { yyval.code = TRUTH_NOT_EXPR; ; break;} case 203: ! #line 1162 "parse.y" { yyval.ttype = build_x_compound_expr (yyval.ttype); ; break;} case 205: ! #line 1168 "parse.y" { error ("ISO C++ forbids an empty condition for `%s'", cond_stmt_keyword); yyval.ttype = integer_zero_node; ; break;} case 206: ! #line 1172 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 207: ! #line 1177 "parse.y" { error ("ISO C++ forbids an empty condition for `%s'", cond_stmt_keyword); yyval.ttype = integer_zero_node; ; break;} case 208: ! #line 1181 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 209: ! #line 1186 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 211: ! #line 1189 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 212: ! #line 1194 "parse.y" { { tree d; for (d = getdecls (); d; d = TREE_CHAIN (d)) *************** case 212: *** 5717,5723 **** ; break;} case 213: ! #line 1205 "parse.y" { parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype); yyval.ttype = convert_from_reference (yyvsp[-1].ttype); --- 5682,5688 ---- ; break;} case 213: ! #line 1209 "parse.y" { parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype); yyval.ttype = convert_from_reference (yyvsp[-1].ttype); *************** case 213: *** 5726,5890 **** ; break;} case 219: ! #line 1223 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 220: ! #line 1226 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ; break;} case 221: ! #line 1229 "parse.y" { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 222: ! #line 1231 "parse.y" { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ; break;} case 223: ! #line 1236 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 225: ! #line 1242 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 226: ! #line 1245 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} case 227: ! #line 1248 "parse.y" { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ; break;} case 228: ! #line 1250 "parse.y" { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 229: ! #line 1252 "parse.y" { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 230: ! #line 1254 "parse.y" { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 231: ! #line 1257 "parse.y" { yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ; break;} case 232: ! #line 1259 "parse.y" ! { yyval.ttype = finish_sizeof (yyvsp[0].ttype); ; break;} case 233: ! #line 1261 "parse.y" { yyval.ttype = finish_sizeof (groktypename (yyvsp[-1].ftype.t)); ! check_for_new_type ("sizeof", yyvsp[-1].ftype); ; break;} case 234: ! #line 1264 "parse.y" ! { yyval.ttype = finish_alignof (yyvsp[0].ttype); ; break;} case 235: ! #line 1266 "parse.y" { yyval.ttype = finish_alignof (groktypename (yyvsp[-1].ftype.t)); ! check_for_new_type ("alignof", yyvsp[-1].ftype); ; break;} case 236: ! #line 1272 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} case 237: ! #line 1275 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 238: ! #line 1278 "parse.y" { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} case 239: ! #line 1281 "parse.y" { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 240: ! #line 1285 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 241: ! #line 1289 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} case 242: ! #line 1292 "parse.y" { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 243: ! #line 1295 "parse.y" { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} case 244: ! #line 1299 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ; break;} case 245: ! #line 1301 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} case 246: ! #line 1305 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} case 247: ! #line 1309 "parse.y" { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ; break;} case 248: ! #line 1311 "parse.y" { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ; break;} case 249: ! #line 1316 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 250: ! #line 1318 "parse.y" { pedwarn ("old style placement syntax, use () instead"); yyval.ttype = yyvsp[-1].ttype; ; break;} case 251: ! #line 1324 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 252: ! #line 1326 "parse.y" { yyval.ttype = void_zero_node; ; break;} case 253: ! #line 1328 "parse.y" { error ("`%T' is not a valid expression", yyvsp[-1].ftype.t); yyval.ttype = error_mark_node; ; break;} case 254: ! #line 1338 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids initialization of new expression with `='"); --- 5691,5859 ---- ; break;} case 219: ! #line 1227 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 220: ! #line 1230 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ; break;} case 221: ! #line 1233 "parse.y" { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 222: ! #line 1235 "parse.y" { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ; break;} case 223: ! #line 1240 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 225: ! #line 1246 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 226: ! #line 1249 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} case 227: ! #line 1252 "parse.y" { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ; break;} case 228: ! #line 1254 "parse.y" { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 229: ! #line 1256 "parse.y" { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 230: ! #line 1258 "parse.y" { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 231: ! #line 1261 "parse.y" { yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ; break;} case 232: ! #line 1263 "parse.y" ! { yyval.ttype = finish_sizeof (yyvsp[0].ttype); ! skip_evaluation--; ; break;} case 233: ! #line 1266 "parse.y" { yyval.ttype = finish_sizeof (groktypename (yyvsp[-1].ftype.t)); ! check_for_new_type ("sizeof", yyvsp[-1].ftype); ! skip_evaluation--; ; break;} case 234: ! #line 1270 "parse.y" ! { yyval.ttype = finish_alignof (yyvsp[0].ttype); ! skip_evaluation--; ; break;} case 235: ! #line 1273 "parse.y" { yyval.ttype = finish_alignof (groktypename (yyvsp[-1].ftype.t)); ! check_for_new_type ("alignof", yyvsp[-1].ftype); ! skip_evaluation--; ; break;} case 236: ! #line 1280 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} case 237: ! #line 1283 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 238: ! #line 1286 "parse.y" { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} case 239: ! #line 1289 "parse.y" { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 240: ! #line 1293 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 241: ! #line 1297 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} case 242: ! #line 1300 "parse.y" { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 243: ! #line 1303 "parse.y" { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} case 244: ! #line 1307 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ; break;} case 245: ! #line 1309 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} case 246: ! #line 1313 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} case 247: ! #line 1317 "parse.y" { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ; break;} case 248: ! #line 1319 "parse.y" { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ; break;} case 249: ! #line 1324 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 250: ! #line 1326 "parse.y" { pedwarn ("old style placement syntax, use () instead"); yyval.ttype = yyvsp[-1].ttype; ; break;} case 251: ! #line 1332 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 252: ! #line 1334 "parse.y" { yyval.ttype = void_zero_node; ; break;} case 253: ! #line 1336 "parse.y" { error ("`%T' is not a valid expression", yyvsp[-1].ftype.t); yyval.ttype = error_mark_node; ; break;} case 254: ! #line 1346 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids initialization of new expression with `='"); *************** case 254: *** 5897,5919 **** ; break;} case 255: ! #line 1353 "parse.y" { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} case 256: ! #line 1357 "parse.y" { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} case 258: ! #line 1365 "parse.y" { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ; break;} case 259: ! #line 1367 "parse.y" { tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); --- 5866,5888 ---- ; break;} case 255: ! #line 1361 "parse.y" { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} case 256: ! #line 1365 "parse.y" { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} case 258: ! #line 1373 "parse.y" { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ; break;} case 259: ! #line 1375 "parse.y" { tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); *************** case 259: *** 5926,6165 **** ; break;} case 261: ! #line 1383 "parse.y" { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 262: ! #line 1385 "parse.y" { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; break;} case 263: ! #line 1387 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 264: ! #line 1389 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 265: ! #line 1391 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 266: ! #line 1393 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 267: ! #line 1395 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 268: ! #line 1397 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 269: ! #line 1399 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 270: ! #line 1401 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 271: ! #line 1403 "parse.y" { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 272: ! #line 1405 "parse.y" { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 273: ! #line 1407 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 274: ! #line 1409 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 275: ! #line 1411 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 276: ! #line 1413 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 277: ! #line 1415 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 278: ! #line 1417 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 279: ! #line 1419 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 280: ! #line 1421 "parse.y" { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 281: ! #line 1423 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); if (yyval.ttype != error_mark_node) C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} case 282: ! #line 1427 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 283: ! #line 1429 "parse.y" { yyval.ttype = build_throw (NULL_TREE); ; break;} case 284: ! #line 1431 "parse.y" { yyval.ttype = build_throw (yyvsp[0].ttype); ; break;} case 286: ! #line 1438 "parse.y" { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 287: ! #line 1440 "parse.y" { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; break;} case 288: ! #line 1442 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 289: ! #line 1444 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 290: ! #line 1446 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 291: ! #line 1448 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 292: ! #line 1450 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 293: ! #line 1452 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 294: ! #line 1454 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 295: ! #line 1456 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 296: ! #line 1458 "parse.y" { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 297: ! #line 1460 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 298: ! #line 1462 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 299: ! #line 1464 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 300: ! #line 1466 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 301: ! #line 1468 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 302: ! #line 1470 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 303: ! #line 1472 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 304: ! #line 1474 "parse.y" { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 305: ! #line 1476 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); if (yyval.ttype != error_mark_node) C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} case 306: ! #line 1480 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 307: ! #line 1482 "parse.y" { yyval.ttype = build_throw (NULL_TREE); ; break;} case 308: ! #line 1484 "parse.y" { yyval.ttype = build_throw (yyvsp[0].ttype); ; break;} case 309: ! #line 1489 "parse.y" { yyval.ttype = build_nt (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 310: ! #line 1491 "parse.y" { yyval.ttype = build_nt (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 316: ! #line 1500 "parse.y" { /* If lastiddecl is a TREE_LIST, it's a baselink, which means that we're in an expression like S::f, so don't do_identifier; we only do that for unqualified identifiers. */ if (!lastiddecl || TREE_CODE (lastiddecl) != TREE_LIST) ! yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE); else yyval.ttype = yyvsp[-1].ttype; ; break;} case 317: ! #line 1514 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 318: ! #line 1516 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 319: ! #line 1521 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 320: ! #line 1523 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 321: ! #line 1526 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 326: ! #line 1538 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ --- 5895,6134 ---- ; break;} case 261: ! #line 1391 "parse.y" { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 262: ! #line 1393 "parse.y" { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; break;} case 263: ! #line 1395 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 264: ! #line 1397 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 265: ! #line 1399 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 266: ! #line 1401 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 267: ! #line 1403 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 268: ! #line 1405 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 269: ! #line 1407 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 270: ! #line 1409 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 271: ! #line 1411 "parse.y" { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 272: ! #line 1413 "parse.y" { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 273: ! #line 1415 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 274: ! #line 1417 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 275: ! #line 1419 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 276: ! #line 1421 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 277: ! #line 1423 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 278: ! #line 1425 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 279: ! #line 1427 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 280: ! #line 1429 "parse.y" { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 281: ! #line 1431 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); if (yyval.ttype != error_mark_node) C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} case 282: ! #line 1435 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 283: ! #line 1437 "parse.y" { yyval.ttype = build_throw (NULL_TREE); ; break;} case 284: ! #line 1439 "parse.y" { yyval.ttype = build_throw (yyvsp[0].ttype); ; break;} case 286: ! #line 1446 "parse.y" { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 287: ! #line 1448 "parse.y" { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; break;} case 288: ! #line 1450 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 289: ! #line 1452 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 290: ! #line 1454 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 291: ! #line 1456 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 292: ! #line 1458 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 293: ! #line 1460 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 294: ! #line 1462 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 295: ! #line 1464 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 296: ! #line 1466 "parse.y" { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 297: ! #line 1468 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 298: ! #line 1470 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 299: ! #line 1472 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 300: ! #line 1474 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 301: ! #line 1476 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 302: ! #line 1478 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 303: ! #line 1480 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 304: ! #line 1482 "parse.y" { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 305: ! #line 1484 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); if (yyval.ttype != error_mark_node) C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} case 306: ! #line 1488 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 307: ! #line 1490 "parse.y" { yyval.ttype = build_throw (NULL_TREE); ; break;} case 308: ! #line 1492 "parse.y" { yyval.ttype = build_throw (yyvsp[0].ttype); ; break;} case 309: ! #line 1497 "parse.y" { yyval.ttype = build_nt (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 310: ! #line 1499 "parse.y" { yyval.ttype = build_nt (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 316: ! #line 1508 "parse.y" { /* If lastiddecl is a TREE_LIST, it's a baselink, which means that we're in an expression like S::f, so don't do_identifier; we only do that for unqualified identifiers. */ if (!lastiddecl || TREE_CODE (lastiddecl) != TREE_LIST) ! yyval.ttype = do_identifier (yyvsp[-1].ttype, 3, NULL_TREE); else yyval.ttype = yyvsp[-1].ttype; ; break;} case 317: ! #line 1522 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 318: ! #line 1524 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 319: ! #line 1529 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 320: ! #line 1531 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 321: ! #line 1534 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 326: ! #line 1546 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ *************** case 326: *** 6167,6197 **** ; break;} case 328: ! #line 1548 "parse.y" { yyval.ttype = build_nt (INDIRECT_REF, yyvsp[0].ttype); ; break;} case 329: ! #line 1550 "parse.y" { yyval.ttype = build_nt (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 330: ! #line 1552 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 331: ! #line 1557 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 332: ! #line 1559 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 336: ! #line 1569 "parse.y" { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ; break;} case 337: ! #line 1574 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR) yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0)); --- 6136,6166 ---- ; break;} case 328: ! #line 1556 "parse.y" { yyval.ttype = build_nt (INDIRECT_REF, yyvsp[0].ttype); ; break;} case 329: ! #line 1558 "parse.y" { yyval.ttype = build_nt (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 330: ! #line 1560 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 331: ! #line 1565 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 332: ! #line 1567 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 336: ! #line 1577 "parse.y" { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ; break;} case 337: ! #line 1582 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR) yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0)); *************** case 337: *** 6200,6206 **** ; break;} case 340: ! #line 1583 "parse.y" { yyval.ttype = combine_strings (yyval.ttype); /* combine_strings doesn't set up TYPE_MAIN_VARIANT of --- 6169,6175 ---- ; break;} case 340: ! #line 1591 "parse.y" { yyval.ttype = combine_strings (yyval.ttype); /* combine_strings doesn't set up TYPE_MAIN_VARIANT of *************** case 340: *** 6212,6218 **** ; break;} case 341: ! #line 1593 "parse.y" { yyval.ttype = fname_decl (C_RID_CODE (yyval.ttype), yyval.ttype); if (processing_template_decl) --- 6181,6187 ---- ; break;} case 341: ! #line 1601 "parse.y" { yyval.ttype = fname_decl (C_RID_CODE (yyval.ttype), yyval.ttype); if (processing_template_decl) *************** case 341: *** 6220,6239 **** ; break;} case 342: ! #line 1599 "parse.y" { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ; break;} case 343: ! #line 1601 "parse.y" { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype); yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ; break;} case 344: ! #line 1604 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 345: ! #line 1606 "parse.y" { tree scope = current_scope (); if (!scope || TREE_CODE (scope) != FUNCTION_DECL) { --- 6189,6208 ---- ; break;} case 342: ! #line 1607 "parse.y" { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ; break;} case 343: ! #line 1609 "parse.y" { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype); yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ; break;} case 344: ! #line 1612 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 345: ! #line 1614 "parse.y" { tree scope = current_scope (); if (!scope || TREE_CODE (scope) != FUNCTION_DECL) { *************** case 345: *** 6246,6293 **** ; break;} case 346: ! #line 1617 "parse.y" { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype); ; break;} case 347: ! #line 1622 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ; break;} case 348: ! #line 1624 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ; break;} case 349: ! #line 1626 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ; break;} case 350: ! #line 1628 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ; break;} case 351: ! #line 1630 "parse.y" { yyval.ttype = build_x_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ftype.t)); check_for_new_type ("__builtin_va_arg", yyvsp[-1].ftype); ; break;} case 352: ! #line 1633 "parse.y" { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ; break;} case 353: ! #line 1635 "parse.y" { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ; break;} case 354: ! #line 1637 "parse.y" { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ; break;} case 355: ! #line 1640 "parse.y" { yyval.ttype = finish_this_expr (); ; break;} case 356: ! #line 1642 "parse.y" { /* This is a C cast in C++'s `functional' notation using the "implicit int" extension so that: --- 6215,6262 ---- ; break;} case 346: ! #line 1625 "parse.y" { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype); ; break;} case 347: ! #line 1630 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ; break;} case 348: ! #line 1632 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ; break;} case 349: ! #line 1634 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ; break;} case 350: ! #line 1636 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ; break;} case 351: ! #line 1638 "parse.y" { yyval.ttype = build_x_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ftype.t)); check_for_new_type ("__builtin_va_arg", yyvsp[-1].ftype); ; break;} case 352: ! #line 1641 "parse.y" { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ; break;} case 353: ! #line 1643 "parse.y" { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ; break;} case 354: ! #line 1645 "parse.y" { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ; break;} case 355: ! #line 1648 "parse.y" { yyval.ttype = finish_this_expr (); ; break;} case 356: ! #line 1650 "parse.y" { /* This is a C cast in C++'s `functional' notation using the "implicit int" extension so that: *************** case 356: *** 6300,6348 **** ; break;} case 358: ! #line 1654 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("dynamic_cast", yyvsp[-4].ftype); yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ; break;} case 359: ! #line 1658 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("static_cast", yyvsp[-4].ftype); yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ; break;} case 360: ! #line 1662 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype); yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ; break;} case 361: ! #line 1666 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("const_cast", yyvsp[-4].ftype); yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ; break;} case 362: ! #line 1670 "parse.y" { yyval.ttype = build_typeid (yyvsp[-1].ttype); ; break;} case 363: ! #line 1672 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); check_for_new_type ("typeid", yyvsp[-1].ftype); yyval.ttype = get_typeid (type); ; break;} case 364: ! #line 1676 "parse.y" { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ; break;} case 365: ! #line 1678 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 366: ! #line 1680 "parse.y" { got_scope = NULL_TREE; if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) --- 6269,6317 ---- ; break;} case 358: ! #line 1662 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("dynamic_cast", yyvsp[-4].ftype); yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ; break;} case 359: ! #line 1666 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("static_cast", yyvsp[-4].ftype); yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ; break;} case 360: ! #line 1670 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype); yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ; break;} case 361: ! #line 1674 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("const_cast", yyvsp[-4].ftype); yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ; break;} case 362: ! #line 1678 "parse.y" { yyval.ttype = build_typeid (yyvsp[-1].ttype); ; break;} case 363: ! #line 1680 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); check_for_new_type ("typeid", yyvsp[-1].ftype); yyval.ttype = get_typeid (type); ; break;} case 364: ! #line 1684 "parse.y" { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ; break;} case 365: ! #line 1686 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 366: ! #line 1688 "parse.y" { got_scope = NULL_TREE; if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) *************** case 366: *** 6352,6614 **** ; break;} case 367: ! #line 1688 "parse.y" { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ; break;} case 368: ! #line 1690 "parse.y" { yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 369: ! #line 1692 "parse.y" { yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ; break;} case 370: ! #line 1694 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 371: ! #line 1698 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 372: ! #line 1700 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 373: ! #line 1702 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 374: ! #line 1704 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, yyvsp[0].ttype); else yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ; break;} case 375: ! #line 1709 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 376: ! #line 1711 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 377: ! #line 1713 "parse.y" { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 378: ! #line 1715 "parse.y" { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 379: ! #line 1718 "parse.y" { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 380: ! #line 1720 "parse.y" { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 381: ! #line 1722 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 382: ! #line 1767 "parse.y" { yyval.itype = 0; ; break;} case 383: ! #line 1769 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 384: ! #line 1774 "parse.y" { yyval.itype = 0; ; break;} case 385: ! #line 1776 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 386: ! #line 1781 "parse.y" { yyval.ttype = boolean_true_node; ; break;} case 387: ! #line 1783 "parse.y" { yyval.ttype = boolean_false_node; ; break;} case 389: ! #line 1790 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 390: ! #line 1795 "parse.y" { if (DECL_CONSTRUCTOR_P (current_function_decl)) finish_mem_initializers (NULL_TREE); ; break;} case 391: ! #line 1803 "parse.y" { got_object = TREE_TYPE (yyval.ttype); ; break;} case 392: ! #line 1805 "parse.y" { yyval.ttype = build_x_arrow (yyval.ttype); got_object = TREE_TYPE (yyval.ttype); ; break;} case 393: ! #line 1813 "parse.y" { if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t))) note_got_semicolon (yyvsp[-2].ftype.t); ; break;} case 394: ! #line 1818 "parse.y" { note_list_got_semicolon (yyvsp[-2].ftype.t); ; break;} case 395: ! #line 1822 "parse.y" {; break;} case 396: ! #line 1824 "parse.y" { shadow_tag (yyvsp[-1].ftype.t); note_list_got_semicolon (yyvsp[-1].ftype.t); ; break;} case 397: ! #line 1829 "parse.y" { warning ("empty declaration"); ; break;} case 398: ! #line 1831 "parse.y" { pedantic = yyvsp[-1].itype; ; break;} case 401: ! #line 1845 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (), NULL_TREE, NULL_TREE); ; break;} case 402: ! #line 1848 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE, NULL_TREE); ; break;} case 403: ! #line 1855 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 404: ! #line 1858 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 405: ! #line 1861 "parse.y" { yyval.ftype.t = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 406: ! #line 1865 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 407: ! #line 1868 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 408: ! #line 1879 "parse.y" { yyval.ftype.lookups = type_lookups; ; break;} case 409: ! #line 1881 "parse.y" { yyval.ftype.lookups = type_lookups; ; break;} case 410: ! #line 1886 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 411: ! #line 1889 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 412: ! #line 1892 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 413: ! #line 1895 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 414: ! #line 1898 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 415: ! #line 1901 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ftype.t))); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 416: ! #line 1908 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyval.ttype)); yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 417: ! #line 1913 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ; break;} case 418: ! #line 1915 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 419: ! #line 1937 "parse.y" { yyval.ftype.lookups = NULL_TREE; TREE_STATIC (yyval.ftype.t) = 1; ; break;} case 420: ! #line 1939 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; break;} case 421: ! #line 1944 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); TREE_STATIC (yyval.ftype.t) = 1; ; break;} case 422: ! #line 1949 "parse.y" { if (extra_warnings && TREE_STATIC (yyval.ftype.t)) warning ("`%s' is not at beginning of declaration", --- 6321,6583 ---- ; break;} case 367: ! #line 1696 "parse.y" { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ; break;} case 368: ! #line 1698 "parse.y" { yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 369: ! #line 1700 "parse.y" { yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ; break;} case 370: ! #line 1702 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 371: ! #line 1706 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 372: ! #line 1708 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 373: ! #line 1710 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 374: ! #line 1712 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, yyvsp[0].ttype); else yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ; break;} case 375: ! #line 1717 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 376: ! #line 1719 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 377: ! #line 1721 "parse.y" { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 378: ! #line 1723 "parse.y" { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 379: ! #line 1726 "parse.y" { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 380: ! #line 1728 "parse.y" { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 381: ! #line 1730 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 382: ! #line 1775 "parse.y" { yyval.itype = 0; ; break;} case 383: ! #line 1777 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 384: ! #line 1782 "parse.y" { yyval.itype = 0; ; break;} case 385: ! #line 1784 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 386: ! #line 1789 "parse.y" { yyval.ttype = boolean_true_node; ; break;} case 387: ! #line 1791 "parse.y" { yyval.ttype = boolean_false_node; ; break;} case 389: ! #line 1798 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 390: ! #line 1803 "parse.y" { if (DECL_CONSTRUCTOR_P (current_function_decl)) finish_mem_initializers (NULL_TREE); ; break;} case 391: ! #line 1811 "parse.y" { got_object = TREE_TYPE (yyval.ttype); ; break;} case 392: ! #line 1813 "parse.y" { yyval.ttype = build_x_arrow (yyval.ttype); got_object = TREE_TYPE (yyval.ttype); ; break;} case 393: ! #line 1821 "parse.y" { if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t))) note_got_semicolon (yyvsp[-2].ftype.t); ; break;} case 394: ! #line 1826 "parse.y" { note_list_got_semicolon (yyvsp[-2].ftype.t); ; break;} case 395: ! #line 1830 "parse.y" {; break;} case 396: ! #line 1832 "parse.y" { shadow_tag (yyvsp[-1].ftype.t); note_list_got_semicolon (yyvsp[-1].ftype.t); ; break;} case 397: ! #line 1837 "parse.y" { warning ("empty declaration"); ; break;} case 398: ! #line 1839 "parse.y" { pedantic = yyvsp[-1].itype; ; break;} case 401: ! #line 1853 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (), NULL_TREE, NULL_TREE); ; break;} case 402: ! #line 1856 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE, NULL_TREE); ; break;} case 403: ! #line 1863 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 404: ! #line 1866 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 405: ! #line 1869 "parse.y" { yyval.ftype.t = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 406: ! #line 1873 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 407: ! #line 1876 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 408: ! #line 1887 "parse.y" { yyval.ftype.lookups = type_lookups; ; break;} case 409: ! #line 1889 "parse.y" { yyval.ftype.lookups = type_lookups; ; break;} case 410: ! #line 1894 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 411: ! #line 1897 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 412: ! #line 1900 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 413: ! #line 1903 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 414: ! #line 1906 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 415: ! #line 1909 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ftype.t))); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 416: ! #line 1916 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyval.ttype)); yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 417: ! #line 1921 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ; break;} case 418: ! #line 1923 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 419: ! #line 1945 "parse.y" { yyval.ftype.lookups = NULL_TREE; TREE_STATIC (yyval.ftype.t) = 1; ; break;} case 420: ! #line 1947 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; break;} case 421: ! #line 1952 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); TREE_STATIC (yyval.ftype.t) = 1; ; break;} case 422: ! #line 1957 "parse.y" { if (extra_warnings && TREE_STATIC (yyval.ftype.t)) warning ("`%s' is not at beginning of declaration", *************** case 422: *** 6618,6686 **** ; break;} case 423: ! #line 1957 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); ; break;} case 424: ! #line 1968 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 425: ! #line 1971 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 426: ! #line 1974 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 427: ! #line 1977 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 428: ! #line 1983 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 429: ! #line 1985 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ; break;} case 430: ! #line 1987 "parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 431: ! #line 1989 "parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} case 432: ! #line 1998 "parse.y" ! { yyval.ftype.lookups = NULL_TREE; ; break;} case 433: ! #line 2000 "parse.y" ! { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; break;} case 434: ! #line 2002 "parse.y" ! { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; break;} case 435: ! #line 2004 "parse.y" ! { yyval.ftype.t = finish_typeof (yyvsp[-1].ttype); ! yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; break;} case 436: ! #line 2007 "parse.y" ! { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t); ! yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; break;} case 437: ! #line 2010 "parse.y" { tree type = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; --- 6587,6669 ---- ; break;} case 423: ! #line 1965 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); ; break;} case 424: ! #line 1976 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 425: ! #line 1979 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 426: ! #line 1982 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 427: ! #line 1985 "parse.y" { yyval.ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 428: ! #line 1991 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 429: ! #line 1993 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ; break;} case 430: ! #line 1995 "parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 431: ! #line 1997 "parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} case 432: ! #line 2001 "parse.y" ! { skip_evaluation++; ; break;} case 433: ! #line 2005 "parse.y" ! { skip_evaluation++; ; break;} case 434: ! #line 2009 "parse.y" ! { skip_evaluation++; ; break;} case 435: ! #line 2018 "parse.y" ! { yyval.ftype.lookups = NULL_TREE; ; break;} case 436: ! #line 2020 "parse.y" ! { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; break;} case 437: ! #line 2022 "parse.y" ! { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ; ! break;} ! case 438: ! #line 2024 "parse.y" ! { yyval.ftype.t = finish_typeof (yyvsp[-1].ttype); ! yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ! skip_evaluation--; ; ! break;} ! case 439: ! #line 2028 "parse.y" ! { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t); ! yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ! skip_evaluation--; ; ! break;} ! case 440: ! #line 2032 "parse.y" { tree type = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; *************** case 437: *** 6696,6703 **** } ; break;} ! case 438: ! #line 2025 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; --- 6679,6686 ---- } ; break;} ! case 441: ! #line 2047 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; *************** case 438: *** 6713,6985 **** } ; break;} ! case 439: ! #line 2045 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} ! case 440: ! #line 2047 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} ! case 443: ! #line 2054 "parse.y" { check_multiple_declarators (); ; break;} ! case 445: ! #line 2060 "parse.y" { check_multiple_declarators (); ; break;} ! case 447: ! #line 2066 "parse.y" { check_multiple_declarators (); ; break;} ! case 448: ! #line 2071 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 449: ! #line 2073 "parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 450: ! #line 2078 "parse.y" { yyval.ttype = parse_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ; break;} ! case 451: ! #line 2081 "parse.y" { parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 452: ! #line 2083 "parse.y" { yyval.ttype = parse_decl (yyvsp[-2].ttype, yyvsp[0].ttype, 0); parse_end_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 453: ! #line 2097 "parse.y" { yyval.ttype = parse_decl0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, 1); ; break;} ! case 454: ! #line 2102 "parse.y" { parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 455: ! #line 2104 "parse.y" { tree d = parse_decl0 (yyvsp[-2].ttype, yyvsp[-3].ftype.t, yyvsp[-3].ftype.lookups, yyvsp[0].ttype, 0); parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 456: ! #line 2111 "parse.y" {; break;} ! case 457: ! #line 2116 "parse.y" {; break;} ! case 458: ! #line 2121 "parse.y" { /* Set things up as initdcl0_innards expects. */ yyval.ttype = yyvsp[0].ttype; yyvsp[0].ttype = yyvsp[-1].ttype; yyvsp[-1].ftype.t = NULL_TREE; yyvsp[-1].ftype.lookups = NULL_TREE; ; break;} ! case 459: ! #line 2127 "parse.y" {; break;} ! case 460: ! #line 2129 "parse.y" { tree d = parse_decl0 (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, yyvsp[0].ttype, 0); parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 461: ! #line 2137 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 462: ! #line 2139 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 463: ! #line 2144 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 464: ! #line 2146 "parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 465: ! #line 2151 "parse.y" { yyval.ttype = yyvsp[-2].ttype; ; break;} ! case 466: ! #line 2156 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 467: ! #line 2158 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 468: ! #line 2163 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 469: ! #line 2165 "parse.y" { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} ! case 470: ! #line 2167 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} ! case 471: ! #line 2169 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; break;} ! case 472: ! #line 2171 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 477: ! #line 2187 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 478: ! #line 2189 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} ! case 479: ! #line 2194 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 480: ! #line 2196 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 482: ! #line 2205 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} ! case 483: ! #line 2208 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} ! case 484: ! #line 2211 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} ! case 485: ! #line 2214 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 486: ! #line 2221 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} ! case 487: ! #line 2223 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} ! case 488: ! #line 2226 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 489: ! #line 2228 "parse.y" { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ; break;} ! case 490: ! #line 2230 "parse.y" { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; break;} ! case 491: ! #line 2235 "parse.y" { expand_body (finish_function (2)); process_next_inline (yyvsp[-2].pi); ; break;} ! case 492: ! #line 2240 "parse.y" { expand_body (finish_function (2)); process_next_inline (yyvsp[-2].pi); ; break;} ! case 493: ! #line 2245 "parse.y" { finish_function (2); process_next_inline (yyvsp[-2].pi); ; break;} ! case 496: ! #line 2259 "parse.y" { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 497: ! #line 2261 "parse.y" { replace_defarg (yyvsp[-2].ttype, error_mark_node); ; break;} ! case 499: ! #line 2267 "parse.y" { do_pending_defargs (); ; break;} ! case 500: ! #line 2269 "parse.y" { do_pending_defargs (); ; break;} ! case 501: ! #line 2274 "parse.y" { yyval.ttype = current_enum_type; current_enum_type = start_enum (yyvsp[-1].ttype); ; break;} ! case 502: ! #line 2277 "parse.y" { yyval.ftype.t = current_enum_type; finish_enum (current_enum_type); yyval.ftype.new_type_flag = 1; current_enum_type = yyvsp[-2].ttype; check_for_missing_semicolon (yyval.ftype.t); ; break;} ! case 503: ! #line 2283 "parse.y" { yyval.ttype = current_enum_type; current_enum_type = start_enum (make_anon_name ()); ; break;} ! case 504: ! #line 2286 "parse.y" { yyval.ftype.t = current_enum_type; finish_enum (current_enum_type); yyval.ftype.new_type_flag = 1; current_enum_type = yyvsp[-2].ttype; check_for_missing_semicolon (yyval.ftype.t); ; break;} ! case 505: ! #line 2292 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); yyval.ftype.new_type_flag = 0; ; break;} ! case 506: ! #line 2295 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); yyval.ftype.new_type_flag = 0; ; break;} ! case 507: ! #line 2298 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; if (!processing_template_decl) pedwarn ("using `typename' outside of template"); ; break;} ! case 508: ! #line 2304 "parse.y" { if (yyvsp[-1].ttype && yyvsp[-2].ftype.t != error_mark_node) { --- 6696,6968 ---- } ; break;} ! case 442: ! #line 2067 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} ! case 443: ! #line 2069 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} ! case 446: ! #line 2076 "parse.y" { check_multiple_declarators (); ; break;} ! case 448: ! #line 2082 "parse.y" { check_multiple_declarators (); ; break;} ! case 450: ! #line 2088 "parse.y" { check_multiple_declarators (); ; break;} ! case 451: ! #line 2093 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 452: ! #line 2095 "parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 453: ! #line 2100 "parse.y" { yyval.ttype = parse_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ; break;} ! case 454: ! #line 2103 "parse.y" { parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 455: ! #line 2105 "parse.y" { yyval.ttype = parse_decl (yyvsp[-2].ttype, yyvsp[0].ttype, 0); parse_end_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 456: ! #line 2119 "parse.y" { yyval.ttype = parse_decl0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, 1); ; break;} ! case 457: ! #line 2124 "parse.y" { parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 458: ! #line 2126 "parse.y" { tree d = parse_decl0 (yyvsp[-2].ttype, yyvsp[-3].ftype.t, yyvsp[-3].ftype.lookups, yyvsp[0].ttype, 0); parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 459: ! #line 2133 "parse.y" {; break;} ! case 460: ! #line 2138 "parse.y" {; break;} ! case 461: ! #line 2143 "parse.y" { /* Set things up as initdcl0_innards expects. */ yyval.ttype = yyvsp[0].ttype; yyvsp[0].ttype = yyvsp[-1].ttype; yyvsp[-1].ftype.t = NULL_TREE; yyvsp[-1].ftype.lookups = NULL_TREE; ; break;} ! case 462: ! #line 2149 "parse.y" {; break;} ! case 463: ! #line 2151 "parse.y" { tree d = parse_decl0 (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, yyvsp[0].ttype, 0); parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 464: ! #line 2159 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 465: ! #line 2161 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 466: ! #line 2166 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 467: ! #line 2168 "parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 468: ! #line 2173 "parse.y" { yyval.ttype = yyvsp[-2].ttype; ; break;} ! case 469: ! #line 2178 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 470: ! #line 2180 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 471: ! #line 2185 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 472: ! #line 2187 "parse.y" { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} ! case 473: ! #line 2189 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} ! case 474: ! #line 2191 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; break;} ! case 475: ! #line 2193 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 480: ! #line 2209 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 481: ! #line 2211 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} ! case 482: ! #line 2216 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 483: ! #line 2218 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 485: ! #line 2227 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} ! case 486: ! #line 2230 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} ! case 487: ! #line 2233 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} ! case 488: ! #line 2236 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 489: ! #line 2243 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} ! case 490: ! #line 2245 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} ! case 491: ! #line 2248 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 492: ! #line 2250 "parse.y" { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ; break;} ! case 493: ! #line 2252 "parse.y" { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; break;} ! case 494: ! #line 2257 "parse.y" { expand_body (finish_function (2)); process_next_inline (yyvsp[-2].pi); ; break;} ! case 495: ! #line 2262 "parse.y" { expand_body (finish_function (2)); process_next_inline (yyvsp[-2].pi); ; break;} ! case 496: ! #line 2267 "parse.y" { finish_function (2); process_next_inline (yyvsp[-2].pi); ; break;} ! case 499: ! #line 2281 "parse.y" { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 500: ! #line 2283 "parse.y" { replace_defarg (yyvsp[-2].ttype, error_mark_node); ; break;} ! case 502: ! #line 2289 "parse.y" { do_pending_defargs (); ; break;} ! case 503: ! #line 2291 "parse.y" { do_pending_defargs (); ; break;} ! case 504: ! #line 2296 "parse.y" { yyval.ttype = current_enum_type; current_enum_type = start_enum (yyvsp[-1].ttype); ; break;} ! case 505: ! #line 2299 "parse.y" { yyval.ftype.t = current_enum_type; finish_enum (current_enum_type); yyval.ftype.new_type_flag = 1; current_enum_type = yyvsp[-2].ttype; check_for_missing_semicolon (yyval.ftype.t); ; break;} ! case 506: ! #line 2305 "parse.y" { yyval.ttype = current_enum_type; current_enum_type = start_enum (make_anon_name ()); ; break;} ! case 507: ! #line 2308 "parse.y" { yyval.ftype.t = current_enum_type; finish_enum (current_enum_type); yyval.ftype.new_type_flag = 1; current_enum_type = yyvsp[-2].ttype; check_for_missing_semicolon (yyval.ftype.t); ; break;} ! case 508: ! #line 2314 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); yyval.ftype.new_type_flag = 0; ; break;} ! case 509: ! #line 2317 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); yyval.ftype.new_type_flag = 0; ; break;} ! case 510: ! #line 2320 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; if (!processing_template_decl) pedwarn ("using `typename' outside of template"); ; break;} ! case 511: ! #line 2326 "parse.y" { if (yyvsp[-1].ttype && yyvsp[-2].ftype.t != error_mark_node) { *************** case 508: *** 6997,7004 **** check_class_key (current_aggr, yyvsp[-2].ftype.t); current_aggr = NULL_TREE; ; break;} ! case 509: ! #line 2321 "parse.y" { int semi; tree t; --- 6980,6987 ---- check_class_key (current_aggr, yyvsp[-2].ftype.t); current_aggr = NULL_TREE; ; break;} ! case 512: ! #line 2343 "parse.y" { int semi; tree t; *************** case 509: *** 7017,7144 **** ? class_type_node : record_type_node; ; break;} ! case 510: ! #line 2339 "parse.y" { done_pending_defargs (); begin_inline_definitions (); ; break;} ! case 511: ! #line 2344 "parse.y" { finish_inline_definitions (); yyval.ftype.t = yyvsp[-3].ttype; yyval.ftype.new_type_flag = 1; ; break;} ! case 512: ! #line 2350 "parse.y" { yyval.ftype.t = TREE_TYPE (yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; check_class_key (current_aggr, yyval.ftype.t); ; break;} ! case 516: ! #line 2365 "parse.y" { if (pedantic && !in_system_header) pedwarn ("comma at end of enumerator list"); ; break;} ! case 518: ! #line 2372 "parse.y" { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} ! case 519: ! #line 2374 "parse.y" { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} ! case 520: ! #line 2376 "parse.y" { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} ! case 521: ! #line 2378 "parse.y" { error ("no body nor ';' separates two class, struct or union declarations"); ; break;} ! case 522: ! #line 2380 "parse.y" { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 523: ! #line 2385 "parse.y" { current_aggr = yyvsp[-1].ttype; yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 524: ! #line 2390 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 525: ! #line 2395 "parse.y" { current_aggr = yyvsp[-3].ttype; yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 526: ! #line 2400 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = build_tree_list (global_namespace, yyvsp[0].ttype); ; break;} ! case 527: ! #line 2408 "parse.y" { current_aggr = yyvsp[-1].ttype; yyval.ttype = yyvsp[0].ttype; ; break;} ! case 528: ! #line 2413 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = yyvsp[0].ttype; ; break;} ! case 529: ! #line 2418 "parse.y" { current_aggr = yyvsp[-3].ttype; yyval.ttype = yyvsp[0].ttype; ; break;} ! case 530: ! #line 2426 "parse.y" { yyval.ftype.t = handle_class_head (current_aggr, TREE_PURPOSE (yyvsp[0].ttype), TREE_VALUE (yyvsp[0].ttype), 0, &yyval.ftype.new_type_flag); ; break;} ! case 531: ! #line 2432 "parse.y" { current_aggr = yyvsp[-1].ttype; yyval.ftype.t = TYPE_MAIN_DECL (xref_tag (current_aggr, yyvsp[0].ttype, 0)); yyval.ftype.new_type_flag = 1; ; break;} ! case 532: ! #line 2438 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} ! case 533: ! #line 2446 "parse.y" { yyungetc ('{', 1); yyval.ftype.t = handle_class_head (current_aggr, --- 7000,7127 ---- ? class_type_node : record_type_node; ; break;} ! case 513: ! #line 2361 "parse.y" { done_pending_defargs (); begin_inline_definitions (); ; break;} ! case 514: ! #line 2366 "parse.y" { finish_inline_definitions (); yyval.ftype.t = yyvsp[-3].ttype; yyval.ftype.new_type_flag = 1; ; break;} ! case 515: ! #line 2372 "parse.y" { yyval.ftype.t = TREE_TYPE (yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; check_class_key (current_aggr, yyval.ftype.t); ; break;} ! case 519: ! #line 2387 "parse.y" { if (pedantic && !in_system_header) pedwarn ("comma at end of enumerator list"); ; break;} ! case 521: ! #line 2394 "parse.y" { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} ! case 522: ! #line 2396 "parse.y" { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} ! case 523: ! #line 2398 "parse.y" { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} ! case 524: ! #line 2400 "parse.y" { error ("no body nor ';' separates two class, struct or union declarations"); ; break;} ! case 525: ! #line 2402 "parse.y" { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 526: ! #line 2407 "parse.y" { current_aggr = yyvsp[-1].ttype; yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 527: ! #line 2412 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 528: ! #line 2417 "parse.y" { current_aggr = yyvsp[-3].ttype; yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 529: ! #line 2422 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = build_tree_list (global_namespace, yyvsp[0].ttype); ; break;} ! case 530: ! #line 2430 "parse.y" { current_aggr = yyvsp[-1].ttype; yyval.ttype = yyvsp[0].ttype; ; break;} ! case 531: ! #line 2435 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = yyvsp[0].ttype; ; break;} ! case 532: ! #line 2440 "parse.y" { current_aggr = yyvsp[-3].ttype; yyval.ttype = yyvsp[0].ttype; ; break;} ! case 533: ! #line 2448 "parse.y" { yyval.ftype.t = handle_class_head (current_aggr, TREE_PURPOSE (yyvsp[0].ttype), TREE_VALUE (yyvsp[0].ttype), 0, &yyval.ftype.new_type_flag); ; break;} ! case 534: ! #line 2454 "parse.y" { current_aggr = yyvsp[-1].ttype; yyval.ftype.t = TYPE_MAIN_DECL (xref_tag (current_aggr, yyvsp[0].ttype, 0)); yyval.ftype.new_type_flag = 1; ; break;} ! case 535: ! #line 2460 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} ! case 536: ! #line 2468 "parse.y" { yyungetc ('{', 1); yyval.ftype.t = handle_class_head (current_aggr, *************** case 533: *** 7146,7153 **** 1, &yyval.ftype.new_type_flag); ; break;} ! case 534: ! #line 2453 "parse.y" { yyungetc (':', 1); yyval.ftype.t = handle_class_head (current_aggr, --- 7129,7136 ---- 1, &yyval.ftype.new_type_flag); ; break;} ! case 537: ! #line 2475 "parse.y" { yyungetc (':', 1); yyval.ftype.t = handle_class_head (current_aggr, *************** case 534: *** 7155,7162 **** 1, &yyval.ftype.new_type_flag); ; break;} ! case 535: ! #line 2460 "parse.y" { yyungetc ('{', 1); yyval.ftype.t = yyvsp[-1].ttype; --- 7138,7145 ---- 1, &yyval.ftype.new_type_flag); ; break;} ! case 538: ! #line 2482 "parse.y" { yyungetc ('{', 1); yyval.ftype.t = yyvsp[-1].ttype; *************** case 535: *** 7168,7175 **** = (current_aggr == class_type_node); ; break;} ! case 536: ! #line 2471 "parse.y" { yyungetc (':', 1); yyval.ftype.t = yyvsp[-1].ttype; --- 7151,7158 ---- = (current_aggr == class_type_node); ; break;} ! case 539: ! #line 2493 "parse.y" { yyungetc (':', 1); yyval.ftype.t = yyvsp[-1].ttype; *************** case 536: *** 7181,7188 **** = (current_aggr == class_type_node); ; break;} ! case 537: ! #line 2482 "parse.y" { yyungetc ('{', 1); current_aggr = yyvsp[-2].ttype; --- 7164,7171 ---- = (current_aggr == class_type_node); ; break;} ! case 540: ! #line 2504 "parse.y" { yyungetc ('{', 1); current_aggr = yyvsp[-2].ttype; *************** case 537: *** 7191,7198 **** 1, &yyval.ftype.new_type_flag); ; break;} ! case 538: ! #line 2490 "parse.y" { yyungetc (':', 1); current_aggr = yyvsp[-2].ttype; --- 7174,7181 ---- 1, &yyval.ftype.new_type_flag); ; break;} ! case 541: ! #line 2512 "parse.y" { yyungetc (':', 1); current_aggr = yyvsp[-2].ttype; *************** case 538: *** 7201,7208 **** 1, &yyval.ftype.new_type_flag); ; break;} ! case 539: ! #line 2498 "parse.y" { current_aggr = yyvsp[-1].ttype; yyval.ftype.t = TYPE_MAIN_DECL (xref_tag (yyvsp[-1].ttype, make_anon_name (), 0)); --- 7184,7191 ---- 1, &yyval.ftype.new_type_flag); ; break;} ! case 542: ! #line 2520 "parse.y" { current_aggr = yyvsp[-1].ttype; yyval.ftype.t = TYPE_MAIN_DECL (xref_tag (yyvsp[-1].ttype, make_anon_name (), 0)); *************** case 539: *** 7210,7257 **** yyungetc ('{', 1); ; break;} ! case 540: ! #line 2508 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 541: ! #line 2510 "parse.y" { error ("no bases given following `:'"); yyval.ttype = NULL_TREE; ; break;} ! case 542: ! #line 2513 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 544: ! #line 2519 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} ! case 545: ! #line 2524 "parse.y" { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype); ; break;} ! case 546: ! #line 2526 "parse.y" { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 547: ! #line 2531 "parse.y" { if (!TYPE_P (yyval.ttype)) yyval.ttype = error_mark_node; ; break;} ! case 548: ! #line 2534 "parse.y" { yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} ! case 550: ! #line 2540 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) error ("`%D' access", yyvsp[-1].ttype); yyval.ttype = access_default_virtual_node; ; break;} ! case 551: ! #line 2544 "parse.y" { if (yyvsp[-2].ttype != access_default_virtual_node) error ("multiple access specifiers"); --- 7193,7240 ---- yyungetc ('{', 1); ; break;} ! case 543: ! #line 2530 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 544: ! #line 2532 "parse.y" { error ("no bases given following `:'"); yyval.ttype = NULL_TREE; ; break;} ! case 545: ! #line 2535 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 547: ! #line 2541 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} ! case 548: ! #line 2546 "parse.y" { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype); ; break;} ! case 549: ! #line 2548 "parse.y" { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 550: ! #line 2553 "parse.y" { if (!TYPE_P (yyval.ttype)) yyval.ttype = error_mark_node; ; break;} ! case 551: ! #line 2556 "parse.y" { yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} ! case 553: ! #line 2562 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) error ("`%D' access", yyvsp[-1].ttype); yyval.ttype = access_default_virtual_node; ; break;} ! case 554: ! #line 2566 "parse.y" { if (yyvsp[-2].ttype != access_default_virtual_node) error ("multiple access specifiers"); *************** case 551: *** 7263,7270 **** yyval.ttype = access_private_virtual_node; ; break;} ! case 552: ! #line 2555 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) error ("`%D' access", yyvsp[-1].ttype); else if (yyval.ttype == access_public_node) --- 7246,7253 ---- yyval.ttype = access_private_virtual_node; ; break;} ! case 555: ! #line 2577 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) error ("`%D' access", yyvsp[-1].ttype); else if (yyval.ttype == access_public_node) *************** case 552: *** 7277,7336 **** error ("multiple `virtual' specifiers"); ; break;} ! case 557: ! #line 2576 "parse.y" { current_access_specifier = yyvsp[-1].ttype; ; break;} ! case 558: ! #line 2585 "parse.y" { finish_member_declaration (yyvsp[0].ttype); current_aggr = NULL_TREE; reset_type_access_control (); ; break;} ! case 559: ! #line 2591 "parse.y" { finish_member_declaration (yyvsp[0].ttype); current_aggr = NULL_TREE; reset_type_access_control (); ; break;} ! case 561: ! #line 2601 "parse.y" { error ("missing ';' before right brace"); yyungetc ('}', 0); ; break;} ! case 562: ! #line 2606 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} ! case 563: ! #line 2608 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} ! case 564: ! #line 2610 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} ! case 565: ! #line 2612 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} ! case 566: ! #line 2614 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 567: ! #line 2616 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} ! case 568: ! #line 2619 "parse.y" { if (yyvsp[0].ttype) yyval.ttype = finish_member_template_decl (yyvsp[0].ttype); --- 7260,7319 ---- error ("multiple `virtual' specifiers"); ; break;} ! case 560: ! #line 2598 "parse.y" { current_access_specifier = yyvsp[-1].ttype; ; break;} ! case 561: ! #line 2607 "parse.y" { finish_member_declaration (yyvsp[0].ttype); current_aggr = NULL_TREE; reset_type_access_control (); ; break;} ! case 562: ! #line 2613 "parse.y" { finish_member_declaration (yyvsp[0].ttype); current_aggr = NULL_TREE; reset_type_access_control (); ; break;} ! case 564: ! #line 2623 "parse.y" { error ("missing ';' before right brace"); yyungetc ('}', 0); ; break;} ! case 565: ! #line 2628 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} ! case 566: ! #line 2630 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} ! case 567: ! #line 2632 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} ! case 568: ! #line 2634 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} ! case 569: ! #line 2636 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 570: ! #line 2638 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} ! case 571: ! #line 2641 "parse.y" { if (yyvsp[0].ttype) yyval.ttype = finish_member_template_decl (yyvsp[0].ttype); *************** case 568: *** 7341,7359 **** finish_template_decl (yyvsp[-1].ttype); ; break;} ! case 569: ! #line 2629 "parse.y" { yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); finish_template_decl (yyvsp[-2].ttype); ; break;} ! case 570: ! #line 2634 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 571: ! #line 2642 "parse.y" { /* Most of the productions for component_decl only allow the creation of one new member, so we call --- 7324,7342 ---- finish_template_decl (yyvsp[-1].ttype); ; break;} ! case 572: ! #line 2651 "parse.y" { yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); finish_template_decl (yyvsp[-2].ttype); ; break;} ! case 573: ! #line 2656 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 574: ! #line 2664 "parse.y" { /* Most of the productions for component_decl only allow the creation of one new member, so we call *************** case 571: *** 7375,7425 **** yyval.ttype = NULL_TREE; ; break;} ! case 572: ! #line 2663 "parse.y" { if (!yyvsp[0].itype) grok_x_components (yyvsp[-1].ftype.t); yyval.ttype = NULL_TREE; ; break;} ! case 573: ! #line 2669 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 574: ! #line 2671 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 575: ! #line 2673 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} ! case 576: ! #line 2675 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 577: ! #line 2686 "parse.y" { tree specs, attrs; split_specs_attrs (yyvsp[-4].ftype.t, &specs, &attrs); yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, chainon (yyvsp[-1].ttype, attrs)); ; break;} ! case 578: ! #line 2691 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 579: ! #line 2693 "parse.y" { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; break;} ! case 580: ! #line 2700 "parse.y" { yyval.itype = 0; ; break;} ! case 581: ! #line 2702 "parse.y" { if (PROCESSING_REAL_TEMPLATE_DECL_P ()) yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); --- 7358,7408 ---- yyval.ttype = NULL_TREE; ; break;} ! case 575: ! #line 2685 "parse.y" { if (!yyvsp[0].itype) grok_x_components (yyvsp[-1].ftype.t); yyval.ttype = NULL_TREE; ; break;} ! case 576: ! #line 2691 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 577: ! #line 2693 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 578: ! #line 2695 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} ! case 579: ! #line 2697 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 580: ! #line 2708 "parse.y" { tree specs, attrs; split_specs_attrs (yyvsp[-4].ftype.t, &specs, &attrs); yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, chainon (yyvsp[-1].ttype, attrs)); ; break;} ! case 581: ! #line 2713 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 582: ! #line 2715 "parse.y" { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; break;} ! case 583: ! #line 2722 "parse.y" { yyval.itype = 0; ; break;} ! case 584: ! #line 2724 "parse.y" { if (PROCESSING_REAL_TEMPLATE_DECL_P ()) yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); *************** case 581: *** 7427,7434 **** yyval.itype = 1; ; break;} ! case 582: ! #line 2709 "parse.y" { check_multiple_declarators (); if (PROCESSING_REAL_TEMPLATE_DECL_P ()) --- 7410,7417 ---- yyval.itype = 1; ; break;} ! case 585: ! #line 2731 "parse.y" { check_multiple_declarators (); if (PROCESSING_REAL_TEMPLATE_DECL_P ()) *************** case 582: *** 7437,7448 **** yyval.itype = 2; ; break;} ! case 583: ! #line 2720 "parse.y" { yyval.itype = 0; ; break;} ! case 584: ! #line 2722 "parse.y" { if (PROCESSING_REAL_TEMPLATE_DECL_P ()) yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); --- 7420,7431 ---- yyval.itype = 2; ; break;} ! case 586: ! #line 2742 "parse.y" { yyval.itype = 0; ; break;} ! case 587: ! #line 2744 "parse.y" { if (PROCESSING_REAL_TEMPLATE_DECL_P ()) yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype); *************** case 584: *** 7450,7457 **** yyval.itype = 1; ; break;} ! case 585: ! #line 2729 "parse.y" { check_multiple_declarators (); if (PROCESSING_REAL_TEMPLATE_DECL_P ()) --- 7433,7440 ---- yyval.itype = 1; ; break;} ! case 588: ! #line 2751 "parse.y" { check_multiple_declarators (); if (PROCESSING_REAL_TEMPLATE_DECL_P ()) *************** case 585: *** 7460,7535 **** yyval.itype = 2; ; break;} ! case 590: ! #line 2750 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 591: ! #line 2753 "parse.y" { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 592: ! #line 2759 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 593: ! #line 2762 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 594: ! #line 2765 "parse.y" { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 595: ! #line 2768 "parse.y" { yyval.ttype = parse_bitfield0 (NULL_TREE, yyvsp[-3].ftype.t, yyvsp[-3].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 596: ! #line 2774 "parse.y" { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 597: ! #line 2776 "parse.y" { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 598: ! #line 2781 "parse.y" { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 599: ! #line 2783 "parse.y" { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 600: ! #line 2785 "parse.y" { yyval.ttype = parse_bitfield (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 605: ! #line 2804 "parse.y" { build_enumerator (yyvsp[0].ttype, NULL_TREE, current_enum_type); ; break;} ! case 606: ! #line 2806 "parse.y" { build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype, current_enum_type); ; break;} ! case 607: ! #line 2812 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 608: ! #line 2815 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} ! case 609: ! #line 2820 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new"); --- 7443,7518 ---- yyval.itype = 2; ; break;} ! case 593: ! #line 2772 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 594: ! #line 2775 "parse.y" { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 595: ! #line 2781 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 596: ! #line 2784 "parse.y" { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 597: ! #line 2787 "parse.y" { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 598: ! #line 2790 "parse.y" { yyval.ttype = parse_bitfield0 (NULL_TREE, yyvsp[-3].ftype.t, yyvsp[-3].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 599: ! #line 2796 "parse.y" { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 600: ! #line 2798 "parse.y" { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 601: ! #line 2803 "parse.y" { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 602: ! #line 2805 "parse.y" { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 603: ! #line 2807 "parse.y" { yyval.ttype = parse_bitfield (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 608: ! #line 2826 "parse.y" { build_enumerator (yyvsp[0].ttype, NULL_TREE, current_enum_type); ; break;} ! case 609: ! #line 2828 "parse.y" { build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype, current_enum_type); ; break;} ! case 610: ! #line 2834 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 611: ! #line 2837 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} ! case 612: ! #line 2842 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new"); *************** case 609: *** 7538,7641 **** yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag; ; break;} ! case 610: ! #line 2831 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 611: ! #line 2833 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} ! case 612: ! #line 2838 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); yyval.ftype.new_type_flag = 0; ; break;} ! case 613: ! #line 2841 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 614: ! #line 2844 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); yyval.ftype.new_type_flag = 0; ; break;} ! case 615: ! #line 2847 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 616: ! #line 2857 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 617: ! #line 2859 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 618: ! #line 2861 "parse.y" { yyval.ttype = empty_parms (); ; break;} ! case 619: ! #line 2863 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 621: ! #line 2871 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 622: ! #line 2881 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 623: ! #line 2883 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 624: ! #line 2885 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 625: ! #line 2887 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 626: ! #line 2889 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 628: ! #line 2897 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 629: ! #line 2899 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} ! case 630: ! #line 2901 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} ! case 631: ! #line 2903 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 632: ! #line 2905 "parse.y" { push_nested_class (yyvsp[-1].ttype, 3); yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; break;} ! case 634: ! #line 2913 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) { --- 7521,7624 ---- yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag; ; break;} ! case 613: ! #line 2853 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 614: ! #line 2855 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} ! case 615: ! #line 2860 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); yyval.ftype.new_type_flag = 0; ; break;} ! case 616: ! #line 2863 "parse.y" { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 617: ! #line 2866 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); yyval.ftype.new_type_flag = 0; ; break;} ! case 618: ! #line 2869 "parse.y" { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 619: ! #line 2879 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 620: ! #line 2881 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 621: ! #line 2883 "parse.y" { yyval.ttype = empty_parms (); ; break;} ! case 622: ! #line 2885 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 624: ! #line 2893 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 625: ! #line 2903 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 626: ! #line 2905 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 627: ! #line 2907 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 628: ! #line 2909 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 629: ! #line 2911 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 631: ! #line 2919 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 632: ! #line 2921 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} ! case 633: ! #line 2923 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} ! case 634: ! #line 2925 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 635: ! #line 2927 "parse.y" { push_nested_class (yyvsp[-1].ttype, 3); yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; break;} ! case 637: ! #line 2935 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) { *************** case 634: *** 7646,7653 **** yyval.ttype = yyvsp[0].ttype; ; break;} ! case 635: ! #line 2923 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); --- 7629,7636 ---- yyval.ttype = yyvsp[0].ttype; ; break;} ! case 638: ! #line 2945 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); *************** case 635: *** 7656,7815 **** got_scope = NULL_TREE; ; break;} ! case 638: ! #line 2936 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 639: ! #line 2941 "parse.y" { yyval.ttype = get_type_decl (yyvsp[0].ttype); ; break;} ! case 641: ! #line 2950 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 642: ! #line 2959 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 643: ! #line 2961 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 644: ! #line 2963 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 645: ! #line 2965 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 646: ! #line 2967 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 648: ! #line 2975 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 649: ! #line 2977 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 650: ! #line 2979 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 651: ! #line 2981 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 652: ! #line 2983 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 654: ! #line 2991 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 655: ! #line 2993 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 656: ! #line 2995 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} ! case 657: ! #line 2997 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} ! case 658: ! #line 2999 "parse.y" { enter_scope_of (yyvsp[0].ttype); ; break;} ! case 659: ! #line 3001 "parse.y" { enter_scope_of (yyvsp[0].ttype); yyval.ttype = yyvsp[0].ttype;; break;} ! case 660: ! #line 3003 "parse.y" { yyval.ttype = build_nt (SCOPE_REF, global_namespace, yyvsp[0].ttype); enter_scope_of (yyval.ttype); ; break;} ! case 661: ! #line 3007 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); enter_scope_of (yyval.ttype); ; break;} ! case 662: ! #line 3015 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} ! case 663: ! #line 3018 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 664: ! #line 3024 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} ! case 665: ! #line 3027 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 667: ! #line 3034 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 668: ! #line 3039 "parse.y" { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} ! case 669: ! #line 3041 "parse.y" { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} ! case 670: ! #line 3043 "parse.y" { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 675: ! #line 3055 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 676: ! #line 3057 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 677: ! #line 3061 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 678: ! #line 3064 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 679: ! #line 3072 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) { --- 7639,7798 ---- got_scope = NULL_TREE; ; break;} ! case 641: ! #line 2958 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 642: ! #line 2963 "parse.y" { yyval.ttype = get_type_decl (yyvsp[0].ttype); ; break;} ! case 644: ! #line 2972 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 645: ! #line 2981 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 646: ! #line 2983 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 647: ! #line 2985 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 648: ! #line 2987 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 649: ! #line 2989 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 651: ! #line 2997 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 652: ! #line 2999 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 653: ! #line 3001 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 654: ! #line 3003 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 655: ! #line 3005 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 657: ! #line 3013 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 658: ! #line 3015 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 659: ! #line 3017 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} ! case 660: ! #line 3019 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} ! case 661: ! #line 3021 "parse.y" { enter_scope_of (yyvsp[0].ttype); ; break;} ! case 662: ! #line 3023 "parse.y" { enter_scope_of (yyvsp[0].ttype); yyval.ttype = yyvsp[0].ttype;; break;} ! case 663: ! #line 3025 "parse.y" { yyval.ttype = build_nt (SCOPE_REF, global_namespace, yyvsp[0].ttype); enter_scope_of (yyval.ttype); ; break;} ! case 664: ! #line 3029 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); enter_scope_of (yyval.ttype); ; break;} ! case 665: ! #line 3037 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} ! case 666: ! #line 3040 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 667: ! #line 3046 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} ! case 668: ! #line 3049 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 670: ! #line 3056 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 671: ! #line 3061 "parse.y" { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} ! case 672: ! #line 3063 "parse.y" { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} ! case 673: ! #line 3065 "parse.y" { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 678: ! #line 3077 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 679: ! #line 3079 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 680: ! #line 3083 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 681: ! #line 3086 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 682: ! #line 3094 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) { *************** case 679: *** 7820,7851 **** complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype))); ; break;} ! case 680: ! #line 3082 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} ! case 681: ! #line 3088 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype; ; break;} ! case 682: ! #line 3094 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; break;} ! case 684: ! #line 3100 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 685: ! #line 3105 "parse.y" { if (TYPE_P (yyvsp[-1].ttype)) yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); --- 7803,7834 ---- complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype))); ; break;} ! case 683: ! #line 3104 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} ! case 684: ! #line 3110 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype; ; break;} ! case 685: ! #line 3116 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; break;} ! case 687: ! #line 3122 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 688: ! #line 3127 "parse.y" { if (TYPE_P (yyvsp[-1].ttype)) yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); *************** case 685: *** 7859,7878 **** } ; break;} ! case 686: ! #line 3118 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; break;} ! case 687: ! #line 3120 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); ; break;} ! case 688: ! #line 3122 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype, tf_error); ; break;} ! case 689: ! #line 3127 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) error ("`%T' is not a class or namespace", yyvsp[0].ttype); --- 7842,7861 ---- } ; break;} ! case 689: ! #line 3140 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; break;} ! case 690: ! #line 3142 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); ; break;} ! case 691: ! #line 3144 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype, tf_error); ; break;} ! case 692: ! #line 3149 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) error ("`%T' is not a class or namespace", yyvsp[0].ttype); *************** case 689: *** 7880,7887 **** yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; break;} ! case 690: ! #line 3134 "parse.y" { if (TYPE_P (yyvsp[-1].ttype)) yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); --- 7863,7870 ---- yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; break;} ! case 693: ! #line 3156 "parse.y" { if (TYPE_P (yyvsp[-1].ttype)) yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, tf_error); *************** case 690: *** 7895,7912 **** } ; break;} ! case 691: ! #line 3147 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 692: ! #line 3150 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 693: ! #line 3158 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL) yyval.ttype = lastiddecl; --- 7878,7895 ---- } ; break;} ! case 694: ! #line 3169 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 695: ! #line 3172 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, tf_error); ; break;} ! case 696: ! #line 3180 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL) yyval.ttype = lastiddecl; *************** case 693: *** 7919,7950 **** error ("`%T' is not a class or namespace", yyvsp[-1].ttype); ; break;} ! case 694: ! #line 3170 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL) yyval.ttype = lastiddecl; got_scope = complete_type (TREE_TYPE (yyval.ttype)); ; break;} ! case 695: ! #line 3176 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} ! case 698: ! #line 3180 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype; ; break;} ! case 699: ! #line 3189 "parse.y" { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 700: ! #line 3194 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); --- 7902,7933 ---- error ("`%T' is not a class or namespace", yyvsp[-1].ttype); ; break;} ! case 697: ! #line 3192 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != TYPE_DECL) yyval.ttype = lastiddecl; got_scope = complete_type (TREE_TYPE (yyval.ttype)); ; break;} ! case 698: ! #line 3198 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} ! case 701: ! #line 3202 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype; ; break;} ! case 702: ! #line 3211 "parse.y" { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 703: ! #line 3216 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); *************** case 700: *** 7953,8109 **** got_scope = NULL_TREE; ; break;} ! case 702: ! #line 3203 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 703: ! #line 3208 "parse.y" { got_scope = NULL_TREE; ; break;} ! case 704: ! #line 3210 "parse.y" { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; break;} ! case 705: ! #line 3217 "parse.y" { got_scope = void_type_node; ; break;} ! case 706: ! #line 3223 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 707: ! #line 3225 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} ! case 708: ! #line 3227 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 709: ! #line 3229 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} ! case 710: ! #line 3231 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} ! case 711: ! #line 3235 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 713: ! #line 3244 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 714: ! #line 3246 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} ! case 716: ! #line 3252 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 717: ! #line 3262 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 718: ! #line 3264 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 719: ! #line 3266 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} ! case 720: ! #line 3268 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; break;} ! case 721: ! #line 3270 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 722: ! #line 3272 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 723: ! #line 3274 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} ! case 724: ! #line 3276 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; break;} ! case 725: ! #line 3278 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} ! case 726: ! #line 3282 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 728: ! #line 3291 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 729: ! #line 3294 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 730: ! #line 3296 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 731: ! #line 3298 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} ! case 732: ! #line 3300 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} ! case 733: ! #line 3302 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 734: ! #line 3304 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 735: ! #line 3306 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 736: ! #line 3308 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 737: ! #line 3310 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} ! case 744: ! #line 3333 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids label declarations"); ; break;} ! case 747: ! #line 3344 "parse.y" { while (yyvsp[-1].ttype) { --- 7936,8092 ---- got_scope = NULL_TREE; ; break;} ! case 705: ! #line 3225 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 706: ! #line 3230 "parse.y" { got_scope = NULL_TREE; ; break;} ! case 707: ! #line 3232 "parse.y" { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; break;} ! case 708: ! #line 3239 "parse.y" { got_scope = void_type_node; ; break;} ! case 709: ! #line 3245 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 710: ! #line 3247 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} ! case 711: ! #line 3249 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 712: ! #line 3251 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} ! case 713: ! #line 3253 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} ! case 714: ! #line 3257 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 716: ! #line 3266 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 717: ! #line 3268 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} ! case 719: ! #line 3274 "parse.y" { /* Provide support for '(' attributes '*' declarator ')' etc */ yyval.ttype = tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 720: ! #line 3284 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 721: ! #line 3286 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 722: ! #line 3288 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} ! case 723: ! #line 3290 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; break;} ! case 724: ! #line 3292 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 725: ! #line 3294 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 726: ! #line 3296 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} ! case 727: ! #line 3298 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; break;} ! case 728: ! #line 3300 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} ! case 729: ! #line 3304 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 731: ! #line 3313 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 732: ! #line 3316 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 733: ! #line 3318 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 734: ! #line 3320 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} ! case 735: ! #line 3322 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} ! case 736: ! #line 3324 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 737: ! #line 3326 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 738: ! #line 3328 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 739: ! #line 3330 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 740: ! #line 3332 "parse.y" { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} ! case 747: ! #line 3355 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids label declarations"); ; break;} ! case 750: ! #line 3366 "parse.y" { while (yyvsp[-1].ttype) { *************** case 747: *** 8112,8390 **** } ; break;} ! case 748: ! #line 3355 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} ! case 749: ! #line 3357 "parse.y" { STMT_LINENO (yyvsp[-1].ttype) = yyvsp[-3].itype; finish_compound_stmt (0, yyvsp[-1].ttype); ; break;} ! case 750: ! #line 3363 "parse.y" { last_expr_type = NULL_TREE; ; break;} ! case 751: ! #line 3368 "parse.y" { yyval.ttype = begin_if_stmt (); cond_stmt_keyword = "if"; ; break;} ! case 752: ! #line 3371 "parse.y" { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 753: ! #line 3373 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_then_clause (yyvsp[-3].ttype); ; break;} ! case 755: ! #line 3380 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} ! case 756: ! #line 3382 "parse.y" { STMT_LINENO (yyvsp[-2].ttype) = yyvsp[-1].itype; if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; finish_compound_stmt (0, yyvsp[-2].ttype); ; break;} ! case 758: ! #line 3390 "parse.y" { if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; ; break;} ! case 759: ! #line 3395 "parse.y" { finish_stmt (); yyval.ttype = NULL_TREE; ; break;} ! case 760: ! #line 3398 "parse.y" { yyval.ttype = finish_expr_stmt (yyvsp[-1].ttype); ; break;} ! case 761: ! #line 3400 "parse.y" { begin_else_clause (); ; break;} ! case 762: ! #line 3402 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_else_clause (yyvsp[-3].ttype); finish_if_stmt (); ; break;} ! case 763: ! #line 3408 "parse.y" { yyval.ttype = yyvsp[0].ttype; finish_if_stmt (); ; break;} ! case 764: ! #line 3411 "parse.y" { yyval.ttype = begin_while_stmt (); cond_stmt_keyword = "while"; ; break;} ! case 765: ! #line 3416 "parse.y" { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 766: ! #line 3418 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_while_stmt (yyvsp[-3].ttype); ; break;} ! case 767: ! #line 3421 "parse.y" { yyval.ttype = begin_do_stmt (); ; break;} ! case 768: ! #line 3423 "parse.y" { finish_do_body (yyvsp[-2].ttype); cond_stmt_keyword = "do"; ; break;} ! case 769: ! #line 3428 "parse.y" { yyval.ttype = yyvsp[-5].ttype; finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} ! case 770: ! #line 3431 "parse.y" { yyval.ttype = begin_for_stmt (); ; break;} ! case 771: ! #line 3433 "parse.y" { finish_for_init_stmt (yyvsp[-2].ttype); ; break;} ! case 772: ! #line 3435 "parse.y" { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} ! case 773: ! #line 3437 "parse.y" { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ; break;} ! case 774: ! #line 3439 "parse.y" { yyval.ttype = yyvsp[-10].ttype; finish_for_stmt (yyvsp[-10].ttype); ; break;} ! case 775: ! #line 3442 "parse.y" { yyval.ttype = begin_switch_stmt (); ; break;} ! case 776: ! #line 3444 "parse.y" { finish_switch_cond (yyvsp[-1].ttype, yyvsp[-3].ttype); ; break;} ! case 777: ! #line 3446 "parse.y" { yyval.ttype = yyvsp[-5].ttype; finish_switch_stmt (yyvsp[-5].ttype); ; break;} ! case 778: ! #line 3449 "parse.y" { yyval.ttype = finish_case_label (yyvsp[-1].ttype, NULL_TREE); ; break;} ! case 779: ! #line 3451 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 780: ! #line 3453 "parse.y" { yyval.ttype = finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 781: ! #line 3455 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 782: ! #line 3457 "parse.y" { yyval.ttype = finish_case_label (NULL_TREE, NULL_TREE); ; break;} ! case 783: ! #line 3459 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 784: ! #line 3461 "parse.y" { yyval.ttype = finish_break_stmt (); ; break;} ! case 785: ! #line 3463 "parse.y" { yyval.ttype = finish_continue_stmt (); ; break;} ! case 786: ! #line 3465 "parse.y" { yyval.ttype = finish_return_stmt (NULL_TREE); ; break;} ! case 787: ! #line 3467 "parse.y" { yyval.ttype = finish_return_stmt (yyvsp[-1].ttype); ; break;} ! case 788: ! #line 3469 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, NULL_TREE); ASM_INPUT_P (yyval.ttype) = 1; ; break;} ! case 789: ! #line 3474 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} ! case 790: ! #line 3478 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} ! case 791: ! #line 3480 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype, NULL_TREE); ; break;} ! case 792: ! #line 3484 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} ! case 793: ! #line 3487 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, NULL_TREE, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} ! case 794: ! #line 3490 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype); ; break;} ! case 795: ! #line 3492 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids computed gotos"); yyval.ttype = finish_goto_stmt (yyvsp[-1].ttype); ; break;} ! case 796: ! #line 3498 "parse.y" { yyval.ttype = finish_goto_stmt (yyvsp[-1].ttype); ; break;} ! case 797: ! #line 3500 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 798: ! #line 3502 "parse.y" { error ("label must be followed by statement"); yyungetc ('}', 0); yyval.ttype = NULL_TREE; ; break;} ! case 799: ! #line 3506 "parse.y" { finish_stmt (); yyval.ttype = NULL_TREE; ; break;} ! case 800: ! #line 3509 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 801: ! #line 3511 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 802: ! #line 3513 "parse.y" { do_local_using_decl (yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} ! case 803: ! #line 3516 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 804: ! #line 3521 "parse.y" { yyval.ttype = begin_function_try_block (); ; break;} ! case 805: ! #line 3523 "parse.y" { finish_function_try_block (yyvsp[-1].ttype); ; break;} ! case 806: ! #line 3525 "parse.y" { finish_function_handler_sequence (yyvsp[-3].ttype); ; break;} ! case 807: ! #line 3530 "parse.y" { yyval.ttype = begin_try_block (); ; break;} ! case 808: ! #line 3532 "parse.y" { finish_try_block (yyvsp[-1].ttype); ; break;} ! case 809: ! #line 3534 "parse.y" { finish_handler_sequence (yyvsp[-3].ttype); ; break;} ! case 812: ! #line 3541 "parse.y" { /* Generate a fake handler block to avoid later aborts. */ tree fake_handler = begin_handler (); finish_handler_parms (NULL_TREE, fake_handler); --- 8095,8373 ---- } ; break;} ! case 751: ! #line 3377 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} ! case 752: ! #line 3379 "parse.y" { STMT_LINENO (yyvsp[-1].ttype) = yyvsp[-3].itype; finish_compound_stmt (0, yyvsp[-1].ttype); ; break;} ! case 753: ! #line 3385 "parse.y" { last_expr_type = NULL_TREE; ; break;} ! case 754: ! #line 3390 "parse.y" { yyval.ttype = begin_if_stmt (); cond_stmt_keyword = "if"; ; break;} ! case 755: ! #line 3393 "parse.y" { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 756: ! #line 3395 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_then_clause (yyvsp[-3].ttype); ; break;} ! case 758: ! #line 3402 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} ! case 759: ! #line 3404 "parse.y" { STMT_LINENO (yyvsp[-2].ttype) = yyvsp[-1].itype; if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; finish_compound_stmt (0, yyvsp[-2].ttype); ; break;} ! case 761: ! #line 3412 "parse.y" { if (yyvsp[0].ttype) STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].itype; ; break;} ! case 762: ! #line 3417 "parse.y" { finish_stmt (); yyval.ttype = NULL_TREE; ; break;} ! case 763: ! #line 3420 "parse.y" { yyval.ttype = finish_expr_stmt (yyvsp[-1].ttype); ; break;} ! case 764: ! #line 3422 "parse.y" { begin_else_clause (); ; break;} ! case 765: ! #line 3424 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_else_clause (yyvsp[-3].ttype); finish_if_stmt (); ; break;} ! case 766: ! #line 3430 "parse.y" { yyval.ttype = yyvsp[0].ttype; finish_if_stmt (); ; break;} ! case 767: ! #line 3433 "parse.y" { yyval.ttype = begin_while_stmt (); cond_stmt_keyword = "while"; ; break;} ! case 768: ! #line 3438 "parse.y" { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 769: ! #line 3440 "parse.y" { yyval.ttype = yyvsp[-3].ttype; finish_while_stmt (yyvsp[-3].ttype); ; break;} ! case 770: ! #line 3443 "parse.y" { yyval.ttype = begin_do_stmt (); ; break;} ! case 771: ! #line 3445 "parse.y" { finish_do_body (yyvsp[-2].ttype); cond_stmt_keyword = "do"; ; break;} ! case 772: ! #line 3450 "parse.y" { yyval.ttype = yyvsp[-5].ttype; finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} ! case 773: ! #line 3453 "parse.y" { yyval.ttype = begin_for_stmt (); ; break;} ! case 774: ! #line 3455 "parse.y" { finish_for_init_stmt (yyvsp[-2].ttype); ; break;} ! case 775: ! #line 3457 "parse.y" { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} ! case 776: ! #line 3459 "parse.y" { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ; break;} ! case 777: ! #line 3461 "parse.y" { yyval.ttype = yyvsp[-10].ttype; finish_for_stmt (yyvsp[-10].ttype); ; break;} ! case 778: ! #line 3464 "parse.y" { yyval.ttype = begin_switch_stmt (); ; break;} ! case 779: ! #line 3466 "parse.y" { finish_switch_cond (yyvsp[-1].ttype, yyvsp[-3].ttype); ; break;} ! case 780: ! #line 3468 "parse.y" { yyval.ttype = yyvsp[-5].ttype; finish_switch_stmt (yyvsp[-5].ttype); ; break;} ! case 781: ! #line 3471 "parse.y" { yyval.ttype = finish_case_label (yyvsp[-1].ttype, NULL_TREE); ; break;} ! case 782: ! #line 3473 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 783: ! #line 3475 "parse.y" { yyval.ttype = finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 784: ! #line 3477 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 785: ! #line 3479 "parse.y" { yyval.ttype = finish_case_label (NULL_TREE, NULL_TREE); ; break;} ! case 786: ! #line 3481 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 787: ! #line 3483 "parse.y" { yyval.ttype = finish_break_stmt (); ; break;} ! case 788: ! #line 3485 "parse.y" { yyval.ttype = finish_continue_stmt (); ; break;} ! case 789: ! #line 3487 "parse.y" { yyval.ttype = finish_return_stmt (NULL_TREE); ; break;} ! case 790: ! #line 3489 "parse.y" { yyval.ttype = finish_return_stmt (yyvsp[-1].ttype); ; break;} ! case 791: ! #line 3491 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, NULL_TREE); ASM_INPUT_P (yyval.ttype) = 1; ; break;} ! case 792: ! #line 3496 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} ! case 793: ! #line 3500 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} ! case 794: ! #line 3502 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype, NULL_TREE); ; break;} ! case 795: ! #line 3506 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} ! case 796: ! #line 3509 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, NULL_TREE, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} ! case 797: ! #line 3512 "parse.y" { yyval.ttype = finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype); ; break;} ! case 798: ! #line 3514 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids computed gotos"); yyval.ttype = finish_goto_stmt (yyvsp[-1].ttype); ; break;} ! case 799: ! #line 3520 "parse.y" { yyval.ttype = finish_goto_stmt (yyvsp[-1].ttype); ; break;} ! case 800: ! #line 3522 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 801: ! #line 3524 "parse.y" { error ("label must be followed by statement"); yyungetc ('}', 0); yyval.ttype = NULL_TREE; ; break;} ! case 802: ! #line 3528 "parse.y" { finish_stmt (); yyval.ttype = NULL_TREE; ; break;} ! case 803: ! #line 3531 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 804: ! #line 3533 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 805: ! #line 3535 "parse.y" { do_local_using_decl (yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} ! case 806: ! #line 3538 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 807: ! #line 3543 "parse.y" { yyval.ttype = begin_function_try_block (); ; break;} ! case 808: ! #line 3545 "parse.y" { finish_function_try_block (yyvsp[-1].ttype); ; break;} ! case 809: ! #line 3547 "parse.y" { finish_function_handler_sequence (yyvsp[-3].ttype); ; break;} ! case 810: ! #line 3552 "parse.y" { yyval.ttype = begin_try_block (); ; break;} ! case 811: ! #line 3554 "parse.y" { finish_try_block (yyvsp[-1].ttype); ; break;} ! case 812: ! #line 3556 "parse.y" { finish_handler_sequence (yyvsp[-3].ttype); ; break;} ! case 815: ! #line 3563 "parse.y" { /* Generate a fake handler block to avoid later aborts. */ tree fake_handler = begin_handler (); finish_handler_parms (NULL_TREE, fake_handler); *************** case 812: *** 8394,8519 **** error ("must have at least one catch per try block"); ; break;} ! case 813: ! #line 3553 "parse.y" { yyval.ttype = begin_handler (); ; break;} ! case 814: ! #line 3555 "parse.y" { finish_handler_parms (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 815: ! #line 3557 "parse.y" { finish_handler (yyvsp[-3].ttype); ; break;} ! case 818: ! #line 3567 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 819: ! #line 3583 "parse.y" { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); yyval.ttype = start_handler_parms (TREE_PURPOSE (yyvsp[-1].ftype.t), TREE_VALUE (yyvsp[-1].ftype.t)); ; break;} ! case 820: ! #line 3592 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} ! case 821: ! #line 3594 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} ! case 822: ! #line 3596 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} ! case 823: ! #line 3598 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} ! case 824: ! #line 3603 "parse.y" { finish_expr_stmt (yyvsp[-1].ttype); ; break;} ! case 826: ! #line 3606 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids compound statements inside for initializations"); ; break;} ! case 827: ! #line 3615 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 829: ! #line 3621 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 831: ! #line 3624 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 832: ! #line 3631 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 835: ! #line 3638 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} ! case 836: ! #line 3643 "parse.y" { yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} ! case 837: ! #line 3645 "parse.y" { yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} ! case 838: ! #line 3650 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE);; break;} ! case 839: ! #line 3652 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; break;} ! case 840: ! #line 3663 "parse.y" { yyval.ttype = empty_parms(); ; break;} ! case 842: ! #line 3668 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0); check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; break;} ! case 843: ! #line 3676 "parse.y" { yyval.ttype = finish_parmlist (yyval.ttype, 0); ; break;} ! case 844: ! #line 3678 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} ! case 845: ! #line 3681 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} ! case 846: ! #line 3683 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 1); ; break;} ! case 847: ! #line 3686 "parse.y" { yyval.ttype = finish_parmlist (NULL_TREE, 1); ; break;} ! case 848: ! #line 3688 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right --- 8377,8502 ---- error ("must have at least one catch per try block"); ; break;} ! case 816: ! #line 3575 "parse.y" { yyval.ttype = begin_handler (); ; break;} ! case 817: ! #line 3577 "parse.y" { finish_handler_parms (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} ! case 818: ! #line 3579 "parse.y" { finish_handler (yyvsp[-3].ttype); ; break;} ! case 821: ! #line 3589 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 822: ! #line 3605 "parse.y" { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); yyval.ttype = start_handler_parms (TREE_PURPOSE (yyvsp[-1].ftype.t), TREE_VALUE (yyvsp[-1].ftype.t)); ; break;} ! case 823: ! #line 3614 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} ! case 824: ! #line 3616 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} ! case 825: ! #line 3618 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} ! case 826: ! #line 3620 "parse.y" { finish_label_stmt (yyvsp[-1].ttype); ; break;} ! case 827: ! #line 3625 "parse.y" { finish_expr_stmt (yyvsp[-1].ttype); ; break;} ! case 829: ! #line 3628 "parse.y" { if (pedantic) pedwarn ("ISO C++ forbids compound statements inside for initializations"); ; break;} ! case 830: ! #line 3637 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 832: ! #line 3643 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 834: ! #line 3646 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 835: ! #line 3653 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 838: ! #line 3660 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} ! case 839: ! #line 3665 "parse.y" { yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} ! case 840: ! #line 3667 "parse.y" { yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} ! case 841: ! #line 3672 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE);; break;} ! case 842: ! #line 3674 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; break;} ! case 843: ! #line 3685 "parse.y" { yyval.ttype = empty_parms(); ; break;} ! case 845: ! #line 3690 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0); check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; break;} ! case 846: ! #line 3698 "parse.y" { yyval.ttype = finish_parmlist (yyval.ttype, 0); ; break;} ! case 847: ! #line 3700 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} ! case 848: ! #line 3703 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} ! case 849: ! #line 3705 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 1); ; break;} ! case 850: ! #line 3708 "parse.y" { yyval.ttype = finish_parmlist (NULL_TREE, 1); ; break;} ! case 851: ! #line 3710 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right *************** case 848: *** 8524,8531 **** yychar = ')'; ; break;} ! case 849: ! #line 3698 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right --- 8507,8514 ---- yychar = ')'; ; break;} ! case 852: ! #line 3720 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right *************** case 849: *** 8537,8632 **** yychar = ')'; ; break;} ! case 850: ! #line 3713 "parse.y" { maybe_snarf_defarg (); ; break;} ! case 851: ! #line 3715 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 854: ! #line 3726 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} ! case 855: ! #line 3729 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; break;} ! case 856: ! #line 3732 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; break;} ! case 857: ! #line 3735 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} ! case 858: ! #line 3737 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; break;} ! case 860: ! #line 3743 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; break;} ! case 861: ! #line 3753 "parse.y" { yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 862: ! #line 3756 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 863: ! #line 3759 "parse.y" { yyval.ftype.t = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 864: ! #line 3763 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 865: ! #line 3766 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} ! case 866: ! #line 3769 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} ! case 867: ! #line 3775 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} ! case 868: ! #line 3778 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 871: ! #line 3789 "parse.y" { see_typename (); ; break;} ! case 872: ! #line 3794 "parse.y" { error ("type specifier omitted for parameter"); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); ; break;} ! case 873: ! #line 3799 "parse.y" { if (TREE_CODE (yyval.ttype) == SCOPE_REF) { --- 8520,8615 ---- yychar = ')'; ; break;} ! case 853: ! #line 3735 "parse.y" { maybe_snarf_defarg (); ; break;} ! case 854: ! #line 3737 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 857: ! #line 3748 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} ! case 858: ! #line 3751 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; break;} ! case 859: ! #line 3754 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; break;} ! case 860: ! #line 3757 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} ! case 861: ! #line 3759 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; break;} ! case 863: ! #line 3765 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; break;} ! case 864: ! #line 3775 "parse.y" { yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} ! case 865: ! #line 3778 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 866: ! #line 3781 "parse.y" { yyval.ftype.t = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 867: ! #line 3785 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 868: ! #line 3788 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} ! case 869: ! #line 3791 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} ! case 870: ! #line 3797 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} ! case 871: ! #line 3800 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} ! case 874: ! #line 3811 "parse.y" { see_typename (); ; break;} ! case 875: ! #line 3816 "parse.y" { error ("type specifier omitted for parameter"); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); ; break;} ! case 876: ! #line 3821 "parse.y" { if (TREE_CODE (yyval.ttype) == SCOPE_REF) { *************** case 873: *** 8641,8712 **** yyval.ttype = build_tree_list (integer_type_node, yyval.ttype); ; break;} ! case 874: ! #line 3816 "parse.y" { error("'%D' is used as a type, but is not defined as a type.", yyvsp[-4].ttype); yyvsp[-2].ttype = error_mark_node; ; break;} ! case 875: ! #line 3824 "parse.y" { ; break;} ! case 877: ! #line 3830 "parse.y" { ; break;} ! case 879: ! #line 3836 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 880: ! #line 3838 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 881: ! #line 3840 "parse.y" { yyval.ttype = empty_except_spec; ; break;} ! case 882: ! #line 3845 "parse.y" { check_for_new_type ("exception specifier", yyvsp[0].ftype); yyval.ttype = groktypename (yyvsp[0].ftype.t); ; break;} ! case 883: ! #line 3850 "parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 884: ! #line 3855 "parse.y" { yyval.ttype = add_exception_specifier (NULL_TREE, yyvsp[0].ttype, 1); ; break;} ! case 885: ! #line 3857 "parse.y" { yyval.ttype = add_exception_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 1); ; break;} ! case 886: ! #line 3862 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 887: ! #line 3864 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 888: ! #line 3866 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 889: ! #line 3868 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 890: ! #line 3875 "parse.y" { saved_scopes = tree_cons (got_scope, got_object, saved_scopes); TREE_LANG_FLAG_0 (saved_scopes) = looking_for_typename; --- 8624,8695 ---- yyval.ttype = build_tree_list (integer_type_node, yyval.ttype); ; break;} ! case 877: ! #line 3838 "parse.y" { error("'%D' is used as a type, but is not defined as a type.", yyvsp[-4].ttype); yyvsp[-2].ttype = error_mark_node; ; break;} ! case 878: ! #line 3846 "parse.y" { ; break;} ! case 880: ! #line 3852 "parse.y" { ; break;} ! case 882: ! #line 3858 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 883: ! #line 3860 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 884: ! #line 3862 "parse.y" { yyval.ttype = empty_except_spec; ; break;} ! case 885: ! #line 3867 "parse.y" { check_for_new_type ("exception specifier", yyvsp[0].ftype); yyval.ttype = groktypename (yyvsp[0].ftype.t); ; break;} ! case 886: ! #line 3872 "parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 887: ! #line 3877 "parse.y" { yyval.ttype = add_exception_specifier (NULL_TREE, yyvsp[0].ttype, 1); ; break;} ! case 888: ! #line 3879 "parse.y" { yyval.ttype = add_exception_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 1); ; break;} ! case 889: ! #line 3884 "parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 890: ! #line 3886 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 891: ! #line 3888 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 892: ! #line 3890 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_nt (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} ! case 893: ! #line 3897 "parse.y" { saved_scopes = tree_cons (got_scope, got_object, saved_scopes); TREE_LANG_FLAG_0 (saved_scopes) = looking_for_typename; *************** case 890: *** 8717,8872 **** got_scope = NULL_TREE; ; break;} ! case 891: ! #line 3887 "parse.y" { got_scope = TREE_PURPOSE (saved_scopes); got_object = TREE_VALUE (saved_scopes); looking_for_typename = TREE_LANG_FLAG_0 (saved_scopes); saved_scopes = TREE_CHAIN (saved_scopes); ; break;} ! case 892: ! #line 3896 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MULT_EXPR)); ; break;} ! case 893: ! #line 3898 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUNC_DIV_EXPR)); ; break;} ! case 894: ! #line 3900 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUNC_MOD_EXPR)); ; break;} ! case 895: ! #line 3902 "parse.y" { yyval.ttype = frob_opname (ansi_opname (PLUS_EXPR)); ; break;} ! case 896: ! #line 3904 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MINUS_EXPR)); ; break;} ! case 897: ! #line 3906 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_AND_EXPR)); ; break;} ! case 898: ! #line 3908 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_IOR_EXPR)); ; break;} ! case 899: ! #line 3910 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_XOR_EXPR)); ; break;} ! case 900: ! #line 3912 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_NOT_EXPR)); ; break;} ! case 901: ! #line 3914 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COMPOUND_EXPR)); ; break;} ! case 902: ! #line 3916 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 903: ! #line 3918 "parse.y" { yyval.ttype = frob_opname (ansi_opname (LT_EXPR)); ; break;} ! case 904: ! #line 3920 "parse.y" { yyval.ttype = frob_opname (ansi_opname (GT_EXPR)); ; break;} ! case 905: ! #line 3922 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 906: ! #line 3924 "parse.y" { yyval.ttype = frob_opname (ansi_assopname (yyvsp[-1].code)); ; break;} ! case 907: ! #line 3926 "parse.y" { yyval.ttype = frob_opname (ansi_assopname (NOP_EXPR)); ; break;} ! case 908: ! #line 3928 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 909: ! #line 3930 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 910: ! #line 3932 "parse.y" { yyval.ttype = frob_opname (ansi_opname (POSTINCREMENT_EXPR)); ; break;} ! case 911: ! #line 3934 "parse.y" { yyval.ttype = frob_opname (ansi_opname (PREDECREMENT_EXPR)); ; break;} ! case 912: ! #line 3936 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_ANDIF_EXPR)); ; break;} ! case 913: ! #line 3938 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_ORIF_EXPR)); ; break;} ! case 914: ! #line 3940 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_NOT_EXPR)); ; break;} ! case 915: ! #line 3942 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COND_EXPR)); ; break;} ! case 916: ! #line 3944 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 917: ! #line 3946 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COMPONENT_REF)); ; break;} ! case 918: ! #line 3948 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MEMBER_REF)); ; break;} ! case 919: ! #line 3950 "parse.y" { yyval.ttype = frob_opname (ansi_opname (CALL_EXPR)); ; break;} ! case 920: ! #line 3952 "parse.y" { yyval.ttype = frob_opname (ansi_opname (ARRAY_REF)); ; break;} ! case 921: ! #line 3954 "parse.y" { yyval.ttype = frob_opname (ansi_opname (NEW_EXPR)); ; break;} ! case 922: ! #line 3956 "parse.y" { yyval.ttype = frob_opname (ansi_opname (DELETE_EXPR)); ; break;} ! case 923: ! #line 3958 "parse.y" { yyval.ttype = frob_opname (ansi_opname (VEC_NEW_EXPR)); ; break;} ! case 924: ! #line 3960 "parse.y" { yyval.ttype = frob_opname (ansi_opname (VEC_DELETE_EXPR)); ; break;} ! case 925: ! #line 3962 "parse.y" { yyval.ttype = frob_opname (grokoptypename (yyvsp[-2].ftype.t, yyvsp[-1].ttype)); ; break;} ! case 926: ! #line 3964 "parse.y" { yyval.ttype = frob_opname (ansi_opname (ERROR_MARK)); ; break;} ! case 927: ! #line 3971 "parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.itype = lineno; ; --- 8700,8855 ---- got_scope = NULL_TREE; ; break;} ! case 894: ! #line 3909 "parse.y" { got_scope = TREE_PURPOSE (saved_scopes); got_object = TREE_VALUE (saved_scopes); looking_for_typename = TREE_LANG_FLAG_0 (saved_scopes); saved_scopes = TREE_CHAIN (saved_scopes); ; break;} ! case 895: ! #line 3918 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MULT_EXPR)); ; break;} ! case 896: ! #line 3920 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUNC_DIV_EXPR)); ; break;} ! case 897: ! #line 3922 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUNC_MOD_EXPR)); ; break;} ! case 898: ! #line 3924 "parse.y" { yyval.ttype = frob_opname (ansi_opname (PLUS_EXPR)); ; break;} ! case 899: ! #line 3926 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MINUS_EXPR)); ; break;} ! case 900: ! #line 3928 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_AND_EXPR)); ; break;} ! case 901: ! #line 3930 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_IOR_EXPR)); ; break;} ! case 902: ! #line 3932 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_XOR_EXPR)); ; break;} ! case 903: ! #line 3934 "parse.y" { yyval.ttype = frob_opname (ansi_opname (BIT_NOT_EXPR)); ; break;} ! case 904: ! #line 3936 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COMPOUND_EXPR)); ; break;} ! case 905: ! #line 3938 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 906: ! #line 3940 "parse.y" { yyval.ttype = frob_opname (ansi_opname (LT_EXPR)); ; break;} ! case 907: ! #line 3942 "parse.y" { yyval.ttype = frob_opname (ansi_opname (GT_EXPR)); ; break;} ! case 908: ! #line 3944 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 909: ! #line 3946 "parse.y" { yyval.ttype = frob_opname (ansi_assopname (yyvsp[-1].code)); ; break;} ! case 910: ! #line 3948 "parse.y" { yyval.ttype = frob_opname (ansi_assopname (NOP_EXPR)); ; break;} ! case 911: ! #line 3950 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 912: ! #line 3952 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 913: ! #line 3954 "parse.y" { yyval.ttype = frob_opname (ansi_opname (POSTINCREMENT_EXPR)); ; break;} ! case 914: ! #line 3956 "parse.y" { yyval.ttype = frob_opname (ansi_opname (PREDECREMENT_EXPR)); ; break;} ! case 915: ! #line 3958 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_ANDIF_EXPR)); ; break;} ! case 916: ! #line 3960 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_ORIF_EXPR)); ; break;} ! case 917: ! #line 3962 "parse.y" { yyval.ttype = frob_opname (ansi_opname (TRUTH_NOT_EXPR)); ; break;} ! case 918: ! #line 3964 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COND_EXPR)); ; break;} ! case 919: ! #line 3966 "parse.y" { yyval.ttype = frob_opname (ansi_opname (yyvsp[-1].code)); ; break;} ! case 920: ! #line 3968 "parse.y" { yyval.ttype = frob_opname (ansi_opname (COMPONENT_REF)); ; break;} ! case 921: ! #line 3970 "parse.y" { yyval.ttype = frob_opname (ansi_opname (MEMBER_REF)); ; break;} ! case 922: ! #line 3972 "parse.y" { yyval.ttype = frob_opname (ansi_opname (CALL_EXPR)); ; break;} ! case 923: ! #line 3974 "parse.y" { yyval.ttype = frob_opname (ansi_opname (ARRAY_REF)); ; break;} ! case 924: ! #line 3976 "parse.y" { yyval.ttype = frob_opname (ansi_opname (NEW_EXPR)); ; break;} ! case 925: ! #line 3978 "parse.y" { yyval.ttype = frob_opname (ansi_opname (DELETE_EXPR)); ; break;} ! case 926: ! #line 3980 "parse.y" { yyval.ttype = frob_opname (ansi_opname (VEC_NEW_EXPR)); ; break;} ! case 927: ! #line 3982 "parse.y" { yyval.ttype = frob_opname (ansi_opname (VEC_DELETE_EXPR)); ; break;} ! case 928: ! #line 3984 "parse.y" { yyval.ttype = frob_opname (grokoptypename (yyvsp[-2].ftype.t, yyvsp[-1].ttype)); ; break;} ! case 929: ! #line 3986 "parse.y" { yyval.ttype = frob_opname (ansi_opname (ERROR_MARK)); ; break;} ! case 930: ! #line 3993 "parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.itype = lineno; ; *************** yyerrhandle: *** 9093,9099 **** } return 1; } ! #line 3975 "parse.y" #ifdef SPEW_DEBUG --- 9076,9082 ---- } return 1; } ! #line 3997 "parse.y" #ifdef SPEW_DEBUG diff -Nrc3pad gcc-3.2/gcc/cp/parse.h gcc-3.2.1/gcc/cp/parse.h *** gcc-3.2/gcc/cp/parse.h Wed Aug 14 09:46:23 2002 --- gcc-3.2.1/gcc/cp/parse.h Tue Nov 19 18:27:03 2002 *************** typedef union { *** 7,13 **** struct unparsed_text *pi; } YYSTYPE; #define IDENTIFIER 257 ! #define TYPENAME 258 #define SELFNAME 259 #define PFUNCNAME 260 #define SCSPEC 261 --- 7,13 ---- struct unparsed_text *pi; } YYSTYPE; #define IDENTIFIER 257 ! #define tTYPENAME 258 #define SELFNAME 259 #define PFUNCNAME 260 #define SCSPEC 261 diff -Nrc3pad gcc-3.2/gcc/cp/parse.y gcc-3.2.1/gcc/cp/parse.y *** gcc-3.2/gcc/cp/parse.y Tue Apr 30 15:42:21 2002 --- gcc-3.2.1/gcc/cp/parse.y Mon Oct 21 18:38:39 2002 *************** cp_parse_init () *** 253,259 **** /* All identifiers that are declared typedefs in the current block. In some contexts, they are treated just like IDENTIFIER, but they can also serve as typespecs in declarations. */ ! %token TYPENAME %token SELFNAME /* A template function. */ --- 253,259 ---- /* All identifiers that are declared typedefs in the current block. In some contexts, they are treated just like IDENTIFIER, but they can also serve as typespecs in declarations. */ ! %token tTYPENAME %token SELFNAME /* A template function. */ *************** cp_parse_init () *** 315,321 **** %nonassoc IF %nonassoc ELSE ! %left IDENTIFIER PFUNCNAME TYPENAME SELFNAME PTYPENAME SCSPEC TYPESPEC CV_QUALIFIER ENUM AGGR ELLIPSIS TYPEOF SIGOF OPERATOR NSNAME TYPENAME_KEYWORD ATTRIBUTE %left '{' ',' ';' --- 315,321 ---- %nonassoc IF %nonassoc ELSE ! %left IDENTIFIER PFUNCNAME tTYPENAME SELFNAME PTYPENAME SCSPEC TYPESPEC CV_QUALIFIER ENUM AGGR ELLIPSIS TYPEOF SIGOF OPERATOR NSNAME TYPENAME_KEYWORD ATTRIBUTE %left '{' ',' ';' *************** cp_parse_init () *** 345,351 **** %type unop ! %type identifier IDENTIFIER TYPENAME CONSTANT expr nonnull_exprlist %type PFUNCNAME maybe_identifier %type paren_expr_or_null nontrivial_exprlist SELFNAME %type expr_no_commas expr_no_comma_rangle --- 345,351 ---- %type unop ! %type identifier IDENTIFIER tTYPENAME CONSTANT expr nonnull_exprlist %type PFUNCNAME maybe_identifier %type paren_expr_or_null nontrivial_exprlist SELFNAME %type expr_no_commas expr_no_comma_rangle *************** member_init: *** 994,1000 **** identifier: IDENTIFIER ! | TYPENAME | SELFNAME | PTYPENAME | NSNAME --- 994,1000 ---- identifier: IDENTIFIER ! | tTYPENAME | SELFNAME | PTYPENAME | NSNAME *************** explicit_instantiation: *** 1031,1047 **** --- 1031,1051 ---- { do_type_instantiation ($4.t, $1, 1); yyungetc (';', 1); } end_explicit_instantiation + {} | SCSPEC TEMPLATE begin_explicit_instantiation typed_declspecs declarator { tree specs = strip_attrs ($4.t); do_decl_instantiation (specs, $5, $1); } end_explicit_instantiation + {} | SCSPEC TEMPLATE begin_explicit_instantiation notype_declarator { do_decl_instantiation (NULL_TREE, $4, $1); } end_explicit_instantiation + {} | SCSPEC TEMPLATE begin_explicit_instantiation constructor_declarator { do_decl_instantiation (NULL_TREE, $4, $1); } end_explicit_instantiation + {} ; begin_explicit_instantiation: *************** template_type: *** 1060,1066 **** PTYPENAME '<' template_arg_list_opt template_close_bracket .finish_template_type { $$ = $5; } ! | TYPENAME '<' template_arg_list_opt template_close_bracket .finish_template_type { $$ = $5; } | self_template_type --- 1064,1070 ---- PTYPENAME '<' template_arg_list_opt template_close_bracket .finish_template_type { $$ = $5; } ! | tTYPENAME '<' template_arg_list_opt template_close_bracket .finish_template_type { $$ = $5; } | self_template_type *************** unary_expr: *** 1255,1270 **** /* Refer to the address of a label as a pointer. */ | ANDAND identifier { $$ = finish_label_address_expr ($2); } ! | SIZEOF unary_expr %prec UNARY ! { $$ = finish_sizeof ($2); } ! | SIZEOF '(' type_id ')' %prec HYPERUNARY { $$ = finish_sizeof (groktypename ($3.t)); ! check_for_new_type ("sizeof", $3); } ! | ALIGNOF unary_expr %prec UNARY ! { $$ = finish_alignof ($2); } ! | ALIGNOF '(' type_id ')' %prec HYPERUNARY { $$ = finish_alignof (groktypename ($3.t)); ! check_for_new_type ("alignof", $3); } /* The %prec EMPTY's here are required by the = init initializer syntax extension; see below. */ --- 1259,1278 ---- /* Refer to the address of a label as a pointer. */ | ANDAND identifier { $$ = finish_label_address_expr ($2); } ! | sizeof unary_expr %prec UNARY ! { $$ = finish_sizeof ($2); ! skip_evaluation--; } ! | sizeof '(' type_id ')' %prec HYPERUNARY { $$ = finish_sizeof (groktypename ($3.t)); ! check_for_new_type ("sizeof", $3); ! skip_evaluation--; } ! | alignof unary_expr %prec UNARY ! { $$ = finish_alignof ($2); ! skip_evaluation--; } ! | alignof '(' type_id ')' %prec HYPERUNARY { $$ = finish_alignof (groktypename ($3.t)); ! check_for_new_type ("alignof", $3); ! skip_evaluation--; } /* The %prec EMPTY's here are required by the = init initializer syntax extension; see below. */ *************** do_id: *** 1503,1509 **** don't do_identifier; we only do that for unqualified identifiers. */ if (!lastiddecl || TREE_CODE (lastiddecl) != TREE_LIST) ! $$ = do_identifier ($-1, 1, NULL_TREE); else $$ = $-1; } --- 1511,1517 ---- don't do_identifier; we only do that for unqualified identifiers. */ if (!lastiddecl || TREE_CODE (lastiddecl) != TREE_LIST) ! $$ = do_identifier ($-1, 3, NULL_TREE); else $$ = $-1; } *************** object_template_id: *** 1528,1534 **** unqualified_id: notype_unqualified_id ! | TYPENAME | SELFNAME ; --- 1536,1542 ---- unqualified_id: notype_unqualified_id ! | tTYPENAME | SELFNAME ; *************** reserved_typespecquals: *** 1989,1994 **** --- 1997,2014 ---- { $$ = tree_cons ($1, NULL_TREE, NULL_TREE); } ; + sizeof: + SIZEOF { skip_evaluation++; } + ; + + alignof: + ALIGNOF { skip_evaluation++; } + ; + + typeof: + TYPEOF { skip_evaluation++; } + ; + /* A typespec (but not a type qualifier). Once we have seen one of these in a declaration, if a typedef name appears then it is being redeclared. */ *************** typespec: *** 2000,2011 **** { $$.t = $1; $$.new_type_flag = 0; $$.lookups = NULL_TREE; } | complete_type_name { $$.t = $1; $$.new_type_flag = 0; $$.lookups = NULL_TREE; } ! | TYPEOF '(' expr ')' { $$.t = finish_typeof ($3); ! $$.new_type_flag = 0; $$.lookups = NULL_TREE; } ! | TYPEOF '(' type_id ')' { $$.t = groktypename ($3.t); ! $$.new_type_flag = 0; $$.lookups = NULL_TREE; } | SIGOF '(' expr ')' { tree type = TREE_TYPE ($3); --- 2020,2033 ---- { $$.t = $1; $$.new_type_flag = 0; $$.lookups = NULL_TREE; } | complete_type_name { $$.t = $1; $$.new_type_flag = 0; $$.lookups = NULL_TREE; } ! | typeof '(' expr ')' { $$.t = finish_typeof ($3); ! $$.new_type_flag = 0; $$.lookups = NULL_TREE; ! skip_evaluation--; } ! | typeof '(' type_id ')' { $$.t = groktypename ($3.t); ! $$.new_type_flag = 0; $$.lookups = NULL_TREE; ! skip_evaluation--; } | SIGOF '(' expr ')' { tree type = TREE_TYPE ($3); *************** after_type_component_declarator0: *** 2749,2755 **** after_type_declarator maybeasm maybe_attribute maybe_init { $$ = parse_field0 ($1, $0.t, $0.lookups, $3, $2, $4); } ! | TYPENAME ':' expr_no_commas maybe_attribute { $$ = parse_bitfield0 ($1, $0.t, $0.lookups, $4, $3); } ; --- 2771,2777 ---- after_type_declarator maybeasm maybe_attribute maybe_init { $$ = parse_field0 ($1, $0.t, $0.lookups, $3, $2, $4); } ! | tTYPENAME ':' expr_no_commas maybe_attribute { $$ = parse_bitfield0 ($1, $0.t, $0.lookups, $4, $3); } ; *************** notype_component_declarator0: *** 2772,2778 **** after_type_component_declarator: after_type_declarator maybeasm maybe_attribute maybe_init { $$ = parse_field ($1, $3, $2, $4); } ! | TYPENAME ':' expr_no_commas maybe_attribute { $$ = parse_bitfield ($1, $4, $3); } ; --- 2794,2800 ---- after_type_component_declarator: after_type_declarator maybeasm maybe_attribute maybe_init { $$ = parse_field ($1, $3, $2, $4); } ! | tTYPENAME ':' expr_no_commas maybe_attribute { $$ = parse_bitfield ($1, $4, $3); } ; *************** functional_cast: *** 3044,3050 **** ; type_name: ! TYPENAME | SELFNAME | template_type %prec EMPTY ; --- 3066,3072 ---- ; type_name: ! tTYPENAME | SELFNAME | template_type %prec EMPTY ; *************** nested_name_specifier: *** 3068,3074 **** /* Why the @#$%^& do type_name and notype_identifier need to be expanded inline here?!? (jason) */ nested_name_specifier_1: ! TYPENAME SCOPE { if (TREE_CODE ($1) == IDENTIFIER_NODE) { --- 3090,3096 ---- /* Why the @#$%^& do type_name and notype_identifier need to be expanded inline here?!? (jason) */ nested_name_specifier_1: ! tTYPENAME SCOPE { if (TREE_CODE ($1) == IDENTIFIER_NODE) { *************** typename_sub1: *** 3154,3160 **** /* This needs to return a TYPE_DECL for simple names so that we don't forget what name was used. */ typename_sub2: ! TYPENAME SCOPE { if (TREE_CODE ($1) != TYPE_DECL) $$ = lastiddecl; --- 3176,3182 ---- /* This needs to return a TYPE_DECL for simple names so that we don't forget what name was used. */ typename_sub2: ! tTYPENAME SCOPE { if (TREE_CODE ($1) != TYPE_DECL) $$ = lastiddecl; *************** label_colon: *** 3592,3598 **** { finish_label_stmt ($1); } | PTYPENAME ':' { finish_label_stmt ($1); } ! | TYPENAME ':' { finish_label_stmt ($1); } | SELFNAME ':' { finish_label_stmt ($1); } --- 3614,3620 ---- { finish_label_stmt ($1); } | PTYPENAME ':' { finish_label_stmt ($1); } ! | tTYPENAME ':' { finish_label_stmt ($1); } | SELFNAME ':' { finish_label_stmt ($1); } diff -Nrc3pad gcc-3.2/gcc/cp/pt.c gcc-3.2.1/gcc/cp/pt.c *** gcc-3.2/gcc/cp/pt.c Mon Jul 8 15:09:44 2002 --- gcc-3.2.1/gcc/cp/pt.c Fri Oct 11 22:42:18 2002 *************** convert_template_argument (parm, arg, ar *** 3430,3435 **** --- 3430,3445 ---- val, t); return error_mark_node; } + + /* In order to avoid all sorts of complications, we do + not allow variably-modified types as template + arguments. */ + if (variably_modified_type_p (val)) + { + error ("template-argument `%T' is a variably modified type", + val); + return error_mark_node; + } } } } *************** tsubst_decl (t, args, type, complain) *** 6079,6084 **** --- 6089,6096 ---- } r = copy_decl (t); + if (TREE_CODE (r) == VAR_DECL) + type = complete_type (type); TREE_TYPE (r) = type; c_apply_type_quals_to_decl (cp_type_quals (type), r); DECL_CONTEXT (r) = ctx; *************** tsubst_decl (t, args, type, complain) *** 6115,6120 **** --- 6127,6134 ---- TREE_CHAIN (r) = NULL_TREE; if (TREE_CODE (r) == VAR_DECL && VOID_TYPE_P (type)) cp_error_at ("instantiation of `%D' as type `%T'", r, type); + /* Compute the size, alignment, etc. of R. */ + layout_decl (r, 0); } break; *************** tsubst_expr (t, args, complain, in_decl) *** 7374,7382 **** decl = tsubst (decl, args, complain, in_decl); if (decl != error_mark_node) { - if (TREE_CODE (decl) != TYPE_DECL) - /* Make sure the type is instantiated now. */ - complete_type (TREE_TYPE (decl)); if (init) DECL_INITIAL (decl) = error_mark_node; /* By marking the declaration as instantiated, we avoid --- 7388,7393 ---- *************** tsubst_expr (t, args, complain, in_decl) *** 7386,7404 **** do. */ if (TREE_CODE (decl) == VAR_DECL) DECL_TEMPLATE_INSTANTIATED (decl) = 1; ! maybe_push_decl (decl); ! if (DECL_PRETTY_FUNCTION_P (decl)) { ! /* For __PRETTY_FUNCTION__ we have to adjust the ! initializer. */ ! const char *const name ! = (*decl_printable_name) (current_function_decl, 2); ! init = cp_fname_init (name); ! TREE_TYPE (decl) = TREE_TYPE (init); } - else - init = tsubst_expr (init, args, complain, in_decl); - cp_finish_decl (decl, init, NULL_TREE, 0); } } --- 7397,7422 ---- do. */ if (TREE_CODE (decl) == VAR_DECL) DECL_TEMPLATE_INSTANTIATED (decl) = 1; ! if (TREE_CODE (decl) == VAR_DECL ! && ANON_AGGR_TYPE_P (TREE_TYPE (decl))) ! /* Anonymous aggregates are a special case. */ ! finish_anon_union (decl); ! else { ! maybe_push_decl (decl); ! if (DECL_PRETTY_FUNCTION_P (decl)) ! { ! /* For __PRETTY_FUNCTION__ we have to adjust the ! initializer. */ ! const char *const name ! = (*decl_printable_name) (current_function_decl, 2); ! init = cp_fname_init (name); ! TREE_TYPE (decl) = TREE_TYPE (init); ! } ! else ! init = tsubst_expr (init, args, complain, in_decl); ! cp_finish_decl (decl, init, NULL_TREE, 0); } } } *************** tsubst_initializer_list (t, argvec) *** 10274,10281 **** else init = convert_from_reference (init); ! *p = build_tree_list (decl, init); ! p = &TREE_CHAIN (*p); } return first; } --- 10292,10301 ---- else init = convert_from_reference (init); ! *p = expand_member_init (current_class_ref, decl, ! init ? init : void_type_node); ! if (*p) ! p = &TREE_CHAIN (*p); } return first; } diff -Nrc3pad gcc-3.2/gcc/cp/rtti.c gcc-3.2.1/gcc/cp/rtti.c *** gcc-3.2/gcc/cp/rtti.c Fri Jul 26 23:22:59 2002 --- gcc-3.2.1/gcc/cp/rtti.c Mon Nov 11 12:42:13 2002 *************** unemitted_tinfo_decl_p (t, data) *** 1413,1423 **** TREE_CODE (t) == VAR_DECL /* whos name points back to itself */ && IDENTIFIER_GLOBAL_VALUE (DECL_NAME (t)) == t ! /* whos name's type is non-null */ && TREE_TYPE (DECL_NAME (t)) ! /* and whos type is a struct */ && TREE_CODE (TREE_TYPE (t)) == RECORD_TYPE ! /* with a first field of our pseudo type info */ && TREE_TYPE (TYPE_FIELDS (TREE_TYPE (t))) == ti_desc_type_node) return 1; return 0; --- 1413,1425 ---- TREE_CODE (t) == VAR_DECL /* whos name points back to itself */ && IDENTIFIER_GLOBAL_VALUE (DECL_NAME (t)) == t ! /* whose name's type is non-null */ && TREE_TYPE (DECL_NAME (t)) ! /* and whose type is a struct */ && TREE_CODE (TREE_TYPE (t)) == RECORD_TYPE ! /* with a field */ ! && TYPE_FIELDS (TREE_TYPE (t)) ! /* which is our pseudo type info */ && TREE_TYPE (TYPE_FIELDS (TREE_TYPE (t))) == ti_desc_type_node) return 1; return 0; diff -Nrc3pad gcc-3.2/gcc/cp/search.c gcc-3.2.1/gcc/cp/search.c *** gcc-3.2/gcc/cp/search.c Thu Apr 18 13:59:00 2002 --- gcc-3.2.1/gcc/cp/search.c Fri Aug 23 12:00:42 2002 *************** static tree dfs_push_decls PARAMS ((tree *** 100,106 **** static tree dfs_unuse_fields PARAMS ((tree, void *)); static tree add_conversions PARAMS ((tree, void *)); static int covariant_return_p PARAMS ((tree, tree)); - static int check_final_overrider PARAMS ((tree, tree)); static int look_for_overrides_r PARAMS ((tree, tree)); static struct search_level *push_search_level PARAMS ((struct stack_level *, struct obstack *)); --- 100,105 ---- *************** covariant_return_p (brettype, drettype) *** 1800,1806 **** /* Check that virtual overrider OVERRIDER is acceptable for base function BASEFN. Issue diagnostic, and return zero, if unacceptable. */ ! static int check_final_overrider (overrider, basefn) tree overrider, basefn; { --- 1799,1805 ---- /* Check that virtual overrider OVERRIDER is acceptable for base function BASEFN. Issue diagnostic, and return zero, if unacceptable. */ ! int check_final_overrider (overrider, basefn) tree overrider, basefn; { diff -Nrc3pad gcc-3.2/gcc/cp/semantics.c gcc-3.2.1/gcc/cp/semantics.c *** gcc-3.2/gcc/cp/semantics.c Wed Apr 17 01:44:01 2002 --- gcc-3.2.1/gcc/cp/semantics.c Tue Oct 29 21:12:36 2002 *************** finish_alignof (t) *** 2117,2123 **** if (processing_template_decl) return build_min_nt (ALIGNOF_EXPR, t); ! return TYPE_P (t) ? c_alignof (t) : c_alignof_expr (t); } /* Generate RTL for the statement T, and its substatements, and any --- 2117,2123 ---- if (processing_template_decl) return build_min_nt (ALIGNOF_EXPR, t); ! return TYPE_P (t) ? c_alignof (complete_type (t)) : c_alignof_expr (t); } /* Generate RTL for the statement T, and its substatements, and any diff -Nrc3pad gcc-3.2/gcc/cp/spew.c gcc-3.2.1/gcc/cp/spew.c *** gcc-3.2/gcc/cp/spew.c Mon Feb 4 08:55:43 2002 --- gcc-3.2.1/gcc/cp/spew.c Wed Oct 23 21:56:54 2002 *************** static SPEW_INLINE int read_process_iden *** 115,120 **** --- 115,121 ---- static SPEW_INLINE void feed_input PARAMS ((struct unparsed_text *)); static SPEW_INLINE void snarf_block PARAMS ((const char *, int)); static tree snarf_defarg PARAMS ((void)); + static void snarf_parenthesized_expression PARAMS ((const char *, int)); static int frob_id PARAMS ((int, int, tree *)); /* The list of inline functions being held off until we reach the end of *************** static enum cpp_ttype last_token; *** 141,150 **** static tree last_token_id; /* From lex.c: */ ! /* the declaration found for the last IDENTIFIER token read in. ! yylex must look this up to detect typedefs, which get token type TYPENAME, ! so it is left around in case the identifier is not a typedef but is ! used in a context which makes it a reference to a variable. */ extern tree lastiddecl; /* let our brains leak out here too */ extern int yychar; /* the lookahead symbol */ extern YYSTYPE yylval; /* the semantic value of the */ --- 142,152 ---- static tree last_token_id; /* From lex.c: */ ! /* the declaration found for the last IDENTIFIER token read in. yylex ! must look this up to detect typedefs, which get token type ! tTYPENAME, so it is left around in case the identifier is not a ! typedef but is used in a context which makes it a reference to a ! variable. */ extern tree lastiddecl; /* let our brains leak out here too */ extern int yychar; /* the lookahead symbol */ extern YYSTYPE yylval; /* the semantic value of the */ *************** add_token (t) *** 483,491 **** memcpy (t, feed->input->pos, sizeof (struct token)); return (feed->input->pos++)->yychar; } ! ! memcpy (t, &Teosi, sizeof (struct token)); ! return END_OF_SAVED_INPUT; } /* Shift the next token onto the fifo. */ --- 485,492 ---- memcpy (t, feed->input->pos, sizeof (struct token)); return (feed->input->pos++)->yychar; } ! ! return 0; } /* Shift the next token onto the fifo. */ *************** identifier_type (decl) *** 628,638 **** if (t && t == decl) return SELFNAME; ! return TYPENAME; } /* token[0] == AGGR (struct/union/enum) ! Thus, token[1] is either a TYPENAME or a TYPENAME_DEFN. If token[2] == '{' or ':' then it's TYPENAME_DEFN. It's also a definition if it's a forward declaration (as in 'struct Foo;') which we can tell if token[2] == ';' *and* token[-1] != FRIEND or NEW. */ --- 629,639 ---- if (t && t == decl) return SELFNAME; ! return tTYPENAME; } /* token[0] == AGGR (struct/union/enum) ! Thus, token[1] is either a tTYPENAME or a TYPENAME_DEFN. If token[2] == '{' or ':' then it's TYPENAME_DEFN. It's also a definition if it's a forward declaration (as in 'struct Foo;') which we can tell if token[2] == ';' *and* token[-1] != FRIEND or NEW. */ *************** do_aggr () *** 644,650 **** scan_tokens (2); yc1 = nth_token (1)->yychar; ! if (yc1 != TYPENAME && yc1 != IDENTIFIER && yc1 != PTYPENAME) return; yc2 = nth_token (2)->yychar; if (yc2 == ';') --- 645,651 ---- scan_tokens (2); yc1 = nth_token (1)->yychar; ! if (yc1 != tTYPENAME && yc1 != IDENTIFIER && yc1 != PTYPENAME) return; yc2 = nth_token (2)->yychar; if (yc2 == ';') *************** do_aggr () *** 659,665 **** switch (yc1) { ! case TYPENAME: nth_token (1)->yychar = TYPENAME_DEFN; break; case PTYPENAME: --- 660,666 ---- switch (yc1) { ! case tTYPENAME: nth_token (1)->yychar = TYPENAME_DEFN; break; case PTYPENAME: *************** yylex () *** 757,763 **** break; } case IDENTIFIER_DEFN: ! case TYPENAME: case TYPENAME_DEFN: case PTYPENAME: case PTYPENAME_DEFN: --- 758,764 ---- break; } case IDENTIFIER_DEFN: ! case tTYPENAME: case TYPENAME_DEFN: case PTYPENAME: case PTYPENAME_DEFN: *************** frob_id (yyc, peek, idp) *** 897,903 **** yyc = identifier_type (trrr); switch(yyc) { ! case TYPENAME: case SELFNAME: case NSNAME: case PTYPENAME: --- 898,904 ---- yyc = identifier_type (trrr); switch(yyc) { ! case tTYPENAME: case SELFNAME: case NSNAME: case PTYPENAME: *************** process_next_inline (i) *** 1031,1036 **** --- 1032,1069 ---- } + /* Accumulate the tokens that make up a parenthesized expression in T, + having already read the opening parenthesis. */ + + static void + snarf_parenthesized_expression (starting_file, starting_line) + const char *starting_file; + int starting_line; + { + int yyc; + int level = 1; + + while (1) + { + size_t point; + + point = obstack_object_size (&inline_text_obstack); + obstack_blank (&inline_text_obstack, sizeof (struct token)); + yyc = add_token ((struct token *) + (obstack_base (&inline_text_obstack) + point)); + if (yyc == '(') + ++level; + else if (yyc == ')' && --level == 0) + break; + else if (yyc == 0) + { + error_with_file_and_line (starting_file, starting_line, + "end of file read inside definition"); + break; + } + } + } + /* Subroutine of snarf_method, deals with actual absorption of the block. */ static SPEW_INLINE void *************** snarf_block (starting_file, starting_lin *** 1113,1118 **** --- 1146,1153 ---- else if (look_for_semicolon && blev == 0) break; } + else if (yyc == '(' && blev == 0) + snarf_parenthesized_expression (starting_file, starting_line); else if (yyc == 0) { error_with_file_and_line (starting_file, starting_line, *************** snarf_method (decl) *** 1131,1142 **** --- 1166,1192 ---- int starting_lineno = lineno; const char *starting_filename = input_filename; size_t len; + int i; struct unparsed_text *meth; /* Leave room for the header, then absorb the block. */ obstack_blank (&inline_text_obstack, sizeof (struct unparsed_text)); snarf_block (starting_filename, starting_lineno); + /* Add three END_OF_SAVED_INPUT tokens. We used to provide an + infinite stream of END_OF_SAVED_INPUT tokens -- but that can + cause the compiler to get stuck in an infinite loop when + encountering invalid code. We need more than one because the + parser sometimes peeks ahead several tokens. */ + for (i = 0; i < 3; ++i) + { + size_t point = obstack_object_size (&inline_text_obstack); + obstack_blank (&inline_text_obstack, sizeof (struct token)); + memcpy ((struct token *) + (obstack_base (&inline_text_obstack) + point), + &Teosi, + sizeof (struct token)); + } len = obstack_object_size (&inline_text_obstack); meth = (struct unparsed_text *) obstack_finish (&inline_text_obstack); *************** snarf_defarg () *** 1187,1192 **** --- 1237,1243 ---- size_t point; size_t len; struct unparsed_text *buf; + int i; tree arg; obstack_blank (&inline_text_obstack, sizeof (struct unparsed_text)); *************** snarf_defarg () *** 1216,1221 **** --- 1267,1286 ---- push_token ((struct token *) (obstack_base (&inline_text_obstack) + point)); /* This is the documented way to shrink a growing obstack block. */ obstack_blank (&inline_text_obstack, - (int) sizeof (struct token)); + /* Add three END_OF_SAVED_INPUT tokens. We used to provide an + infinite stream of END_OF_SAVED_INPUT tokens -- but that can + cause the compiler to get stuck in an infinite loop when + encountering invalid code. We need more than one because the + parser sometimes peeks ahead several tokens. */ + for (i = 0; i < 3; ++i) + { + point = obstack_object_size (&inline_text_obstack); + obstack_blank (&inline_text_obstack, sizeof (struct token)); + memcpy ((struct token *) + (obstack_base (&inline_text_obstack) + point), + &Teosi, + sizeof (struct token)); + } done: len = obstack_object_size (&inline_text_obstack); *************** debug_yychar (yy) *** 1448,1454 **** { if (yy<256) fprintf (stderr, "->%d < %c >\n", lineno, yy); ! else if (yy == IDENTIFIER || yy == TYPENAME) { const char *id; if (TREE_CODE (yylval.ttype) == IDENTIFIER_NODE) --- 1513,1519 ---- { if (yy<256) fprintf (stderr, "->%d < %c >\n", lineno, yy); ! else if (yy == IDENTIFIER || yy == tTYPENAME) { const char *id; if (TREE_CODE (yylval.ttype) == IDENTIFIER_NODE) diff -Nrc3pad gcc-3.2/gcc/cp/tree.c gcc-3.2.1/gcc/cp/tree.c *** gcc-3.2/gcc/cp/tree.c Thu Jul 11 21:13:08 2002 --- gcc-3.2.1/gcc/cp/tree.c Fri Oct 25 22:11:16 2002 *************** pod_type_p (t) *** 1903,1921 **** int zero_init_p (t) ! tree t; { ! t = strip_array_types (t); ! ! /* NULL pointers to data members are initialized with -1. */ ! if (TYPE_PTRMEM_P (t)) ! return 0; ! /* Classes that contain types that can't be zero-initialized, cannot ! be zero-initialized themselves. */ ! if (CLASS_TYPE_P (t) && CLASSTYPE_NON_ZERO_INIT_P (t)) ! return 0; return 1; } --- 1903,1921 ---- int zero_init_p (t) ! tree t ATTRIBUTE_UNUSED; { ! /* This is not a correct implementation of this function. As a ! result, pointers-to-members will not be correctly ! zero-initialized. ! However, using a correct implementation of this function results ! in many other failures. Correcting these other failures required ! a major infrastructure improvement, which was undertaken in the ! GCC 3.3 source base. + In order to reduce risk, these changes were not ported to the GCC + 3.2 source base. */ return 1; } diff -Nrc3pad gcc-3.2/gcc/cp/typeck.c gcc-3.2.1/gcc/cp/typeck.c *** gcc-3.2/gcc/cp/typeck.c Thu Jun 20 23:25:11 2002 --- gcc-3.2.1/gcc/cp/typeck.c Fri Nov 1 13:12:24 2002 *************** build_x_unary_op (code, xarg) *** 4167,4172 **** --- 4167,4191 ---- } if (code == ADDR_EXPR) { + /* A pointer to member-function can be formed only by saying + &X::mf. */ + if (!flag_ms_extensions && TREE_CODE (TREE_TYPE (xarg)) == METHOD_TYPE + && (TREE_CODE (xarg) != OFFSET_REF || !PTRMEM_OK_P (xarg))) + { + if (TREE_CODE (xarg) != OFFSET_REF) + { + error ("invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id.", + xarg); + return error_mark_node; + } + else + { + error ("parenthesis around '%E' cannot be used to form a pointer-to-member-function", + xarg); + PTRMEM_OK_P (xarg) = 1; + } + } + if (TREE_CODE (xarg) == OFFSET_REF) { ptrmem = PTRMEM_OK_P (xarg); *************** build_modify_expr (lhs, modifycode, rhs) *** 5450,5456 **** so the code to compute it is only emitted once. */ tree cond; ! rhs = save_expr (rhs); /* Check this here to avoid odd errors when trying to convert a throw to the type of the COND_EXPR. */ --- 5469,5478 ---- so the code to compute it is only emitted once. */ tree cond; ! if (lvalue_p (rhs)) ! rhs = stabilize_reference (rhs); ! else ! rhs = save_expr (rhs); /* Check this here to avoid odd errors when trying to convert a throw to the type of the COND_EXPR. */ diff -Nrc3pad gcc-3.2/gcc/cp/typeck2.c gcc-3.2.1/gcc/cp/typeck2.c *** gcc-3.2/gcc/cp/typeck2.c Tue Jul 2 15:50:35 2002 --- gcc-3.2.1/gcc/cp/typeck2.c Thu Oct 31 00:02:35 2002 *************** process_init_constructor (type, init, el *** 863,870 **** { if (TREE_READONLY (field)) error ("uninitialized const member `%D'", field); ! else if (TYPE_LANG_SPECIFIC (TREE_TYPE (field)) ! && CLASSTYPE_READONLY_FIELDS_NEED_INIT (TREE_TYPE (field))) error ("member `%D' with uninitialized const fields", field); else if (TREE_CODE (TREE_TYPE (field)) == REFERENCE_TYPE) --- 863,869 ---- { if (TREE_READONLY (field)) error ("uninitialized const member `%D'", field); ! else if (CLASSTYPE_READONLY_FIELDS_NEED_INIT (TREE_TYPE (field))) error ("member `%D' with uninitialized const fields", field); else if (TREE_CODE (TREE_TYPE (field)) == REFERENCE_TYPE) *************** process_init_constructor (type, init, el *** 976,981 **** --- 975,982 ---- return error_mark_node; result = build (CONSTRUCTOR, type, NULL_TREE, nreverse (members)); + if (TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type) == NULL_TREE) + complete_array_type (type, result, /*do_default=*/0); if (init) TREE_HAS_CONSTRUCTOR (result) = TREE_HAS_CONSTRUCTOR (init); if (allconstant) TREE_CONSTANT (result) = 1; diff -Nrc3pad gcc-3.2/gcc/cppfiles.c gcc-3.2.1/gcc/cppfiles.c *** gcc-3.2/gcc/cppfiles.c Fri Jan 18 13:40:28 2002 --- gcc-3.2.1/gcc/cppfiles.c Thu Aug 15 19:46:35 2002 *************** stack_include_file (pfile, inc) *** 310,318 **** sysp = MAX ((pfile->map ? pfile->map->sysp : 0), (inc->foundhere ? inc->foundhere->sysp : 0)); ! /* For -M, add the file to the dependencies on its first inclusion. */ ! if (CPP_OPTION (pfile, print_deps) > sysp && !inc->include_count) ! deps_add_dep (pfile->deps, inc->name); /* Not in cache? */ if (! inc->buffer) --- 310,321 ---- sysp = MAX ((pfile->map ? pfile->map->sysp : 0), (inc->foundhere ? inc->foundhere->sysp : 0)); ! /* Add the file to the dependencies on its first inclusion. */ ! if (CPP_OPTION (pfile, print_deps) > !!sysp && !inc->include_count) ! { ! if (pfile->buffer || CPP_OPTION (pfile, deps_ignore_main_file) == 0) ! deps_add_dep (pfile->deps, inc->name); ! } /* Not in cache? */ if (! inc->buffer) diff -Nrc3pad gcc-3.2/gcc/cppinit.c gcc-3.2.1/gcc/cppinit.c *** gcc-3.2/gcc/cppinit.c Fri May 24 09:26:48 2002 --- gcc-3.2.1/gcc/cppinit.c Sun Oct 6 08:21:21 2002 *************** static void mark_named_operators PARAMS *** 103,111 **** static void append_include_chain PARAMS ((cpp_reader *, char *, int, int)); static struct search_path * remove_dup_dir PARAMS ((cpp_reader *, struct search_path *)); static struct search_path * remove_dup_dirs PARAMS ((cpp_reader *, ! struct search_path *)); static void merge_include_chains PARAMS ((cpp_reader *)); static bool push_include PARAMS ((cpp_reader *, struct pending_option *)); --- 103,115 ---- static void append_include_chain PARAMS ((cpp_reader *, char *, int, int)); static struct search_path * remove_dup_dir PARAMS ((cpp_reader *, + struct search_path *, + struct search_path **)); + static struct search_path * remove_dup_nonsys_dirs PARAMS ((cpp_reader *, + struct search_path **, struct search_path *)); static struct search_path * remove_dup_dirs PARAMS ((cpp_reader *, ! struct search_path **)); static void merge_include_chains PARAMS ((cpp_reader *)); static bool push_include PARAMS ((cpp_reader *, struct pending_option *)); *************** path_include (pfile, list, path) *** 189,195 **** name[q - p] = 0; } ! append_include_chain (pfile, name, path, 0); /* Advance past this name. */ if (*q == 0) --- 193,199 ---- name[q - p] = 0; } ! append_include_chain (pfile, name, path, path == SYSTEM); /* Advance past this name. */ if (*q == 0) *************** append_include_chain (pfile, dir, path, *** 272,326 **** } /* Handle a duplicated include path. PREV is the link in the chain ! before the duplicate. The duplicate is removed from the chain and ! freed. Returns PREV. */ static struct search_path * ! remove_dup_dir (pfile, prev) cpp_reader *pfile; struct search_path *prev; { ! struct search_path *cur = prev->next; if (CPP_OPTION (pfile, verbose)) fprintf (stderr, _("ignoring duplicate directory \"%s\"\n"), cur->name); - prev->next = cur->next; free ((PTR) cur->name); free (cur); return prev; } /* Remove duplicate directories from a chain. Returns the tail of the chain, or NULL if the chain is empty. This algorithm is quadratic in the number of -I switches, which is acceptable since there aren't usually that many of them. */ static struct search_path * ! remove_dup_dirs (pfile, head) cpp_reader *pfile; ! struct search_path *head; { struct search_path *prev = NULL, *cur, *other; ! for (cur = head; cur; cur = cur->next) { ! for (other = head; other != cur; other = other->next) if (INO_T_EQ (cur->ino, other->ino) && cur->dev == other->dev) { ! if (cur->sysp && !other->sysp) ! { ! cpp_warning (pfile, ! "changing search order for system directory \"%s\"", ! cur->name); ! if (strcmp (cur->name, other->name)) ! cpp_warning (pfile, ! " as it is the same as non-system directory \"%s\"", ! other->name); ! else ! cpp_warning (pfile, ! " as it has already been specified as a non-system directory"); ! } ! cur = remove_dup_dir (pfile, prev); break; } prev = cur; --- 276,373 ---- } /* Handle a duplicated include path. PREV is the link in the chain ! before the duplicate, or NULL if the duplicate is at the head of ! the chain. The duplicate is removed from the chain and freed. ! Returns PREV. */ static struct search_path * ! remove_dup_dir (pfile, prev, head_ptr) cpp_reader *pfile; struct search_path *prev; + struct search_path **head_ptr; { ! struct search_path *cur; ! ! if (prev != NULL) ! { ! cur = prev->next; ! prev->next = cur->next; ! } ! else ! { ! cur = *head_ptr; ! *head_ptr = cur->next; ! } if (CPP_OPTION (pfile, verbose)) fprintf (stderr, _("ignoring duplicate directory \"%s\"\n"), cur->name); free ((PTR) cur->name); free (cur); return prev; } + /* Remove duplicate non-system directories for which there is an equivalent + system directory later in the chain. The range for removal is between + *HEAD_PTR and END. Returns the directory before END, or NULL if none. + This algorithm is quadratic in the number of system directories, which is + acceptable since there aren't usually that many of them. */ + static struct search_path * + remove_dup_nonsys_dirs (pfile, head_ptr, end) + cpp_reader *pfile; + struct search_path **head_ptr; + struct search_path *end; + { + int sysdir = 0; + struct search_path *prev = NULL, *cur, *other; + + for (cur = *head_ptr; cur; cur = cur->next) + { + if (cur->sysp) + { + sysdir = 1; + for (other = *head_ptr, prev = NULL; + other != end; + other = other ? other->next : *head_ptr) + { + if (!other->sysp + && INO_T_EQ (cur->ino, other->ino) + && cur->dev == other->dev) + { + other = remove_dup_dir (pfile, prev, head_ptr); + if (CPP_OPTION (pfile, verbose)) + fprintf (stderr, + _(" as it is a non-system directory that duplicates a system directory\n")); + } + prev = other; + } + } + } + + if (!sysdir) + for (cur = *head_ptr; cur != end; cur = cur->next) + prev = cur; + + return prev; + } + /* Remove duplicate directories from a chain. Returns the tail of the chain, or NULL if the chain is empty. This algorithm is quadratic in the number of -I switches, which is acceptable since there aren't usually that many of them. */ static struct search_path * ! remove_dup_dirs (pfile, head_ptr) cpp_reader *pfile; ! struct search_path **head_ptr; { struct search_path *prev = NULL, *cur, *other; ! for (cur = *head_ptr; cur; cur = cur->next) { ! for (other = *head_ptr; other != cur; other = other->next) if (INO_T_EQ (cur->ino, other->ino) && cur->dev == other->dev) { ! cur = remove_dup_dir (pfile, prev, head_ptr); break; } prev = cur; *************** merge_include_chains (pfile) *** 358,385 **** else brack = systm; ! /* This is a bit tricky. First we drop dupes from the quote-include ! list. Then we drop dupes from the bracket-include list. ! Finally, if qtail and brack are the same directory, we cut out ! brack and move brack up to point to qtail. We can't just merge the lists and then uniquify them because then we may lose directories from the <> search path that should ! be there; consider -Ifoo -Ibar -I- -Ifoo -Iquux. It is however safe to treat -Ibar -Ifoo -I- -Ifoo -Iquux as if written -Ibar -I- -Ifoo -Iquux. */ ! remove_dup_dirs (pfile, brack); ! qtail = remove_dup_dirs (pfile, quote); if (quote) { qtail->next = brack; /* If brack == qtail, remove brack as it's simpler. */ ! if (brack && INO_T_EQ (qtail->ino, brack->ino) && qtail->dev == brack->dev) ! brack = remove_dup_dir (pfile, qtail); } else quote = brack; --- 405,437 ---- else brack = systm; ! /* This is a bit tricky. First we drop non-system dupes of system ! directories from the merged bracket-include list. Next we drop ! dupes from the bracket and quote include lists. Then we drop ! non-system dupes from the merged quote-include list. Finally, ! if qtail and brack are the same directory, we cut out brack and ! move brack up to point to qtail. We can't just merge the lists and then uniquify them because then we may lose directories from the <> search path that should ! be there; consider -Ifoo -Ibar -I- -Ifoo -Iquux. It is however safe to treat -Ibar -Ifoo -I- -Ifoo -Iquux as if written -Ibar -I- -Ifoo -Iquux. */ ! remove_dup_nonsys_dirs (pfile, &brack, systm); ! remove_dup_dirs (pfile, &brack); if (quote) { + qtail = remove_dup_dirs (pfile, "e); qtail->next = brack; + qtail = remove_dup_nonsys_dirs (pfile, "e, brack); + /* If brack == qtail, remove brack as it's simpler. */ ! if (qtail && brack && INO_T_EQ (qtail->ino, brack->ino) && qtail->dev == brack->dev) ! brack = remove_dup_dir (pfile, qtail, "e); } else quote = brack; *************** struct lang_flags *** 396,402 **** char objc; char cplusplus; char extended_numbers; ! char trigraphs; char dollars_in_ident; char cplusplus_comments; char digraphs; --- 448,454 ---- char objc; char cplusplus; char extended_numbers; ! char std; char dollars_in_ident; char cplusplus_comments; char digraphs; *************** struct lang_flags *** 404,410 **** /* ??? Enable $ in identifiers in assembly? */ static const struct lang_flags lang_defaults[] = ! { /* c99 objc c++ xnum trig dollar c++comm digr */ /* GNUC89 */ { 0, 0, 0, 1, 0, 1, 1, 1 }, /* GNUC99 */ { 1, 0, 0, 1, 0, 1, 1, 1 }, /* STDC89 */ { 0, 0, 0, 0, 1, 0, 0, 0 }, --- 456,462 ---- /* ??? Enable $ in identifiers in assembly? */ static const struct lang_flags lang_defaults[] = ! { /* c99 objc c++ xnum std dollar c++comm digr */ /* GNUC89 */ { 0, 0, 0, 1, 0, 1, 1, 1 }, /* GNUC99 */ { 1, 0, 0, 1, 0, 1, 1, 1 }, /* STDC89 */ { 0, 0, 0, 0, 1, 0, 0, 0 }, *************** set_lang (pfile, lang) *** 431,437 **** CPP_OPTION (pfile, objc) = l->objc; CPP_OPTION (pfile, cplusplus) = l->cplusplus; CPP_OPTION (pfile, extended_numbers) = l->extended_numbers; ! CPP_OPTION (pfile, trigraphs) = l->trigraphs; CPP_OPTION (pfile, dollars_in_ident) = l->dollars_in_ident; CPP_OPTION (pfile, cplusplus_comments) = l->cplusplus_comments; CPP_OPTION (pfile, digraphs) = l->digraphs; --- 483,490 ---- CPP_OPTION (pfile, objc) = l->objc; CPP_OPTION (pfile, cplusplus) = l->cplusplus; CPP_OPTION (pfile, extended_numbers) = l->extended_numbers; ! CPP_OPTION (pfile, std) = l->std; ! CPP_OPTION (pfile, trigraphs) = l->std; CPP_OPTION (pfile, dollars_in_ident) = l->dollars_in_ident; CPP_OPTION (pfile, cplusplus_comments) = l->cplusplus_comments; CPP_OPTION (pfile, digraphs) = l->digraphs; *************** init_standard_includes (pfile) *** 847,853 **** && !CPP_OPTION (pfile, no_standard_cplusplus_includes))) { /* Does this dir start with the prefix? */ ! if (!memcmp (p->fname, default_prefix, default_len)) { /* Yes; change prefix and add to search list. */ int flen = strlen (p->fname); --- 900,906 ---- && !CPP_OPTION (pfile, no_standard_cplusplus_includes))) { /* Does this dir start with the prefix? */ ! if (!strncmp (p->fname, default_prefix, default_len)) { /* Yes; change prefix and add to search list. */ int flen = strlen (p->fname); *************** parse_option (input) *** 1295,1301 **** md = (mn + mx) / 2; opt_len = cl_options[md].opt_len; ! comp = memcmp (input, cl_options[md].opt_text, opt_len); if (comp > 0) mn = md + 1; --- 1348,1354 ---- md = (mn + mx) / 2; opt_len = cl_options[md].opt_len; ! comp = strncmp (input, cl_options[md].opt_text, opt_len); if (comp > 0) mn = md + 1; *************** parse_option (input) *** 1320,1326 **** for (; mn < (unsigned int) N_OPTS; mn++) { opt_len = cl_options[mn].opt_len; ! if (memcmp (input, cl_options[mn].opt_text, opt_len)) break; if (input[opt_len] == '\0') return mn; --- 1373,1379 ---- for (; mn < (unsigned int) N_OPTS; mn++) { opt_len = cl_options[mn].opt_len; ! if (strncmp (input, cl_options[mn].opt_text, opt_len)) break; if (input[opt_len] == '\0') return mn; *************** init_dependency_output (pfile) *** 1880,1886 **** { spec = getenv ("SUNPRO_DEPENDENCIES"); if (spec) ! CPP_OPTION (pfile, print_deps) = 2; else return; } --- 1933,1942 ---- { spec = getenv ("SUNPRO_DEPENDENCIES"); if (spec) ! { ! CPP_OPTION (pfile, print_deps) = 2; ! CPP_OPTION (pfile, deps_ignore_main_file) = 1; ! } else return; } diff -Nrc3pad gcc-3.2/gcc/cpplib.c gcc-3.2.1/gcc/cpplib.c *** gcc-3.2/gcc/cpplib.c Thu Mar 14 19:24:56 2002 --- gcc-3.2.1/gcc/cpplib.c Sun Oct 6 09:12:19 2002 *************** run_directive (pfile, dir_no, buf, count *** 406,417 **** --- 406,422 ---- { cpp_push_buffer (pfile, (const U_CHAR *) buf, count, /* from_stage3 */ true, 1); + /* Disgusting hack. */ + if (dir_no == T_PRAGMA) + pfile->buffer->inc = pfile->buffer->prev->inc; start_directive (pfile); /* We don't want a leading # to be interpreted as a directive. */ pfile->buffer->saved_flags = 0; pfile->directive = &dtable[dir_no]; (void) (*pfile->directive->handler) (pfile); end_directive (pfile, 1); + if (dir_no == T_PRAGMA) + pfile->buffer->inc = NULL; _cpp_pop_buffer (pfile); } *************** destringize_and_run (pfile, in) *** 1219,1224 **** --- 1224,1232 ---- { const unsigned char *src, *limit; char *dest, *result; + cpp_context saved_context; + cpp_context *saved_cur_context; + unsigned int saved_line; dest = result = alloca (in->len + 1); for (src = in->text, limit = src + in->len; src < limit;) *************** destringize_and_run (pfile, in) *** 1230,1236 **** --- 1238,1277 ---- } *dest = '\0'; + /* FIXME. All this saving is a horrible kludge to handle the case + when we're in a macro expansion. + + A better strategy it to not convert _Pragma to #pragma if doing + preprocessed output, but to just pass it through as-is, unless it + is a CPP pragma in which case is should be processed normally. + When compiling the preprocessed output the _Pragma should be + handled. This will be become necessary when we move to + line-at-a-time lexing since we will be macro-expanding the line + before outputting / compiling it. */ + saved_line = pfile->line; + saved_context = pfile->base_context; + saved_cur_context = pfile->context; + pfile->context = &pfile->base_context; run_directive (pfile, T_PRAGMA, result, dest - result); + pfile->context = saved_cur_context; + pfile->base_context = saved_context; + pfile->line = saved_line; + + /* See above comment. For the moment, we'd like + + token1 _Pragma ("foo") token2 + + to be output as + + token1 + # 7 "file.c" + #pragma foo + # 7 "file.c" + token2 + + Getting the line markers is a little tricky. */ + if (pfile->cb.line_change) + (*pfile->cb.line_change) (pfile, pfile->cur_token, false); } /* Handle the _Pragma operator. */ *************** _cpp_do__Pragma (pfile) *** 1240,1264 **** { const cpp_token *string = get__Pragma_string (pfile); ! if (!string) ! cpp_error (pfile, "_Pragma takes a parenthesized string literal"); else ! { ! /* Ideally, we'd like ! token1 _Pragma ("foo") token2 ! to be output as ! token1 ! # 7 "file.c" ! #pragma foo ! # 7 "file.c" ! token2 ! Getting these correct line markers is a little tricky. */ ! ! unsigned int orig_line = pfile->line; ! destringize_and_run (pfile, &string->val.str); ! pfile->line = orig_line; ! pfile->buffer->saved_flags = BOL; ! } } /* Just ignore #sccs, on systems where we define it at all. */ --- 1281,1290 ---- { const cpp_token *string = get__Pragma_string (pfile); ! if (string) ! destringize_and_run (pfile, &string->val.str); else ! cpp_error (pfile, "_Pragma takes a parenthesized string literal"); } /* Just ignore #sccs, on systems where we define it at all. */ diff -Nrc3pad gcc-3.2/gcc/cpplib.h gcc-3.2.1/gcc/cpplib.h *** gcc-3.2/gcc/cpplib.h Thu Mar 14 19:24:57 2002 --- gcc-3.2.1/gcc/cpplib.h Thu Aug 15 19:46:36 2002 *************** struct cpp_options *** 279,284 **** --- 279,287 ---- /* If true, fopen (deps_file, "a") else fopen (deps_file, "w"). */ unsigned char print_deps_append; + /* If true, no dependency is generated on the main file. */ + unsigned char deps_ignore_main_file; + /* Nonzero means print names of header files (-H). */ unsigned char print_include_names; *************** struct cpp_options *** 335,340 **** --- 338,346 ---- /* Nonzero for the 1999 C Standard, including corrigenda and amendments. */ unsigned char c99; + /* Nonzero if conforming to some particular standard. */ + unsigned char std; + /* Nonzero means give all the error messages the ANSI standard requires. */ unsigned char pedantic; diff -Nrc3pad gcc-3.2/gcc/cppmacro.c gcc-3.2.1/gcc/cppmacro.c *** gcc-3.2/gcc/cppmacro.c Wed May 29 19:26:00 2002 --- gcc-3.2.1/gcc/cppmacro.c Sat Sep 28 00:32:14 2002 *************** stringify_arg (pfile, arg) *** 348,353 **** --- 348,359 ---- } /* Commit the memory, including NUL, and return the token. */ + if ((size_t) (BUFF_LIMIT (pfile->u_buff) - dest) < 1) + { + size_t len_so_far = dest - BUFF_FRONT (pfile->u_buff); + _cpp_extend_buff (pfile, &pfile->u_buff, 1); + dest = BUFF_FRONT (pfile->u_buff) + len_so_far; + } len = dest - BUFF_FRONT (pfile->u_buff); BUFF_FRONT (pfile->u_buff) = dest + 1; return new_string_token (pfile, dest - len, len); *************** collect_args (pfile, node) *** 613,619 **** } if (!error) ! return base_buff; _cpp_release_buff (pfile, base_buff); return NULL; --- 619,638 ---- } if (!error) ! { ! /* GCC has special semantics for , ## b where b is a varargs ! parameter: we remove the comma if b was omitted entirely. ! If b was merely an empty argument, the comma is retained. ! If the macro takes just one (varargs) parameter, then we ! retain the comma only if we are standards conforming. ! ! If FIRST is NULL replace_args () swallows the comma. */ ! if (macro->variadic && (argc < macro->paramc ! || (argc == 1 && args[0].count == 0 ! && !CPP_OPTION (pfile, std)))) ! args[macro->paramc - 1].first = NULL; ! return base_buff; ! } _cpp_release_buff (pfile, base_buff); return NULL; *************** replace_args (pfile, node, args) *** 799,813 **** count = arg->count, from = arg->first; if (dest != first) { - /* GCC has special semantics for , ## b where b is a - varargs parameter: the comma disappears if b was - given no actual arguments (not merely if b is an - empty argument); otherwise the paste flag is removed. */ if (dest[-1]->type == CPP_COMMA && macro->variadic && src->val.arg_no == macro->paramc) { ! if (count == 0) dest--; else paste_flag = dest - 1; --- 818,830 ---- count = arg->count, from = arg->first; if (dest != first) { if (dest[-1]->type == CPP_COMMA && macro->variadic && src->val.arg_no == macro->paramc) { ! /* Swallow a pasted comma if from == NULL, otherwise ! drop the paste flag. */ ! if (from == NULL) dest--; else paste_flag = dest - 1; diff -Nrc3pad gcc-3.2/gcc/dbxout.c gcc-3.2.1/gcc/dbxout.c *** gcc-3.2/gcc/dbxout.c Wed May 1 22:29:25 2002 --- gcc-3.2.1/gcc/dbxout.c Sat Sep 14 00:26:38 2002 *************** dbxout_function_end () *** 396,406 **** --- 396,410 ---- /* By convention, GCC will mark the end of a function with an N_FUN symbol and an empty string. */ + #ifdef DBX_OUTPUT_NFUN + DBX_OUTPUT_NFUN (asmfile, lscope_label_name, current_function_decl); + #else fprintf (asmfile, "%s\"\",%d,0,0,", ASM_STABS_OP, N_FUN); assemble_name (asmfile, lscope_label_name); putc ('-', asmfile); assemble_name (asmfile, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); fprintf (asmfile, "\n"); + #endif } #endif /* DBX_DEBUGGING_INFO */ diff -Nrc3pad gcc-3.2/gcc/doc/c-tree.texi gcc-3.2.1/gcc/doc/c-tree.texi *** gcc-3.2/gcc/doc/c-tree.texi Thu Apr 25 09:34:52 2002 --- gcc-3.2.1/gcc/doc/c-tree.texi Wed Sep 11 16:40:27 2002 *************** Then, if @code{THUNK_VCALL_OFFSET} (an @ *** 1203,1213 **** the adjusted @code{this} pointer must be adjusted again. The complete calculation is given by the following pseudo-code: ! @example this += THUNK_DELTA if (THUNK_VCALL_OFFSET) this += (*((ptrdiff_t **) this))[THUNK_VCALL_OFFSET] ! @end example Finally, the thunk should jump to the location given by @code{DECL_INITIAL}; this will always be an expression for the --- 1203,1213 ---- the adjusted @code{this} pointer must be adjusted again. The complete calculation is given by the following pseudo-code: ! @smallexample this += THUNK_DELTA if (THUNK_VCALL_OFFSET) this += (*((ptrdiff_t **) this))[THUNK_VCALL_OFFSET] ! @end smallexample Finally, the thunk should jump to the location given by @code{DECL_INITIAL}; this will always be an expression for the diff -Nrc3pad gcc-3.2/gcc/doc/compat.texi gcc-3.2.1/gcc/doc/compat.texi *** gcc-3.2/gcc/doc/compat.texi Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/doc/compat.texi Sat Oct 12 00:01:18 2002 *************** *** 0 **** --- 1,156 ---- + @c Copyright (C) 2002 Free Software Foundation, Inc. + @c This is part of the GCC manual. + @c For copying conditions, see the file gcc.texi. + + @node Compatibility + @chapter Binary Compatibility + @cindex binary compatibility + @cindex ABI + @cindex application binary interface + + Binary compatibility encompasses several related concepts: + + @table @dfn + @item application binary interface (ABI) + The set of runtime conventions followed by all of the tools that deal + with binary representations of a program, including compilers, assemblers, + linkers, and language runtime support. + Some ABIs are formal with a written specification, possibly designed + by multiple interested parties. Others are simply the way things are + actually done by a particular set of tools. + + @item ABI conformance + A compiler conforms to an ABI if it generates code that follows all of + the specifications enumerated by that ABI@. + A library conforms to an ABI if it is implemented according to that ABI@. + An application conforms to an ABI if it is built using tools that conform + to that ABI and does not contain source code that specifically changes + behavior specified by the ABI@. + + @item calling conventions + Calling conventions are a subset of an ABI that specify of how arguments + are passed and function results are returned. + + @item interoperability + Different sets of tools are interoperable if they generate files that + can be used in the same program. The set of tools includes compilers, + assemblers, linkers, libraries, header files, startup files, and debuggers. + Binaries produced by different sets of tools are not interoperable unless + they implement the same ABI@. This applies to different versions of the + same tools as well as tools from different vendors. + + @item intercallability + Whether a function in a binary built by one set of tools can call a + function in a binary built by a different set of tools is a subset + of interoperability. + + @item implementation-defined features + Language standards include lists of implementation-defined features whose + behavior can vary from one implementation to another. Some of these + features are normally covered by a platform's ABI and others are not. + The features that are not covered by an ABI generally affect how a + program behaves, but not intercallability. + + @item compatibility + Conformance to the same ABI and the same behavior of implementation-defined + features are both relevant for compatibility. + @end table + + The application binary interface implemented by a C or C++ compiler + affects code generation and runtime support for: + + @itemize @bullet + @item + size and alignment of data types + @item + layout of structured types + @item + calling conventions + @item + register usage conventions + @item + interfaces for runtime arithmetic support + @item + object file formats + @end itemize + + In addition, the application binary interface implemented by a C++ compiler + affects code generation and runtime support for: + @itemize @bullet + @item + name mangling + @item + exception handling + @item + invoking constructors and destructors + @item + layout, alignment, and padding of classes + @item + layout and alignment of virtual tables + @end itemize + + Some GCC compilation options cause the compiler to generate code that + does not conform to the platform's default ABI@. Other options cause + different program behavior for implementation-defined features that are + not covered by an ABI@. These options are provided for consistency with + other compilers that do not follow the platform's default ABI or the + usual behavior of implementation-defined features for the platform. + Be very careful about using such options. + + Most platforms have a well-defined ABI that covers C code, but ABIs + that cover C++ functionality are not yet common. + + Starting with GCC 3.2, GCC binary conventions for C++ are based on a + written, vendor-neutral C++ ABI that was designed to be specific to + 64-bit Itanium but also includes generic specifications that apply to + any platform. + This C++ ABI is also implemented by other compiler vendors on some + platforms, notably GNU/Linux and BSD systems. + We have tried hard to provide a stable ABI that will be compatible with + future GCC releases, but it is possible that we will encounter problems + that make this difficult. Such problems could include different + interpretations of the C++ ABI by different vendors, bugs in the ABI, or + bugs in the implementation of the ABI in different compilers. + GCC's @code{-Wabi} switch warns when G++ generates code that is + probably not compatible with the C++ ABI@. + + The C++ library used with a C++ compiler includes the Standard C++ + Library, with functionality defined in the C++ Standard, plus language + runtime support. The runtime support is included in a C++ ABI, but there + is no formal ABI for the Standard C++ Library. Two implementations + of that library are interoperable if one follows the de-facto ABI of the + other and if they are both built with the same compiler, or with compilers + that conform to the same ABI for C++ compiler and runtime support. + + When G++ and another C++ compiler conform to the same C++ ABI, but the + implementations of the Standard C++ Library that they normally use do not + follow the same ABI for the Standard C++ Library, object files built with + those compilers can be used in the same program only if they use the same + C++ library. This requires specifying the location of the C++ library + header files when invoking the compiler whose usual library is not being + used. The location of GCC's C++ header files depends on how the GCC + build was configured, but can be seen by using the G++ @option{-v} option. + With default configuration options for G++ 3.2 the compile line for a + different C++ compiler needs to include + + @example + -I@var{gcc_install_directory}/include/c++/3.2 + @end example + + Similarly, compiling code with G++ that must use a C++ library other + than the GNU C++ library requires specifying the location of the header + files for that other library. + + The most straightforward way to link a program to use a particular + C++ library is to use a C++ driver that specifies that C++ library by + default. The @command{g++} driver, for example, tells the linker where + to find GCC's C++ library (@file{libstdc++}) plus the other libraries + and startup files it needs, in the proper order. + + If a program must use a different C++ library and it's not possible + to do the final link using a C++ driver that uses that library by default, + it is necessary to tell @command{g++} the location and name of that + library. It might also be necessary to specify different startup files + and other runtime support libraries, and to suppress the use of GCC's + support libraries with one or more of the options @option{-nostdlib}, + @option{-nostartfiles}, and @option{-nodefaultlibs}. diff -Nrc3pad gcc-3.2/gcc/doc/contrib.texi gcc-3.2.1/gcc/doc/contrib.texi *** gcc-3.2/gcc/doc/contrib.texi Sun May 19 19:59:08 2002 --- gcc-3.2.1/gcc/doc/contrib.texi Tue Nov 12 13:06:12 2002 *************** in this list are accidental. Feel free *** 14,23 **** or some of your contributions are not listed. Please keep this list in alphabetical order. - Some projects operating under the GCC project maintain their own list - of contributors, such as - @uref{http://gcc.gnu.org/libstdc++/,the C++ library}. - @itemize @bullet @item --- 14,19 ---- *************** Analog Devices helped implement the supp *** 25,31 **** and iterators. @item ! John David Anglin for improvements to libstdc++-v3 and the HP-UX port. @item James van Artsdalen wrote the code that makes efficient use of --- 21,28 ---- and iterators. @item ! John David Anglin for threading-related fixes and improvements to ! libstdc++-v3, and the HP-UX port. @item James van Artsdalen wrote the code that makes efficient use of *************** Alasdair Baird for various bugfixes. *** 38,52 **** Gerald Baumgartner added the signature extension to the C++ front end. @item Neil Booth for work on cpplib, lang hooks, debug hooks and other miscellaneous clean-ups. @item Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new languages. Chill ! and Java front end implementations. Initial implementations of ! cpplib, fix-header, config.guess, libio, and past C++ library ! (libg++) maintainer. @item Devon Bowen helped port GCC to the Tahoe. --- 35,69 ---- Gerald Baumgartner added the signature extension to the C++ front end. @item + Godmar Back for his Java improvements and encouragement. + + @item + Scott Bambrough for help porting the Java compiler. + + @item + Jon Beniston for his Win32 port of Java. + + @item + Geoff Berry for his Java object serialization work and various patches. + + @item + Eric Blake for helping to make GCJ and libgcj conform to the + specifications. + + @item + Hans-J. Boehm for his @uref{http://www.hpl.hp.com/personal/Hans_Boehm/gc/,, + garbage collector}, IA-64 libffi port, and other Java work. + + @item Neil Booth for work on cpplib, lang hooks, debug hooks and other miscellaneous clean-ups. @item Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new languages. Chill ! front end implementation. Initial implementations of ! cpplib, fix-header, config.guess, libio, and past C++ library (libg++) ! maintainer. Dreaming up, designing and implementing much of GCJ. @item Devon Bowen helped port GCC to the Tahoe. *************** Christian Bruel for improvements to loca *** 67,97 **** Herman A.J. ten Brugge for various fixes. @item Joe Buck for his direction via the steering committee. @item Craig Burley for leadership of the Fortran effort. @item ! Paolo Carlini for his work on libstdc++-v3. @item John Carr for his alias work, SPARC hacking, infrastructure improvements, previous contributions to the steering committee, loop optimizations, etc. @item ! Steve Chamberlain wrote the support for the Hitachi SH and H8 processors ! and the PicoJava processor. @item Scott Christley for his Objective-C contributions. @item Branko Cibej for more warning contributions. @item ! Nick Clifton for arm, mcore, fr30, v850, m32r work, @option{--help}, and other random ! hacking. @item Ralf Corsepius for SH testing and minor bugfixing. --- 84,138 ---- Herman A.J. ten Brugge for various fixes. @item + Joerg Brunsmann for Java compiler hacking and help with the GCJ FAQ. + + @item Joe Buck for his direction via the steering committee. @item Craig Burley for leadership of the Fortran effort. @item ! Stephan Buys for contributing Doxygen notes for libstdc++. ! ! @item ! Paolo Carlini for libstdc++ work: lots of efficiency improvements to ! the string class, hard detective work on the frustrating localization ! issues, and keeping up with the problem reports. @item John Carr for his alias work, SPARC hacking, infrastructure improvements, previous contributions to the steering committee, loop optimizations, etc. @item ! Steve Chamberlain for support for the Hitachi SH and H8 processors ! and the PicoJava processor, and for GCJ config fixes. ! ! @item ! Glenn Chambers for help with the GCJ FAQ. ! ! @item ! John-Marc Chandonia for various libgcj patches. @item Scott Christley for his Objective-C contributions. @item + Eric Christopher for his Java porting help and clean-ups. + + @item Branko Cibej for more warning contributions. @item ! The @uref{http://www.classpath.org,,GNU Classpath project} ! for all of their merged runtime code. ! ! @item ! Nick Clifton for arm, mcore, fr30, v850, m32r work, @option{--help}, and ! other random hacking. ! ! @item ! Michael Cook for libstdc++ cleanup patches to reduce warnings. @item Ralf Corsepius for SH testing and minor bugfixing. *************** Dario Dariol contributed the four variet *** 111,132 **** that print a copy of their source. @item ! Ulrich Drepper for his work on the C++ runtime libraries, glibc, ! testing of GCC using glibc, ISO C99 support, CFG dumping support, etc. @item Richard Earnshaw for his ongoing work with the ARM@. @item ! David Edelsohn for his direction via the steering committee, ! ongoing work with the RS6000/PowerPC port, and help cleaning up Haifa ! loop changes. @item Paul Eggert for random hacking all over GCC@. @item ! Mark Elbrecht for various DJGPP improvements. @item Ben Elliston for his work to move the Objective-C runtime into its --- 152,202 ---- that print a copy of their source. @item ! Russell Davidson for fstream and stringstream fixes in libstdc++. ! ! @item ! Mo DeJong for GCJ and libgcj bug fixes. ! ! @item ! Gabriel Dos Reis for contributions to g++, contributions and ! maintenance of GCC diagnostics infrastructure, libstdc++-v3, ! including valarray<>, complex<>, maintaining the numerics library ! (including that pesky :-) and keeping up-to-date anything ! to do with numbers. ! ! @item ! Ulrich Drepper for his work on glibc, testing of GCC using glibc, ISO C99 ! support, CFG dumping support, etc., plus support of the C++ runtime ! libraries including for all kinds of C interface issues, contributing and ! maintaining complex<>, sanity checking and disbursement, configuration ! architecture, libio maintenance, and early math work. @item Richard Earnshaw for his ongoing work with the ARM@. @item ! David Edelsohn for his direction via the steering committee, ongoing work ! with the RS6000/PowerPC port, help cleaning up Haifa loop changes, and ! for doing the entire AIX port of libstdc++ with his bare hands. ! ! @item ! Kevin Ediger for the floating point formatting of num_put::do_put in ! libstdc++. ! ! @item ! Phil Edwards for libstdc++ work including configuration hackery, ! documentation maintainer, chief breaker of the web pages, the occasional ! iostream bugfix, and work on shared library symbol versioning. @item Paul Eggert for random hacking all over GCC@. @item ! Mark Elbrecht for various DJGPP improvements, and for libstdc++ ! configuration support for locales and fstream-related fixes. ! ! @item ! Vadim Egorov for libstdc++ fixes in strings, streambufs, and iostreams. @item Ben Elliston for his work to move the Objective-C runtime into its *************** and SPARC work. *** 143,148 **** --- 213,221 ---- Fred Fish for BeOS support and Ada fixes. @item + Ivan Fontes Garcia for the Portugese translation of the GCJ FAQ. + + @item Peter Gerwinski for various bugfixes and the Pascal front end. @item *************** Kaveh Ghazi for his direction via the st *** 150,155 **** --- 223,231 ---- amazing work to make @samp{-W -Wall} useful. @item + John Gilmore for a donation to the FSF earmarked improving GNU Java. + + @item Judy Goldberg for c++ contributions. @item *************** via the steering committee. *** 162,167 **** --- 238,246 ---- Anthony Green for his @option{-Os} contributions and Java front end work. @item + Stu Grossman for gdb hacking, allowing GCJ developers to debug our code. + + @item Michael K. Gschwind contributed the port to the PDP-11. @item *************** Bruno Haible for improvements in the run *** 175,181 **** warnings and assorted bugfixes. @item ! Andrew Haley for his Java work. @item Chris Hanson assisted in making GCC work on HP-UX for the 9000 series 300. --- 254,260 ---- warnings and assorted bugfixes. @item ! Andrew Haley for his amazing Java compiler and library efforts. @item Chris Hanson assisted in making GCC work on HP-UX for the 9000 series 300. *************** Andreas Jaeger for various fixes to the *** 222,228 **** @item Jakub Jelinek for his SPARC work and sibling call optimizations as well ! as lots of bug fixes and test cases. @item Janis Johnson for ia64 testing and fixes and for her quality improvement --- 301,308 ---- @item Jakub Jelinek for his SPARC work and sibling call optimizations as well ! as lots of bug fixes and test cases, and for improving the Java build ! system. @item Janis Johnson for ia64 testing and fixes and for her quality improvement *************** sidetracks. *** 232,248 **** J. Kean Johnston for OpenServer support. @item Klaus Kaempf for his ongoing work to make alpha-vms a viable target. @item David Kashtan of SRI adapted GCC to VMS@. @item Geoffrey Keating for his ongoing work to make the PPC work for GNU/Linux and his automatic regression tester. @item ! Brendan Kehoe for his ongoing work with g++. @item Oliver M. Kellogg of Deutsche Aerospace contributed the port to the --- 312,340 ---- J. Kean Johnston for OpenServer support. @item + Tim Josling for the sample language treelang based originally on Richard + Kenner's "``toy'' language". + + @item + Nicolai Josuttis for additional libstdc++ documentation. + + @item Klaus Kaempf for his ongoing work to make alpha-vms a viable target. @item David Kashtan of SRI adapted GCC to VMS@. @item + Ryszard Kabatek for many, many libstdc++ bugfixes and optimizations of + strings, especially member functions, and for auto_ptr fixes. + + @item Geoffrey Keating for his ongoing work to make the PPC work for GNU/Linux and his automatic regression tester. @item ! Brendan Kehoe for his ongoing work with g++ and for a lot of early work ! in just about every part of libstdc++. @item Oliver M. Kellogg of Deutsche Aerospace contributed the port to the *************** elimination and delay slot scheduling. *** 260,267 **** head maintainer of GCC for several years. @item ! Mumit Khan for various contributions to the cygwin and mingw32 ports and ! maintaining binary releases for Windows hosts. @item Robin Kirkham for cpu32 support. --- 352,360 ---- head maintainer of GCC for several years. @item ! Mumit Khan for various contributions to the Cygwin and Mingw32 ports and ! maintaining binary releases for Windows hosts, and for massive libstdc++ ! porting work to Cygwin/Mingw32. @item Robin Kirkham for cpu32 support. *************** Ted Lemon wrote parts of the RTL reader *** 299,311 **** Kriang Lerdsuwanakij for improvements to demangler and various c++ fixes. @item ! Warren Levy major work on libgcj (Java Runtime Library) and random ! work on the Java front end. @item Alain Lichnewsky ported GCC to the MIPS CPU. @item Robert Lipe for OpenServer support, new testsuites, testing, etc. @item --- 392,408 ---- Kriang Lerdsuwanakij for improvements to demangler and various c++ fixes. @item ! Warren Levy for tremendous work on libgcj (Java Runtime Library) and ! random work on the Java front end. @item Alain Lichnewsky ported GCC to the MIPS CPU. @item + Oskar Liljeblad for hacking on AWT and his many Java bug reports and + patches. + + @item Robert Lipe for OpenServer support, new testsuites, testing, etc. @item *************** runtime libraries. *** 317,323 **** @item Martin von L@"owis for internal consistency checking infrastructure, ! and various C++ improvements including namespace support. @item H.J. Lu for his previous contributions to the steering committee, many x86 --- 414,421 ---- @item Martin von L@"owis for internal consistency checking infrastructure, ! various C++ improvements including namespace support, and tons of ! assistance with libstdc++/compiler merges. @item H.J. Lu for his previous contributions to the steering committee, many x86 *************** Andrew MacLeod for his ongoing work in b *** 331,344 **** various code generation improvements, work on the global optimizer, etc. @item ! Vladimir Makarov for hacking some ugly i960 problems, PowerPC ! hacking improvements to compile-time performance and overall knowledge ! and direction in the area of instruction scheduling. @item Bob Manson for his behind the scenes work on dejagnu. @item Michael Meissner for LRS framework, ia32, m32r, v850, m88k, MIPS, powerpc, haifa, ECOFF debug support, and other assorted hacking. --- 429,458 ---- various code generation improvements, work on the global optimizer, etc. @item ! Vladimir Makarov for hacking some ugly i960 problems, PowerPC hacking ! improvements to compile-time performance, overall knowledge and ! direction in the area of instruction scheduling, and design and ! implementation of the automaton based instruction scheduler. @item Bob Manson for his behind the scenes work on dejagnu. @item + Philip Martin for lots of libstdc++ string and vector iterator fixes and + improvements, and string clean up and testsuites. + + @item + All of the Mauve project + @uref{http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/mauve/THANKS?rev=1.2&cvsroot=mauve&only_with_tag=HEAD,,contributors}, + for Java test code. + + @item + Bryce McKinlay for numerous GCJ and libgcj fixes and improvements. + + @item + Adam Megacz for his work on the Win32 port of GCJ. + + @item Michael Meissner for LRS framework, ia32, m32r, v850, m88k, MIPS, powerpc, haifa, ECOFF debug support, and other assorted hacking. *************** developers. *** 355,360 **** --- 469,478 ---- Gary Miller ported GCC to Charles River Data Systems machines. @item + Alfred Minarik for libstdc++ string and ios bugfixes, and turning the + entire libstdc++ testsuite namespace-compatible. + + @item Mark Mitchell for his direction via the steering committee, mountains of C++ work, load/store hoisting out of loops, alias analysis improvements, ISO C @code{restrict} support, and serving as release manager for GCC 3.x. *************** maintenance, and his ongoing work to mak *** 369,375 **** @item Jason Molenda for major help in the care and feeding of all the services on the gcc.gnu.org (formerly egcs.cygnus.com) machine---mail, web ! services, ftp services, etc etc. @item Catherine Moore for fixing various ugly problems we have sent her --- 487,494 ---- @item Jason Molenda for major help in the care and feeding of all the services on the gcc.gnu.org (formerly egcs.cygnus.com) machine---mail, web ! services, ftp services, etc etc. Doing all this work on scrap paper and ! the backs of envelopes would have been... difficult. @item Catherine Moore for fixing various ugly problems we have sent her *************** way, including the haifa bug which was k *** 377,382 **** --- 496,504 ---- Linux kernels. @item + Mike Moreton for his various Java patches. + + @item David Mosberger-Tang for various Alpha improvements. @item *************** Joseph S. Myers for his work on the PDP- *** 395,401 **** C99 support, and continuous emphasis on (and contributions to) documentation. @item ! Nathan Myers for his work on libstdc++-v3. @item NeXT, Inc.@: donated the front end that supports the Objective-C --- 517,530 ---- C99 support, and continuous emphasis on (and contributions to) documentation. @item ! Nathan Myers for his work on libstdc++-v3: architecture and authorship ! through the first three snapshots, including implementation of locale ! infrastructure, string, shadow C headers, and the initial project ! documentation (DESIGN, CHECKLIST, and so forth). Later, more work on ! MT-safe string and shadow headers. ! ! @item ! Felix Natter for documentation on porting libstdc++. @item NeXT, Inc.@: donated the front end that supports the Objective-C *************** improvements. *** 415,434 **** @item Alexandre Oliva for various build infrastructure improvements, scripts and ! amazing testing work. @item Melissa O'Neill for various NeXT fixes. @item Rainer Orth for random MIPS work, including improvements to our o32 ! ABI support, improvements to dejagnu's MIPS support, etc. @item Paul Petersen wrote the machine description for the Alliant FX/8. @item ! Alexandre Petit-Bianco for his Java work. @item Matthias Pfaller for major improvements to the NS32k port. --- 544,565 ---- @item Alexandre Oliva for various build infrastructure improvements, scripts and ! amazing testing work, including keeping libtool issues sane and happy. @item Melissa O'Neill for various NeXT fixes. @item Rainer Orth for random MIPS work, including improvements to our o32 ! ABI support, improvements to dejagnu's MIPS support, Java configuration ! clean-ups and porting work, etc. @item Paul Petersen wrote the machine description for the Alliant FX/8. @item ! Alexandre Petit-Bianco for implementing much of the Java compiler and ! continued Java maintainership. @item Matthias Pfaller for major improvements to the NS32k port. *************** Ken Raeburn for various improvements to *** 447,465 **** cleanups in the compiler. @item ! David Reese of Sun Microsystems contributed to the Solaris on PowerPC ! port. @item ! Gabriel Dos Reis for contributions and maintenance of libstdc++-v3, ! including valarray implementation and limits support. @item Joern Rennecke for maintaining the sh port, loop, regmove & reload hacking. @item ! Loren J. Rittle for improvements to libstdc++-v3 and the FreeBSD port. @item Craig Rodrigues for processing tons of bug reports. --- 578,597 ---- cleanups in the compiler. @item ! Rolf W. Rasmussen for hacking on AWT. @item ! David Reese of Sun Microsystems contributed to the Solaris on PowerPC ! port. @item Joern Rennecke for maintaining the sh port, loop, regmove & reload hacking. @item ! Loren J. Rittle for improvements to libstdc++-v3 including the FreeBSD ! port, threading fixes, thread-related configury changes, critical ! threading documentation, and solutions to really tricky I/O problems. @item Craig Rodrigues for processing tons of bug reports. *************** Ken Rose for fixes to our delay slot fil *** 474,485 **** --- 606,624 ---- Paul Rubin wrote most of the preprocessor. @item + Chip Salzenberg for libstdc++ patches and improvements to locales, traits, + Makefiles, libio, libtool hackery, and ``long long'' support. + + @item Juha Sarlin for improvements to the H8 code generator. @item Greg Satz assisted in making GCC work on HP-UX for the 9000 series 300. @item + Bradley Schatz for his work on the GCJ FAQ. + + @item Peter Schauer wrote the code to allow debugging to work on the Alpha. @item *************** work in the reload pass as well a servin *** 491,496 **** --- 630,643 ---- GCC 2.95.3. @item + Peter Schmid for constant testing of libstdc++ -- especially application + testing, going above and beyond what was requested for the release + criteria -- and libstdc++ header file tweaks. + + @item + Jason Schroeder for jcf-dump patches. + + @item Andreas Schwab for his work on the m68k port. @item *************** code which handles the parse tree and RT *** 506,511 **** --- 653,662 ---- folding and help with the original VAX & m68k ports. @item + Kenny Simpson for prompting libstdc++ fixes due to defect reports from + the LWG (thereby keeping us in line with updates from the ISO). + + @item Franz Sirl for his ongoing work with making the PPC port stable for linux. *************** Christopher Smith did the port for Conve *** 519,525 **** Randy Smith finished the Sun FPA support. @item ! Scott Snyder for various fixes. @item Richard Stallman, for writing the original gcc and launching the GNU project. --- 670,680 ---- Randy Smith finished the Sun FPA support. @item ! Scott Snyder for queue, iterator, istream, and string fixes and libstdc++ ! testsuite entries. ! ! @item ! Brad Spencer for contributions to the GLIBCPP_FORCE_NEW technique. @item Richard Stallman, for writing the original gcc and launching the GNU project. *************** Jonathan Stone wrote the machine descrip *** 538,547 **** --- 693,708 ---- Graham Stott for various infrastructure improvements. @item + John Stracke for his Java HTTP protocol fixes. + + @item Mike Stump for his Elxsi port, g++ contributions over the years and more recently his vxworks contributions @item + Jeff Sturm for Java porting help, bug fixes, and encouragement. + + @item Shigeya Suzuki for this fixes for the bsdi platforms. @item *************** Gary Thomas for his ongoing work to make *** 558,565 **** Philipp Thomas for random bugfixes throughout the compiler @item Kresten Krab Thorup wrote the run time support for the Objective-C ! language. @item Michael Tiemann for random bugfixes, the first instruction scheduler, --- 719,729 ---- Philipp Thomas for random bugfixes throughout the compiler @item + Jason Thorpe for thread support in libstdc++ on NetBSD. + + @item Kresten Krab Thorup wrote the run time support for the Objective-C ! language and the fantastic Java bytecode interpreter. @item Michael Tiemann for random bugfixes, the first instruction scheduler, *************** initial C++ support, function integratio *** 567,572 **** --- 731,739 ---- machine description work, delay slot scheduling. @item + Andreas Tobler for his work porting libgcj to Darwin. + + @item Teemu Torma for thread safe exception handling support. @item *************** Leonard Tower wrote parts of the parser, *** 574,589 **** definitions, and of the VAX machine description. @item ! Tom Tromey for internationalization support and his Java work. @item Lassi Tuura for improvements to config.guess to determine HP processor types. @item Todd Vierling for contributions for NetBSD ports. @item Dean Wakerley for converting the install documentation from HTML to texinfo in time for GCC 3.0. --- 741,768 ---- definitions, and of the VAX machine description. @item ! Tom Tromey for internationalization support and for his many Java ! contributions and libgcj maintainership. @item Lassi Tuura for improvements to config.guess to determine HP processor types. @item + Petter Urkedal for libstdc++ CXXFLAGS, math, and algorithms fixes. + + @item + Brent Verner for work with the libstdc++ cshadow files and their + associated configure steps. + + @item Todd Vierling for contributions for NetBSD ports. @item + Jonathan Wakely for contributing libstdc++ Doxygen notes and XHTML + guidance. + + @item Dean Wakerley for converting the install documentation from HTML to texinfo in time for GCC 3.0. *************** in time for GCC 3.0. *** 591,596 **** --- 770,780 ---- Krister Walfridsson for random bugfixes. @item + Stephen M. Webb for time and effort on making libstdc++ shadow files + work with the tricky Solaris 8+ headers, and for pushing the build-time + header tree. + + @item John Wehle for various improvements for the x86 code generator, related infrastructure improvements to help x86 code generation, value range propagation and other work, WE32k port. *************** value range propagation and other work, *** 599,604 **** --- 783,798 ---- Zack Weinberg for major work on cpplib and various other bugfixes. @item + Matt Welsh for help with Linux Threads support in GCJ. + + @item + Urban Widmark for help fixing java.io. + + @item + Mark Wielaard for new Java library code and his work integrating with + Classpath. + + @item Dale Wiles helped port GCC to the Tahoe. @item *************** description for the Tron architecture (s *** 622,627 **** --- 816,824 ---- @item Kevin Zachmann helped ported GCC to the Tahoe. + @item + Gilles Zunino for help porting Java to Irix. + @end itemize *************** testing GCC: *** 630,641 **** --- 827,862 ---- @itemize @bullet @item + Michael Abd-El-Malek + + @item + Thomas Arend + + @item + Bonzo Armstrong + + @item + Steven Ashe + + @item + Chris Baldwin + + @item David Billinghurst @item + Jim Blandy + + @item + Stephane Bortzmeyer + + @item Horst von Brand @item + Frank Braun + + @item Rodney Brown @item *************** Joe Buck *** 645,683 **** --- 866,976 ---- Craig Burley @item + Sidney Cadot + + @item + Bradford Castalia + + @item + Ralph Doncaster + + @item Ulrich Drepper @item David Edelsohn @item + Richard Emberson + + @item + Levente Farkas + + @item + Graham Fawcett + + @item + Robert A. French + + @item + J@"orgen Freyh + + @item + Mark K. Gardner + + @item + Charles-Antoine Gauthier + + @item Yung Shing Gene @item Kaveh Ghazi @item + David Gilbert + + @item + Simon Gornall + + @item + Fred Gray + + @item + John Griffin + + @item + Patrik Hagglund + + @item + Phil Hargett + + @item + Amancio Hasty + + @item + Bryan W. Headley + + @item Kate Hedstrom @item Richard Henderson @item + Kevin B. Hendricks + + @item Manfred Hollstein @item Kamil Iskra @item + Joep Jansen + + @item Christian Joensson @item + David Kidd + + @item + Tobias Kuipers + + @item + Anand Krishnaswamy + + @item Jeff Law @item Robert Lipe @item + llewelly + + @item Damon Love @item *************** Matthias Klose *** 699,725 **** --- 992,1054 ---- Martin Knoblauch @item + Jesse Macnish + + @item David Miller @item Toon Moene @item + Stefan Morrell + + @item + Anon A. Mous + + @item Matthias Mueller @item + Pekka Nikander + + @item Alexandre Oliva @item + Jon Olson + + @item + Magnus Persson + + @item + Chris Pollard + + @item Richard Polton @item David Rees @item + Paul Reilly + + @item + Tom Reilly + + @item Loren J. Rittle @item + Torsten Rueger + + @item + Danny Sadinoff + + @item + Marc Schifer + + @item Peter Schmid @item *************** Vin Shelton *** 732,743 **** --- 1061,1087 ---- Franz Sirl @item + Tim Souder + + @item Mike Stump @item + Adam Sulmicki + + @item + George Talbot + + @item + Gregory Warnes + + @item Carlo Wood @item + David E. Young + + @item And many others @end itemize diff -Nrc3pad gcc-3.2/gcc/doc/cpp.1 gcc-3.2.1/gcc/doc/cpp.1 *** gcc-3.2/gcc/doc/cpp.1 Wed Aug 14 09:36:36 2002 --- gcc-3.2.1/gcc/doc/cpp.1 Tue Nov 19 18:17:14 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:35 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:13 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" cpp \- The C Preprocessor --- 138,144 ---- .\" ====================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" cpp \- The C Preprocessor *************** with an optional \fB\-MT\fR switch too. *** 782,788 **** This variable is the same as the environment variable \&\fB\s-1DEPENDENCIES_OUTPUT\s0\fR, except that system header files are not ignored, so it implies \fB\-M\fR rather ! than \fB\-MM\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf-funding\fR\|(7), --- 782,789 ---- This variable is the same as the environment variable \&\fB\s-1DEPENDENCIES_OUTPUT\s0\fR, except that system header files are not ignored, so it implies \fB\-M\fR rather ! than \fB\-MM\fR. However, the dependence on the main input file is ! omitted. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf-funding\fR\|(7), diff -Nrc3pad gcc-3.2/gcc/doc/cpp.info gcc-3.2.1/gcc/doc/cpp.info *** gcc-3.2/gcc/doc/cpp.info Wed Aug 14 09:36:32 2002 --- gcc-3.2.1/gcc/doc/cpp.info Tue Nov 19 18:17:11 2002 *************** END-INFO-DIR-ENTRY *** 9,17 ****  Indirect: cpp.info-1: 191 ! cpp.info-2: 49612 ! cpp.info-3: 99320 ! cpp.info-4: 161716  Tag Table: (Indirect) --- 9,18 ----  Indirect: cpp.info-1: 191 ! cpp.info-2: 49827 ! cpp.info-3: 96679 ! cpp.info-4: 142533 ! cpp.info-5: 190064  Tag Table: (Indirect) *************** Node: Header Files21776 *** 25,85 **** Node: Include Syntax23654 Node: Include Operation25156 Node: Search Path27052 ! Node: Once-Only Headers29902 ! Node: Computed Includes31556 ! Node: Wrapper Headers34695 ! Node: System Headers37114 ! Node: Macros39171 ! Node: Object-like Macros40271 ! Node: Function-like Macros43857 ! Node: Macro Arguments45467 ! Node: Stringification49612 ! Node: Concatenation52813 ! Node: Variadic Macros55927 ! Node: Predefined Macros60264 ! Node: Standard Predefined Macros60847 ! Node: Common Predefined Macros66269 ! Node: System-specific Predefined Macros72849 ! Node: C++ Named Operators74861 ! Node: Undefining and Redefining Macros75816 ! Node: Macro Pitfalls77894 ! Node: Misnesting78419 ! Node: Operator Precedence Problems79520 ! Node: Swallowing the Semicolon81375 ! Node: Duplication of Side Effects83387 ! Node: Self-Referential Macros85559 ! Node: Argument Prescan87969 ! Node: Newlines in Arguments91712 ! Node: Conditionals92657 ! Node: Conditional Uses94486 ! Node: Conditional Syntax95839 ! Node: Ifdef96154 ! Node: If99320 ! Node: Defined101733 ! Node: Else103006 ! Node: Elif103567 ! Node: Deleted Code104847 ! Node: Diagnostics106089 ! Node: Line Control107706 ! Node: Pragmas111513 ! Node: Other Directives115781 ! Node: Preprocessor Output116975 ! Node: Traditional Mode120175 ! Node: Implementation Details125754 ! Node: Implementation-defined behavior126376 ! Node: Implementation limits128649 ! Node: Obsolete Features131356 ! Node: Assertions131843 ! Node: Obsolete once-only headers134374 ! Node: Miscellaneous obsolete features136142 ! Node: Differences from previous versions137475 ! Node: Invocation141987 ! Ref: -MF149306 ! Node: Environment Variables161716 ! Ref: DEPENDENCIES_OUTPUT163366 ! Node: GNU Free Documentation License164341 ! Node: Option Index184239 ! Node: Index of Directives187706 ! Node: Concept Index189453  End Tag Table --- 26,86 ---- Node: Include Syntax23654 Node: Include Operation25156 Node: Search Path27052 ! Node: Once-Only Headers30129 ! Node: Computed Includes31783 ! Node: Wrapper Headers34922 ! Node: System Headers37341 ! Node: Macros39386 ! Node: Object-like Macros40486 ! Node: Function-like Macros44072 ! Node: Macro Arguments45682 ! Node: Stringification49827 ! Node: Concatenation53028 ! Node: Variadic Macros56142 ! Node: Predefined Macros60932 ! Node: Standard Predefined Macros61515 ! Node: Common Predefined Macros66794 ! Node: System-specific Predefined Macros73374 ! Node: C++ Named Operators75386 ! Node: Undefining and Redefining Macros76341 ! Node: Macro Pitfalls78419 ! Node: Misnesting78944 ! Node: Operator Precedence Problems80045 ! Node: Swallowing the Semicolon81900 ! Node: Duplication of Side Effects83912 ! Node: Self-Referential Macros86084 ! Node: Argument Prescan88494 ! Node: Newlines in Arguments92237 ! Node: Conditionals93182 ! Node: Conditional Uses95011 ! Node: Conditional Syntax96364 ! Node: Ifdef96679 ! Node: If99845 ! Node: Defined102258 ! Node: Else103531 ! Node: Elif104092 ! Node: Deleted Code105372 ! Node: Diagnostics106614 ! Node: Line Control108231 ! Node: Pragmas112038 ! Node: Other Directives116306 ! Node: Preprocessor Output117500 ! Node: Traditional Mode120700 ! Node: Implementation Details126279 ! Node: Implementation-defined behavior126901 ! Node: Implementation limits129174 ! Node: Obsolete Features131881 ! Node: Assertions132368 ! Node: Obsolete once-only headers134899 ! Node: Miscellaneous obsolete features136667 ! Node: Differences from previous versions138021 ! Node: Invocation142533 ! Ref: -MF149852 ! Node: Environment Variables162262 ! Ref: DEPENDENCIES_OUTPUT163912 ! Node: GNU Free Documentation License164952 ! Node: Option Index184850 ! Node: Index of Directives188317 ! Node: Concept Index190064  End Tag Table diff -Nrc3pad gcc-3.2/gcc/doc/cpp.info-1 gcc-3.2.1/gcc/doc/cpp.info-1 *** gcc-3.2/gcc/doc/cpp.info-1 Wed Aug 14 09:36:32 2002 --- gcc-3.2.1/gcc/doc/cpp.info-1 Tue Nov 19 18:17:11 2002 *************** in use. *** 712,722 **** You can add to this list with the `-IDIR' command line option. All the directories named by `-I' are searched, in left-to-right order, ! _before_ the default directories. You can also prevent GCC from ! searching any of the default directories with the `-nostdinc' option. ! This is useful when you are compiling an operating system kernel or ! some other program that does not use the standard C library facilities, ! or the standard C library itself. GCC looks for headers requested with `#include "FILE"' first in the directory containing the current file, then in the same places it would --- 712,732 ---- You can add to this list with the `-IDIR' command line option. All the directories named by `-I' are searched, in left-to-right order, ! _before_ the default directories. The only exception is when `dir' is ! already searched by default. In this case, the option is ignored and ! the search order for system directories remains unchanged. ! ! Duplicate directories are removed from the quote and bracket search ! chains before the two chains are merged to make the final search chain. ! Thus, it is possible for a directory to occur twice in the final search ! chain if it was specified in both the quote and bracket chains. ! ! You can prevent GCC from searching any of the default directories ! with the `-nostdinc' option. This is useful when you are compiling an ! operating system kernel or some other program that does not use the ! standard C library facilities, or the standard C library itself. `-I' ! options are not ignored as described above when `-nostdinc' is in ! effect. GCC looks for headers requested with `#include "FILE"' first in the directory containing the current file, then in the same places it would *************** if `/usr/include/sys/stat.h' contains `# *** 725,736 **** for `types.h' first in `/usr/include/sys', then in its usual search path. - If you name a search directory with `-IDIR' that is also a system - include directory, the `-I' wins; the directory will be searched - according to the `-I' ordering, and it will not be treated as a system - include directory. GCC will warn you when a system include directory is - hidden in this way. - `#line' (*note Line Control::) does not change GCC's idea of the directory containing the current file. --- 735,740 ---- *************** in that directory will be considered sys *** 948,955 **** All directories named by `-isystem' are searched _after_ all directories named by `-I', no matter what their order was on the command line. If the same directory is named by both `-I' and ! `-isystem', `-I' wins; it is as if the `-isystem' option had never been ! specified at all. GCC warns you when this happens. There is also a directive, `#pragma GCC system_header', which tells GCC to consider the rest of the current include file a system header, --- 952,959 ---- All directories named by `-isystem' are searched _after_ all directories named by `-I', no matter what their order was on the command line. If the same directory is named by both `-I' and ! `-isystem', the `-I' option is ignored. GCC provides an informative ! message when this occurs if `-v' is used. There is also a directive, `#pragma GCC system_header', which tells GCC to consider the rest of the current include file a system header, diff -Nrc3pad gcc-3.2/gcc/doc/cpp.info-2 gcc-3.2.1/gcc/doc/cpp.info-2 *** gcc-3.2/gcc/doc/cpp.info-2 Wed Aug 14 09:36:32 2002 --- gcc-3.2.1/gcc/doc/cpp.info-2 Tue Nov 19 18:17:11 2002 *************** preceding `##' is anything other than a *** 230,235 **** --- 230,243 ---- eprintf ("success!\n") ==> fprintf(stderr, "success!\n"); + The above explanation is ambiguous about the case where the only macro + parameter is a variable arguments parameter, as it is meaningless to + try to distinguish whether no argument at all is an empty argument or a + missing argument. In this case the C99 standard is clear that the + comma must remain, however the existing GCC extension used to swallow + the comma. So CPP retains the comma when conforming to a specific C + standard, and drops it otherwise. + C99 mandates that the only place the identifier `__VA_ARGS__' can appear is in the replacement list of a variadic macro. It may not be used as a macro name, macro argument name, or within a different type *************** with `__FILE__' and `__LINE__', though. *** 355,363 **** processing user files `__STDC__' is always 1. This has been reported to cause problems; for instance, some versions of Solaris provide X Windows headers that expect `__STDC__' to be either ! undefined or 1. You may be able to work around this sort of ! problem by using an `-I' option to cancel treatment of those ! headers as system headers. *Note Invocation::. `__STDC_VERSION__' This macro expands to the C Standard's version number, a long --- 363,369 ---- processing user files `__STDC__' is always 1. This has been reported to cause problems; for instance, some versions of Solaris provide X Windows headers that expect `__STDC__' to be either ! undefined or 1. *Note Invocation::. `__STDC_VERSION__' This macro expands to the C Standard's version number, a long *************** directive": `#if', `#ifdef' or `#ifndef' *** 1139,1213 **** * Else:: * Elif:: -  - File: cpp.info, Node: Ifdef, Next: If, Up: Conditional Syntax - - Ifdef - ----- - - The simplest sort of conditional is - - #ifdef MACRO - - CONTROLLED TEXT - - #endif /* MACRO */ - - This block is called a "conditional group". CONTROLLED TEXT will be - included in the output of the preprocessor if and only if MACRO is - defined. We say that the conditional "succeeds" if MACRO is defined, - "fails" if it is not. - - The CONTROLLED TEXT inside of a conditional can include - preprocessing directives. They are executed only if the conditional - succeeds. You can nest conditional groups inside other conditional - groups, but they must be completely nested. In other words, `#endif' - always matches the nearest `#ifdef' (or `#ifndef', or `#if'). Also, - you cannot start a conditional group in one file and end it in another. - - Even if a conditional fails, the CONTROLLED TEXT inside it is still - run through initial transformations and tokenization. Therefore, it - must all be lexically valid C. Normally the only way this matters is - that all comments and string literals inside a failing conditional group - must still be properly ended. - - The comment following the `#endif' is not required, but it is a good - practice if there is a lot of CONTROLLED TEXT, because it helps people - match the `#endif' to the corresponding `#ifdef'. Older programs - sometimes put MACRO directly after the `#endif' without enclosing it in - a comment. This is invalid code according to the C standard. GNU CPP - accepts it with a warning. It never affects which `#ifndef' the - `#endif' matches. - - Sometimes you wish to use some code if a macro is _not_ defined. - You can do this by writing `#ifndef' instead of `#ifdef'. One common - use of `#ifndef' is to include code only the first time a header file - is included. *Note Once-Only Headers::. - - Macro definitions can vary between compilations for several reasons. - Here are some samples. - - * Some macros are predefined on each kind of machine (*note - System-specific Predefined Macros::). This allows you to provide - code specially tuned for a particular machine. - - * System header files define more macros, associated with the - features they implement. You can test these macros with - conditionals to avoid using a system feature on a machine where it - is not implemented. - - * Macros can be defined or undefined with the `-D' and `-U' command - line options when you compile the program. You can arrange to - compile the same source file into two different programs by - choosing a macro name to specify which program you want, writing - conditionals to test whether or how this macro is defined, and - then controlling the state of the macro with command line options, - perhaps set in the Makefile. *Note Invocation::. - - * Your program might have a special header file (often called - `config.h') that is adjusted when the program is compiled. It can - define or not define macros depending on the features of the - system and the desired capabilities of the program. The - adjustment can be automated by a tool such as `autoconf', or done - by hand. - --- 1145,1147 ---- diff -Nrc3pad gcc-3.2/gcc/doc/cpp.info-3 gcc-3.2.1/gcc/doc/cpp.info-3 *** gcc-3.2/gcc/doc/cpp.info-3 Wed Aug 14 09:36:32 2002 --- gcc-3.2.1/gcc/doc/cpp.info-3 Tue Nov 19 18:17:11 2002 *************** START-INFO-DIR-ENTRY *** 7,12 **** --- 7,84 ---- END-INFO-DIR-ENTRY  + File: cpp.info, Node: Ifdef, Next: If, Up: Conditional Syntax + + Ifdef + ----- + + The simplest sort of conditional is + + #ifdef MACRO + + CONTROLLED TEXT + + #endif /* MACRO */ + + This block is called a "conditional group". CONTROLLED TEXT will be + included in the output of the preprocessor if and only if MACRO is + defined. We say that the conditional "succeeds" if MACRO is defined, + "fails" if it is not. + + The CONTROLLED TEXT inside of a conditional can include + preprocessing directives. They are executed only if the conditional + succeeds. You can nest conditional groups inside other conditional + groups, but they must be completely nested. In other words, `#endif' + always matches the nearest `#ifdef' (or `#ifndef', or `#if'). Also, + you cannot start a conditional group in one file and end it in another. + + Even if a conditional fails, the CONTROLLED TEXT inside it is still + run through initial transformations and tokenization. Therefore, it + must all be lexically valid C. Normally the only way this matters is + that all comments and string literals inside a failing conditional group + must still be properly ended. + + The comment following the `#endif' is not required, but it is a good + practice if there is a lot of CONTROLLED TEXT, because it helps people + match the `#endif' to the corresponding `#ifdef'. Older programs + sometimes put MACRO directly after the `#endif' without enclosing it in + a comment. This is invalid code according to the C standard. GNU CPP + accepts it with a warning. It never affects which `#ifndef' the + `#endif' matches. + + Sometimes you wish to use some code if a macro is _not_ defined. + You can do this by writing `#ifndef' instead of `#ifdef'. One common + use of `#ifndef' is to include code only the first time a header file + is included. *Note Once-Only Headers::. + + Macro definitions can vary between compilations for several reasons. + Here are some samples. + + * Some macros are predefined on each kind of machine (*note + System-specific Predefined Macros::). This allows you to provide + code specially tuned for a particular machine. + + * System header files define more macros, associated with the + features they implement. You can test these macros with + conditionals to avoid using a system feature on a machine where it + is not implemented. + + * Macros can be defined or undefined with the `-D' and `-U' command + line options when you compile the program. You can arrange to + compile the same source file into two different programs by + choosing a macro name to specify which program you want, writing + conditionals to test whether or how this macro is defined, and + then controlling the state of the macro with command line options, + perhaps set in the Makefile. *Note Invocation::. + + * Your program might have a special header file (often called + `config.h') that is adjusted when the program is compiled. It can + define or not define macros depending on the features of the + system and the desired capabilities of the program. The + adjustment can be automated by a tool such as `autoconf', or done + by hand. + +  File: cpp.info, Node: If, Next: Defined, Prev: Ifdef, Up: Conditional Syntax If *************** Miscellaneous obsolete features *** 906,914 **** * Attempting to paste two tokens which together do not form a valid preprocessing token. ! The preprocessor currently warns about this and outputs the two ! tokens adjacently, which is probably the behavior the programmer ! intends. It may not work in future, though. Most of the time, when you get this warning, you will find that `##' is being used superstitiously, to guard against whitespace --- 978,986 ---- * Attempting to paste two tokens which together do not form a valid preprocessing token. ! The preprocessor currently warns about this, and the resulting ! preprocessed output is undefined. The tokens remain distinct if ! the preprocessor is being used directly by the compiler front end. Most of the time, when you get this warning, you will find that `##' is being used superstitiously, to guard against whitespace *************** they generally represent bugs in the sna *** 1028,1520 **** invasive.) -  - File: cpp.info, Node: Invocation, Next: Environment Variables, Prev: Implementation Details, Up: Top - - Invocation - ********** - - Most often when you use the C preprocessor you will not have to - invoke it explicitly: the C compiler will do so automatically. - However, the preprocessor is sometimes useful on its own. All the - options listed here are also acceptable to the C compiler and have the - same meaning, except that the C compiler has different rules for - specifying the output file. - - *Note:* Whether you use the preprocessor by way of `gcc' or `cpp', - the "compiler driver" is run first. This program's purpose is to - translate your command into invocations of the programs that do the - actual work. Their command line interfaces are similar but not - identical to the documented interface, and may change without notice. - - The C preprocessor expects two file names as arguments, INFILE and - OUTFILE. The preprocessor reads INFILE together with any other files - it specifies with `#include'. All the output generated by the combined - input files is written in OUTFILE. - - Either INFILE or OUTFILE may be `-', which as INFILE means to read - from standard input and as OUTFILE means to write to standard output. - Also, if either file is omitted, it means the same as if `-' had been - specified for that file. - - Unless otherwise noted, or the option ends in `=', all options which - take an argument may have that argument appear either immediately after - the option, or with a space between option and argument: `-Ifoo' and - `-I foo' have the same effect. - - Many options have multi-letter names; therefore multiple - single-letter options may _not_ be grouped: `-dM' is very different from - `-d -M'. - - `-D NAME' - Predefine NAME as a macro, with definition `1'. - - `-D NAME=DEFINITION' - Predefine NAME as a macro, with definition DEFINITION. There are - no restrictions on the contents of DEFINITION, but if you are - invoking the preprocessor from a shell or shell-like program you - may need to use the shell's quoting syntax to protect characters - such as spaces that have a meaning in the shell syntax. - - If you wish to define a function-like macro on the command line, - write its argument list with surrounding parentheses before the - equals sign (if any). Parentheses are meaningful to most shells, - so you will need to quote the option. With `sh' and `csh', - `-D'NAME(ARGS...)=DEFINITION'' works. - - `-D' and `-U' options are processed in the order they are given on - the command line. All `-imacros FILE' and `-include FILE' options - are processed after all `-D' and `-U' options. - - `-U NAME' - Cancel any previous definition of NAME, either built in or - provided with a `-D' option. - - `-undef' - Do not predefine any system-specific macros. The common predefined - macros remain defined. - - `-I DIR' - Add the directory DIR to the list of directories to be searched - for header files. *Note Search Path::. Directories named by `-I' - are searched before the standard system include directories. - - It is dangerous to specify a standard system include directory in - an `-I' option. This defeats the special treatment of system - headers (*note System Headers::) . It can also defeat the repairs - to buggy system headers which GCC makes when it is installed. - - `-o FILE' - Write output to FILE. This is the same as specifying FILE as the - second non-option argument to `cpp'. `gcc' has a different - interpretation of a second non-option argument, so you must use - `-o' to specify the output file. - - `-Wall' - Turns on all optional warnings which are desirable for normal - code. At present this is `-Wcomment' and `-Wtrigraphs'. Note that - many of the preprocessor's warnings are on by default and have no - options to control them. - - `-Wcomment' - `-Wcomments' - Warn whenever a comment-start sequence `/*' appears in a `/*' - comment, or whenever a backslash-newline appears in a `//' comment. - (Both forms have the same effect.) - - `-Wtrigraphs' - Warn if any trigraphs are encountered. This option used to take - effect only if `-trigraphs' was also specified, but now works - independently. Warnings are not given for trigraphs within - comments, as they do not affect the meaning of the program. - - `-Wtraditional' - Warn about certain constructs that behave differently in - traditional and ISO C. Also warn about ISO C constructs that have - no traditional C equivalent, and problematic constructs which - should be avoided. *Note Traditional Mode::. - - `-Wimport' - Warn the first time `#import' is used. - - `-Wundef' - Warn whenever an identifier which is not a macro is encountered in - an `#if' directive, outside of `defined'. Such identifiers are - replaced with zero. - - `-Werror' - Make all warnings into hard errors. Source code which triggers - warnings will be rejected. - - `-Wsystem-headers' - Issue warnings for code in system headers. These are normally - unhelpful in finding bugs in your own code, therefore suppressed. - If you are responsible for the system library, you may want to see - them. - - `-w' - Suppress all warnings, including those which GNU CPP issues by - default. - - `-pedantic' - Issue all the mandatory diagnostics listed in the C standard. - Some of them are left out by default, since they trigger - frequently on harmless code. - - `-pedantic-errors' - Issue all the mandatory diagnostics, and make all mandatory - diagnostics into errors. This includes mandatory diagnostics that - GCC issues without `-pedantic' but treats as warnings. - - `-M' - Instead of outputting the result of preprocessing, output a rule - suitable for `make' describing the dependencies of the main source - file. The preprocessor outputs one `make' rule containing the - object file name for that source file, a colon, and the names of - all the included files, including those coming from `-include' or - `-imacros' command line options. - - Unless specified explicitly (with `-MT' or `-MQ'), the object file - name consists of the basename of the source file with any suffix - replaced with object file suffix. If there are many included - files then the rule is split into several lines using `\'-newline. - The rule has no commands. - - This option does not suppress the preprocessor's debug output, - such as `-dM'. To avoid mixing such debug output with the - dependency rules you should explicitly specify the dependency - output file with `-MF', or use an environment variable like - `DEPENDENCIES_OUTPUT' (*note DEPENDENCIES_OUTPUT::). Debug output - will still be sent to the regular output stream as normal. - - Passing `-M' to the driver implies `-E'. - - `-MM' - Like `-M' but do not mention header files that are found in system - header directories, nor header files that are included, directly - or indirectly, from such a header. - - This implies that the choice of angle brackets or double quotes in - an `#include' directive does not in itself determine whether that - header will appear in `-MM' dependency output. This is a slight - change in semantics from GCC versions 3.0 and earlier. - - `-MF FILE' - When used with `-M' or `-MM', specifies a file to write the - dependencies to. If no `-MF' switch is given the preprocessor - sends the rules to the same place it would have sent preprocessed - output. - - When used with the driver options `-MD' or `-MMD', `-MF' overrides - the default dependency output file. - - `-MG' - When used with `-M' or `-MM', `-MG' says to treat missing header - files as generated files and assume they live in the same - directory as the source file. It suppresses preprocessed output, - as a missing header file is ordinarily an error. - - This feature is used in automatic updating of makefiles. - - `-MP' - This option instructs CPP to add a phony target for each dependency - other than the main file, causing each to depend on nothing. These - dummy rules work around errors `make' gives if you remove header - files without updating the `Makefile' to match. - - This is typical output: - - test.o: test.c test.h - - test.h: - - `-MT TARGET' - Change the target of the rule emitted by dependency generation. By - default CPP takes the name of the main input file, including any - path, deletes any file suffix such as `.c', and appends the - platform's usual object suffix. The result is the target. - - An `-MT' option will set the target to be exactly the string you - specify. If you want multiple targets, you can specify them as a - single argument to `-MT', or use multiple `-MT' options. - - For example, `-MT '$(objpfx)foo.o'' might give - - $(objpfx)foo.o: foo.c - - `-MQ TARGET' - Same as `-MT', but it quotes any characters which are special to - Make. `-MQ '$(objpfx)foo.o'' gives - - $$(objpfx)foo.o: foo.c - - The default target is automatically quoted, as if it were given - with `-MQ'. - - `-MD' - `-MD' is equivalent to `-M -MF FILE', except that `-E' is not - implied. The driver determines FILE based on whether an `-o' - option is given. If it is, the driver uses its argument but with - a suffix of `.d', otherwise it take the basename of the input file - and applies a `.d' suffix. - - If `-MD' is used in conjunction with `-E', any `-o' switch is - understood to specify the dependency output file (but *note - -MF::), but if used without `-E', each `-o' is understood to - specify a target object file. - - Since `-E' is not implied, `-MD' can be used to generate a - dependency output file as a side-effect of the compilation process. - - `-MMD' - Like `-MD' except mention only user header files, not system - -header files. - - `-x c' - `-x c++' - `-x objective-c' - `-x assembler-with-cpp' - Specify the source language: C, C++, Objective-C, or assembly. - This has nothing to do with standards conformance or extensions; - it merely selects which base syntax to expect. If you give none - of these options, cpp will deduce the language from the extension - of the source file: `.c', `.cc', `.m', or `.S'. Some other common - extensions for C++ and assembly are also recognized. If cpp does - not recognize the extension, it will treat the file as C; this is - the most generic mode. - - *Note:* Previous versions of cpp accepted a `-lang' option which - selected both the language and the standards conformance level. - This option has been removed, because it conflicts with the `-l' - option. - - `-std=STANDARD' - `-ansi' - Specify the standard to which the code should conform. Currently - cpp only knows about the standards for C; other language standards - will be added in the future. - - STANDARD may be one of: - `iso9899:1990' - `c89' - The ISO C standard from 1990. `c89' is the customary - shorthand for this version of the standard. - - The `-ansi' option is equivalent to `-std=c89'. - - `iso9899:199409' - The 1990 C standard, as amended in 1994. - - `iso9899:1999' - `c99' - `iso9899:199x' - `c9x' - The revised ISO C standard, published in December 1999. - Before publication, this was known as C9X. - - `gnu89' - The 1990 C standard plus GNU extensions. This is the default. - - `gnu99' - `gnu9x' - The 1999 C standard plus GNU extensions. - - `-I-' - Split the include path. Any directories specified with `-I' - options before `-I-' are searched only for headers requested with - `#include "FILE"'; they are not searched for `#include '. - If additional directories are specified with `-I' options after - the `-I-', those directories are searched for all `#include' - directives. - - In addition, `-I-' inhibits the use of the directory of the current - file directory as the first search directory for `#include "FILE"'. - *Note Search Path::. - - `-nostdinc' - Do not search the standard system directories for header files. - Only the directories you have specified with `-I' options (and the - directory of the current file, if appropriate) are searched. - - `-nostdinc++' - Do not search for header files in the C++-specific standard - directories, but do still search the other standard directories. - (This option is used when building the C++ library.) - - `-include FILE' - Process FILE as if `#include "file"' appeared as the first line of - the primary source file. However, the first directory searched - for FILE is the preprocessor's working directory _instead of_ the - directory containing the main source file. If not found there, it - is searched for in the remainder of the `#include "..."' search - chain as normal. - - If multiple `-include' options are given, the files are included - in the order they appear on the command line. - - `-imacros FILE' - Exactly like `-include', except that any output produced by - scanning FILE is thrown away. Macros it defines remain defined. - This allows you to acquire all the macros from a header without - also processing its declarations. - - All files specified by `-imacros' are processed before all files - specified by `-include'. - - `-idirafter DIR' - Search DIR for header files, but do it _after_ all directories - specified with `-I' and the standard system directories have been - exhausted. DIR is treated as a system include directory. - - `-iprefix PREFIX' - Specify PREFIX as the prefix for subsequent `-iwithprefix' - options. If the prefix represents a directory, you should include - the final `/'. - - `-iwithprefix DIR' - `-iwithprefixbefore DIR' - Append DIR to the prefix specified previously with `-iprefix', and - add the resulting directory to the include search path. - `-iwithprefixbefore' puts it in the same place `-I' would; - `-iwithprefix' puts it where `-idirafter' would. - - Use of these options is discouraged. - - `-isystem DIR' - Search DIR for header files, after all directories specified by - `-I' but before the standard system directories. Mark it as a - system directory, so that it gets the same special treatment as is - applied to the standard system directories. *Note System - Headers::. - - `-fpreprocessed' - Indicate to the preprocessor that the input file has already been - preprocessed. This suppresses things like macro expansion, - trigraph conversion, escaped newline splicing, and processing of - most directives. The preprocessor still recognizes and removes - comments, so that you can pass a file preprocessed with `-C' to - the compiler without problems. In this mode the integrated - preprocessor is little more than a tokenizer for the front ends. - - `-fpreprocessed' is implicit if the input file has one of the - extensions `.i', `.ii' or `.mi'. These are the extensions that - GCC uses for preprocessed files created by `-save-temps'. - - `-ftabstop=WIDTH' - Set the distance between tab stops. This helps the preprocessor - report correct column numbers in warnings or errors, even if tabs - appear on the line. If the value is less than 1 or greater than - 100, the option is ignored. The default is 8. - - `-fno-show-column' - Do not print column numbers in diagnostics. This may be necessary - if diagnostics are being scanned by a program that does not - understand the column numbers, such as `dejagnu'. - - `-A PREDICATE=ANSWER' - Make an assertion with the predicate PREDICATE and answer ANSWER. - This form is preferred to the older form `-A PREDICATE(ANSWER)', - which is still supported, because it does not use shell special - characters. *Note Assertions::. - - `-A -PREDICATE=ANSWER' - Cancel an assertion with the predicate PREDICATE and answer ANSWER. - - `-A-' - Cancel all predefined assertions and all assertions preceding it on - the command line. Also, undefine all predefined macros and all - macros preceding it on the command line. (This is a historical - wart and may change in the future.) - - `-dCHARS' - CHARS is a sequence of one or more of the following characters, - and must not be preceded by a space. Other characters are - interpreted by the compiler proper, or reserved for future - versions of GCC, and so are silently ignored. If you specify - characters whose behavior conflicts, the result is undefined. - - `M' - Instead of the normal output, generate a list of `#define' - directives for all the macros defined during the execution of - the preprocessor, including predefined macros. This gives - you a way of finding out what is predefined in your version - of the preprocessor. Assuming you have no file `foo.h', the - command - - touch foo.h; cpp -dM foo.h - - will show all the predefined macros. - - `D' - Like `M' except in two respects: it does _not_ include the - predefined macros, and it outputs _both_ the `#define' - directives and the result of preprocessing. Both kinds of - output go to the standard output file. - - `N' - Like `D', but emit only the macro names, not their expansions. - - `I' - Output `#include' directives in addition to the result of - preprocessing. - - `-P' - Inhibit generation of linemarkers in the output from the - preprocessor. This might be useful when running the preprocessor - on something that is not C code, and will be sent to a program - which might be confused by the linemarkers. *Note Preprocessor - Output::. - - `-C' - Do not discard comments. All comments are passed through to the - output file, except for comments in processed directives, which - are deleted along with the directive. - - You should be prepared for side effects when using `-C'; it causes - the preprocessor to treat comments as tokens in their own right. - For example, comments appearing at the start of what would be a - directive line have the effect of turning that line into an - ordinary source line, since the first token on the line is no - longer a `#'. - - `-gcc' - Define the macros __GNUC__, __GNUC_MINOR__ and - __GNUC_PATCHLEVEL__. These are defined automatically when you use - `gcc -E'; you can turn them off in that case with `-no-gcc'. - - `-traditional' - Try to imitate the behavior of old-fashioned C, as opposed to ISO - C. *Note Traditional Mode::. - - `-trigraphs' - Process trigraph sequences. *Note Initial processing::. - - `-remap' - Enable special code to work around file systems which only permit - very short file names, such as MS-DOS. - - `-$' - Forbid the use of `$' in identifiers. The C standard allows - implementations to define extra characters that can appear in - identifiers. By default GNU CPP permits `$', a common extension. - - `-h' - `--help' - `--target-help' - Print text describing all the command line options instead of - preprocessing anything. - - `-v' - Verbose mode. Print out GNU CPP's version number at the beginning - of execution, and report the final form of the include path. - - `-H' - Print the name of each header file used, in addition to other - normal activities. Each name is indented to show how deep in the - `#include' stack it is. - - `-version' - `--version' - Print out GNU CPP's version number. With one dash, proceed to - preprocess as normal. With two dashes, exit immediately. - --- 1100,1102 ---- diff -Nrc3pad gcc-3.2/gcc/doc/cpp.info-4 gcc-3.2.1/gcc/doc/cpp.info-4 *** gcc-3.2/gcc/doc/cpp.info-4 Wed Aug 14 09:36:32 2002 --- gcc-3.2.1/gcc/doc/cpp.info-4 Tue Nov 19 18:17:11 2002 *************** START-INFO-DIR-ENTRY *** 7,12 **** --- 7,502 ---- END-INFO-DIR-ENTRY  + File: cpp.info, Node: Invocation, Next: Environment Variables, Prev: Implementation Details, Up: Top + + Invocation + ********** + + Most often when you use the C preprocessor you will not have to + invoke it explicitly: the C compiler will do so automatically. + However, the preprocessor is sometimes useful on its own. All the + options listed here are also acceptable to the C compiler and have the + same meaning, except that the C compiler has different rules for + specifying the output file. + + *Note:* Whether you use the preprocessor by way of `gcc' or `cpp', + the "compiler driver" is run first. This program's purpose is to + translate your command into invocations of the programs that do the + actual work. Their command line interfaces are similar but not + identical to the documented interface, and may change without notice. + + The C preprocessor expects two file names as arguments, INFILE and + OUTFILE. The preprocessor reads INFILE together with any other files + it specifies with `#include'. All the output generated by the combined + input files is written in OUTFILE. + + Either INFILE or OUTFILE may be `-', which as INFILE means to read + from standard input and as OUTFILE means to write to standard output. + Also, if either file is omitted, it means the same as if `-' had been + specified for that file. + + Unless otherwise noted, or the option ends in `=', all options which + take an argument may have that argument appear either immediately after + the option, or with a space between option and argument: `-Ifoo' and + `-I foo' have the same effect. + + Many options have multi-letter names; therefore multiple + single-letter options may _not_ be grouped: `-dM' is very different from + `-d -M'. + + `-D NAME' + Predefine NAME as a macro, with definition `1'. + + `-D NAME=DEFINITION' + Predefine NAME as a macro, with definition DEFINITION. There are + no restrictions on the contents of DEFINITION, but if you are + invoking the preprocessor from a shell or shell-like program you + may need to use the shell's quoting syntax to protect characters + such as spaces that have a meaning in the shell syntax. + + If you wish to define a function-like macro on the command line, + write its argument list with surrounding parentheses before the + equals sign (if any). Parentheses are meaningful to most shells, + so you will need to quote the option. With `sh' and `csh', + `-D'NAME(ARGS...)=DEFINITION'' works. + + `-D' and `-U' options are processed in the order they are given on + the command line. All `-imacros FILE' and `-include FILE' options + are processed after all `-D' and `-U' options. + + `-U NAME' + Cancel any previous definition of NAME, either built in or + provided with a `-D' option. + + `-undef' + Do not predefine any system-specific macros. The common predefined + macros remain defined. + + `-I DIR' + Add the directory DIR to the list of directories to be searched + for header files. *Note Search Path::. Directories named by `-I' + are searched before the standard system include directories. + + It is dangerous to specify a standard system include directory in + an `-I' option. This defeats the special treatment of system + headers (*note System Headers::) . It can also defeat the repairs + to buggy system headers which GCC makes when it is installed. + + `-o FILE' + Write output to FILE. This is the same as specifying FILE as the + second non-option argument to `cpp'. `gcc' has a different + interpretation of a second non-option argument, so you must use + `-o' to specify the output file. + + `-Wall' + Turns on all optional warnings which are desirable for normal + code. At present this is `-Wcomment' and `-Wtrigraphs'. Note that + many of the preprocessor's warnings are on by default and have no + options to control them. + + `-Wcomment' + `-Wcomments' + Warn whenever a comment-start sequence `/*' appears in a `/*' + comment, or whenever a backslash-newline appears in a `//' comment. + (Both forms have the same effect.) + + `-Wtrigraphs' + Warn if any trigraphs are encountered. This option used to take + effect only if `-trigraphs' was also specified, but now works + independently. Warnings are not given for trigraphs within + comments, as they do not affect the meaning of the program. + + `-Wtraditional' + Warn about certain constructs that behave differently in + traditional and ISO C. Also warn about ISO C constructs that have + no traditional C equivalent, and problematic constructs which + should be avoided. *Note Traditional Mode::. + + `-Wimport' + Warn the first time `#import' is used. + + `-Wundef' + Warn whenever an identifier which is not a macro is encountered in + an `#if' directive, outside of `defined'. Such identifiers are + replaced with zero. + + `-Werror' + Make all warnings into hard errors. Source code which triggers + warnings will be rejected. + + `-Wsystem-headers' + Issue warnings for code in system headers. These are normally + unhelpful in finding bugs in your own code, therefore suppressed. + If you are responsible for the system library, you may want to see + them. + + `-w' + Suppress all warnings, including those which GNU CPP issues by + default. + + `-pedantic' + Issue all the mandatory diagnostics listed in the C standard. + Some of them are left out by default, since they trigger + frequently on harmless code. + + `-pedantic-errors' + Issue all the mandatory diagnostics, and make all mandatory + diagnostics into errors. This includes mandatory diagnostics that + GCC issues without `-pedantic' but treats as warnings. + + `-M' + Instead of outputting the result of preprocessing, output a rule + suitable for `make' describing the dependencies of the main source + file. The preprocessor outputs one `make' rule containing the + object file name for that source file, a colon, and the names of + all the included files, including those coming from `-include' or + `-imacros' command line options. + + Unless specified explicitly (with `-MT' or `-MQ'), the object file + name consists of the basename of the source file with any suffix + replaced with object file suffix. If there are many included + files then the rule is split into several lines using `\'-newline. + The rule has no commands. + + This option does not suppress the preprocessor's debug output, + such as `-dM'. To avoid mixing such debug output with the + dependency rules you should explicitly specify the dependency + output file with `-MF', or use an environment variable like + `DEPENDENCIES_OUTPUT' (*note DEPENDENCIES_OUTPUT::). Debug output + will still be sent to the regular output stream as normal. + + Passing `-M' to the driver implies `-E'. + + `-MM' + Like `-M' but do not mention header files that are found in system + header directories, nor header files that are included, directly + or indirectly, from such a header. + + This implies that the choice of angle brackets or double quotes in + an `#include' directive does not in itself determine whether that + header will appear in `-MM' dependency output. This is a slight + change in semantics from GCC versions 3.0 and earlier. + + `-MF FILE' + When used with `-M' or `-MM', specifies a file to write the + dependencies to. If no `-MF' switch is given the preprocessor + sends the rules to the same place it would have sent preprocessed + output. + + When used with the driver options `-MD' or `-MMD', `-MF' overrides + the default dependency output file. + + `-MG' + When used with `-M' or `-MM', `-MG' says to treat missing header + files as generated files and assume they live in the same + directory as the source file. It suppresses preprocessed output, + as a missing header file is ordinarily an error. + + This feature is used in automatic updating of makefiles. + + `-MP' + This option instructs CPP to add a phony target for each dependency + other than the main file, causing each to depend on nothing. These + dummy rules work around errors `make' gives if you remove header + files without updating the `Makefile' to match. + + This is typical output: + + test.o: test.c test.h + + test.h: + + `-MT TARGET' + Change the target of the rule emitted by dependency generation. By + default CPP takes the name of the main input file, including any + path, deletes any file suffix such as `.c', and appends the + platform's usual object suffix. The result is the target. + + An `-MT' option will set the target to be exactly the string you + specify. If you want multiple targets, you can specify them as a + single argument to `-MT', or use multiple `-MT' options. + + For example, `-MT '$(objpfx)foo.o'' might give + + $(objpfx)foo.o: foo.c + + `-MQ TARGET' + Same as `-MT', but it quotes any characters which are special to + Make. `-MQ '$(objpfx)foo.o'' gives + + $$(objpfx)foo.o: foo.c + + The default target is automatically quoted, as if it were given + with `-MQ'. + + `-MD' + `-MD' is equivalent to `-M -MF FILE', except that `-E' is not + implied. The driver determines FILE based on whether an `-o' + option is given. If it is, the driver uses its argument but with + a suffix of `.d', otherwise it take the basename of the input file + and applies a `.d' suffix. + + If `-MD' is used in conjunction with `-E', any `-o' switch is + understood to specify the dependency output file (but *note + -MF::), but if used without `-E', each `-o' is understood to + specify a target object file. + + Since `-E' is not implied, `-MD' can be used to generate a + dependency output file as a side-effect of the compilation process. + + `-MMD' + Like `-MD' except mention only user header files, not system + -header files. + + `-x c' + `-x c++' + `-x objective-c' + `-x assembler-with-cpp' + Specify the source language: C, C++, Objective-C, or assembly. + This has nothing to do with standards conformance or extensions; + it merely selects which base syntax to expect. If you give none + of these options, cpp will deduce the language from the extension + of the source file: `.c', `.cc', `.m', or `.S'. Some other common + extensions for C++ and assembly are also recognized. If cpp does + not recognize the extension, it will treat the file as C; this is + the most generic mode. + + *Note:* Previous versions of cpp accepted a `-lang' option which + selected both the language and the standards conformance level. + This option has been removed, because it conflicts with the `-l' + option. + + `-std=STANDARD' + `-ansi' + Specify the standard to which the code should conform. Currently + cpp only knows about the standards for C; other language standards + will be added in the future. + + STANDARD may be one of: + `iso9899:1990' + `c89' + The ISO C standard from 1990. `c89' is the customary + shorthand for this version of the standard. + + The `-ansi' option is equivalent to `-std=c89'. + + `iso9899:199409' + The 1990 C standard, as amended in 1994. + + `iso9899:1999' + `c99' + `iso9899:199x' + `c9x' + The revised ISO C standard, published in December 1999. + Before publication, this was known as C9X. + + `gnu89' + The 1990 C standard plus GNU extensions. This is the default. + + `gnu99' + `gnu9x' + The 1999 C standard plus GNU extensions. + + `-I-' + Split the include path. Any directories specified with `-I' + options before `-I-' are searched only for headers requested with + `#include "FILE"'; they are not searched for `#include '. + If additional directories are specified with `-I' options after + the `-I-', those directories are searched for all `#include' + directives. + + In addition, `-I-' inhibits the use of the directory of the current + file directory as the first search directory for `#include "FILE"'. + *Note Search Path::. + + `-nostdinc' + Do not search the standard system directories for header files. + Only the directories you have specified with `-I' options (and the + directory of the current file, if appropriate) are searched. + + `-nostdinc++' + Do not search for header files in the C++-specific standard + directories, but do still search the other standard directories. + (This option is used when building the C++ library.) + + `-include FILE' + Process FILE as if `#include "file"' appeared as the first line of + the primary source file. However, the first directory searched + for FILE is the preprocessor's working directory _instead of_ the + directory containing the main source file. If not found there, it + is searched for in the remainder of the `#include "..."' search + chain as normal. + + If multiple `-include' options are given, the files are included + in the order they appear on the command line. + + `-imacros FILE' + Exactly like `-include', except that any output produced by + scanning FILE is thrown away. Macros it defines remain defined. + This allows you to acquire all the macros from a header without + also processing its declarations. + + All files specified by `-imacros' are processed before all files + specified by `-include'. + + `-idirafter DIR' + Search DIR for header files, but do it _after_ all directories + specified with `-I' and the standard system directories have been + exhausted. DIR is treated as a system include directory. + + `-iprefix PREFIX' + Specify PREFIX as the prefix for subsequent `-iwithprefix' + options. If the prefix represents a directory, you should include + the final `/'. + + `-iwithprefix DIR' + `-iwithprefixbefore DIR' + Append DIR to the prefix specified previously with `-iprefix', and + add the resulting directory to the include search path. + `-iwithprefixbefore' puts it in the same place `-I' would; + `-iwithprefix' puts it where `-idirafter' would. + + Use of these options is discouraged. + + `-isystem DIR' + Search DIR for header files, after all directories specified by + `-I' but before the standard system directories. Mark it as a + system directory, so that it gets the same special treatment as is + applied to the standard system directories. *Note System + Headers::. + + `-fpreprocessed' + Indicate to the preprocessor that the input file has already been + preprocessed. This suppresses things like macro expansion, + trigraph conversion, escaped newline splicing, and processing of + most directives. The preprocessor still recognizes and removes + comments, so that you can pass a file preprocessed with `-C' to + the compiler without problems. In this mode the integrated + preprocessor is little more than a tokenizer for the front ends. + + `-fpreprocessed' is implicit if the input file has one of the + extensions `.i', `.ii' or `.mi'. These are the extensions that + GCC uses for preprocessed files created by `-save-temps'. + + `-ftabstop=WIDTH' + Set the distance between tab stops. This helps the preprocessor + report correct column numbers in warnings or errors, even if tabs + appear on the line. If the value is less than 1 or greater than + 100, the option is ignored. The default is 8. + + `-fno-show-column' + Do not print column numbers in diagnostics. This may be necessary + if diagnostics are being scanned by a program that does not + understand the column numbers, such as `dejagnu'. + + `-A PREDICATE=ANSWER' + Make an assertion with the predicate PREDICATE and answer ANSWER. + This form is preferred to the older form `-A PREDICATE(ANSWER)', + which is still supported, because it does not use shell special + characters. *Note Assertions::. + + `-A -PREDICATE=ANSWER' + Cancel an assertion with the predicate PREDICATE and answer ANSWER. + + `-A-' + Cancel all predefined assertions and all assertions preceding it on + the command line. Also, undefine all predefined macros and all + macros preceding it on the command line. (This is a historical + wart and may change in the future.) + + `-dCHARS' + CHARS is a sequence of one or more of the following characters, + and must not be preceded by a space. Other characters are + interpreted by the compiler proper, or reserved for future + versions of GCC, and so are silently ignored. If you specify + characters whose behavior conflicts, the result is undefined. + + `M' + Instead of the normal output, generate a list of `#define' + directives for all the macros defined during the execution of + the preprocessor, including predefined macros. This gives + you a way of finding out what is predefined in your version + of the preprocessor. Assuming you have no file `foo.h', the + command + + touch foo.h; cpp -dM foo.h + + will show all the predefined macros. + + `D' + Like `M' except in two respects: it does _not_ include the + predefined macros, and it outputs _both_ the `#define' + directives and the result of preprocessing. Both kinds of + output go to the standard output file. + + `N' + Like `D', but emit only the macro names, not their expansions. + + `I' + Output `#include' directives in addition to the result of + preprocessing. + + `-P' + Inhibit generation of linemarkers in the output from the + preprocessor. This might be useful when running the preprocessor + on something that is not C code, and will be sent to a program + which might be confused by the linemarkers. *Note Preprocessor + Output::. + + `-C' + Do not discard comments. All comments are passed through to the + output file, except for comments in processed directives, which + are deleted along with the directive. + + You should be prepared for side effects when using `-C'; it causes + the preprocessor to treat comments as tokens in their own right. + For example, comments appearing at the start of what would be a + directive line have the effect of turning that line into an + ordinary source line, since the first token on the line is no + longer a `#'. + + `-gcc' + Define the macros __GNUC__, __GNUC_MINOR__ and + __GNUC_PATCHLEVEL__. These are defined automatically when you use + `gcc -E'; you can turn them off in that case with `-no-gcc'. + + `-traditional' + Try to imitate the behavior of old-fashioned C, as opposed to ISO + C. *Note Traditional Mode::. + + `-trigraphs' + Process trigraph sequences. *Note Initial processing::. + + `-remap' + Enable special code to work around file systems which only permit + very short file names, such as MS-DOS. + + `-$' + Forbid the use of `$' in identifiers. The C standard allows + implementations to define extra characters that can appear in + identifiers. By default GNU CPP permits `$', a common extension. + + `-h' + `--help' + `--target-help' + Print text describing all the command line options instead of + preprocessing anything. + + `-v' + Verbose mode. Print out GNU CPP's version number at the beginning + of execution, and report the final form of the include path. + + `-H' + Print the name of each header file used, in addition to other + normal activities. Each name is indented to show how deep in the + `#include' stack it is. + + `-version' + `--version' + Print out GNU CPP's version number. With one dash, proceed to + preprocess as normal. With two dashes, exit immediately. + +  File: cpp.info, Node: Environment Variables, Next: GNU Free Documentation License, Prev: Invocation, Up: Top Environment Variables *************** in turn take precedence over the configu *** 64,70 **** This variable is the same as the environment variable `DEPENDENCIES_OUTPUT' (*note DEPENDENCIES_OUTPUT::), except that system header files are not ignored, so it implies `-M' rather ! than `-MM'. *Note Invocation::.  File: cpp.info, Node: GNU Free Documentation License, Next: Option Index, Prev: Environment Variables, Up: Top --- 554,561 ---- This variable is the same as the environment variable `DEPENDENCIES_OUTPUT' (*note DEPENDENCIES_OUTPUT::), except that system header files are not ignored, so it implies `-M' rather ! than `-MM'. However, the dependence on the main input file is ! omitted. *Note Invocation::.  File: cpp.info, Node: GNU Free Documentation License, Next: Option Index, Prev: Environment Variables, Up: Top *************** Index of Directives *** 561,681 **** * OBJC_INCLUDE_PATH: Environment Variables. * SUNPRO_DEPENDENCIES: Environment Variables. -  - File: cpp.info, Node: Concept Index, Prev: Index of Directives, Up: Top - - Concept Index - ************* - - * Menu: - - * # operator: Stringification. - * ## operator: Concatenation. - * _Pragma: Pragmas. - * alternative tokens: Tokenization. - * arguments: Macro Arguments. - * arguments in macro definitions: Macro Arguments. - * assertions: Assertions. - * assertions, cancelling: Assertions. - * backslash-newline: Initial processing. - * block comments: Initial processing. - * C++ named operators: C++ Named Operators. - * character constants: Tokenization. - * character sets: Initial processing. - * command line: Invocation. - * commenting out code: Deleted Code. - * comments: Initial processing. - * common predefined macros: Common Predefined Macros. - * computed includes: Computed Includes. - * concatenation: Concatenation. - * conditional group: Ifdef. - * conditionals: Conditionals. - * continued lines: Initial processing. - * controlling macro: Once-Only Headers. - * defined: Defined. - * dependencies for make as output: Environment Variables. - * dependencies, make: Invocation. - * diagnostic: Diagnostics. - * differences from previous versions: Differences from previous versions. - * digraphs: Tokenization. - * directive line: The preprocessing language. - * directive name: The preprocessing language. - * directives: The preprocessing language. - * empty macro arguments: Macro Arguments. - * environment variables: Environment Variables. - * 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. - * header file: Header Files. - * header file names: Tokenization. - * identifiers: Tokenization. - * implementation limits: Implementation limits. - * implementation-defined behavior: Implementation-defined behavior. - * including just once: Once-Only Headers. - * invalid token paste: Miscellaneous obsolete features. - * invocation: Invocation. - * iso646.h: C++ Named Operators. - * line comments: Initial processing. - * line control: Line Control. - * line endings: Initial processing. - * linemarkers: Preprocessor Output. - * macro argument expansion: Argument Prescan. - * macros in include: Computed Includes. - * macros with arguments: Macro Arguments. - * macros with variable arguments: Variadic Macros. - * make: Invocation. - * manifest constants: Object-like Macros. - * multi-line string constants: Miscellaneous obsolete features. - * named operators: C++ Named Operators. - * newlines in macro arguments: Newlines in Arguments. - * null directive: Other Directives. - * numbers: Tokenization. - * object-like macro: Object-like Macros. - * options: Invocation. - * options, grouping: Invocation. - * other tokens: Tokenization. - * output format: Preprocessor Output. - * overriding a header file: Wrapper Headers. - * parentheses in macro bodies: Operator Precedence Problems. - * pitfalls of macros: Macro Pitfalls. - * pragma poison: Miscellaneous obsolete features. - * predefined macros: Predefined Macros. - * predefined macros, system-specific: System-specific Predefined Macros. - * predicates: Assertions. - * preprocessing directives: The preprocessing language. - * preprocessing numbers: Tokenization. - * preprocessing tokens: Tokenization. - * prescan of macro arguments: Argument Prescan. - * problems with macros: Macro Pitfalls. - * punctuators: Tokenization. - * redefining macros: Undefining and Redefining Macros. - * repeated inclusion: Once-Only Headers. - * reporting errors: Diagnostics. - * reporting warnings: Diagnostics. - * reserved namespace: System-specific Predefined Macros. - * self-reference: Self-Referential Macros. - * semicolons (after macro calls): Swallowing the Semicolon. - * side effects (in macro arguments): Duplication of Side Effects. - * standard predefined macros.: Standard Predefined Macros. - * string constants: Tokenization. - * string literals: Tokenization. - * stringification: Stringification. - * symbolic constants: Object-like Macros. - * system header files <1>: System Headers. - * system header files: Header Files. - * system-specific predefined macros: System-specific Predefined Macros. - * testing predicates: Assertions. - * token concatenation: Concatenation. - * token pasting: Concatenation. - * tokens: Tokenization. - * trigraphs: Initial processing. - * undefining macros: Undefining and Redefining Macros. - * unsafe macros: Duplication of Side Effects. - * variable number of arguments: Variadic Macros. - * variadic macros: Variadic Macros. - * wrapper #ifndef: Once-Only Headers. - * wrapper headers: Wrapper Headers. - - --- 1052,1054 ---- diff -Nrc3pad gcc-3.2/gcc/doc/cpp.info-5 gcc-3.2.1/gcc/doc/cpp.info-5 *** gcc-3.2/gcc/doc/cpp.info-5 Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/doc/cpp.info-5 Tue Nov 19 18:17:11 2002 *************** *** 0 **** --- 1,126 ---- + This is doc/cpp.info, produced by makeinfo version 4.2 from + doc/cpp.texi. + + INFO-DIR-SECTION Programming + START-INFO-DIR-ENTRY + * Cpp: (cpp). The GNU C preprocessor. + END-INFO-DIR-ENTRY + +  + File: cpp.info, Node: Concept Index, Prev: Index of Directives, Up: Top + + Concept Index + ************* + + * Menu: + + * # operator: Stringification. + * ## operator: Concatenation. + * _Pragma: Pragmas. + * alternative tokens: Tokenization. + * arguments: Macro Arguments. + * arguments in macro definitions: Macro Arguments. + * assertions: Assertions. + * assertions, cancelling: Assertions. + * backslash-newline: Initial processing. + * block comments: Initial processing. + * C++ named operators: C++ Named Operators. + * character constants: Tokenization. + * character sets: Initial processing. + * command line: Invocation. + * commenting out code: Deleted Code. + * comments: Initial processing. + * common predefined macros: Common Predefined Macros. + * computed includes: Computed Includes. + * concatenation: Concatenation. + * conditional group: Ifdef. + * conditionals: Conditionals. + * continued lines: Initial processing. + * controlling macro: Once-Only Headers. + * defined: Defined. + * dependencies for make as output: Environment Variables. + * dependencies, make: Invocation. + * diagnostic: Diagnostics. + * differences from previous versions: Differences from previous versions. + * digraphs: Tokenization. + * directive line: The preprocessing language. + * directive name: The preprocessing language. + * directives: The preprocessing language. + * empty macro arguments: Macro Arguments. + * environment variables: Environment Variables. + * 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. + * header file: Header Files. + * header file names: Tokenization. + * identifiers: Tokenization. + * implementation limits: Implementation limits. + * implementation-defined behavior: Implementation-defined behavior. + * including just once: Once-Only Headers. + * invalid token paste: Miscellaneous obsolete features. + * invocation: Invocation. + * iso646.h: C++ Named Operators. + * line comments: Initial processing. + * line control: Line Control. + * line endings: Initial processing. + * linemarkers: Preprocessor Output. + * macro argument expansion: Argument Prescan. + * macros in include: Computed Includes. + * macros with arguments: Macro Arguments. + * macros with variable arguments: Variadic Macros. + * make: Invocation. + * manifest constants: Object-like Macros. + * multi-line string constants: Miscellaneous obsolete features. + * named operators: C++ Named Operators. + * newlines in macro arguments: Newlines in Arguments. + * null directive: Other Directives. + * numbers: Tokenization. + * object-like macro: Object-like Macros. + * options: Invocation. + * options, grouping: Invocation. + * other tokens: Tokenization. + * output format: Preprocessor Output. + * overriding a header file: Wrapper Headers. + * parentheses in macro bodies: Operator Precedence Problems. + * pitfalls of macros: Macro Pitfalls. + * pragma poison: Miscellaneous obsolete features. + * predefined macros: Predefined Macros. + * predefined macros, system-specific: System-specific Predefined Macros. + * predicates: Assertions. + * preprocessing directives: The preprocessing language. + * preprocessing numbers: Tokenization. + * preprocessing tokens: Tokenization. + * prescan of macro arguments: Argument Prescan. + * problems with macros: Macro Pitfalls. + * punctuators: Tokenization. + * redefining macros: Undefining and Redefining Macros. + * repeated inclusion: Once-Only Headers. + * reporting errors: Diagnostics. + * reporting warnings: Diagnostics. + * reserved namespace: System-specific Predefined Macros. + * self-reference: Self-Referential Macros. + * semicolons (after macro calls): Swallowing the Semicolon. + * side effects (in macro arguments): Duplication of Side Effects. + * standard predefined macros.: Standard Predefined Macros. + * string constants: Tokenization. + * string literals: Tokenization. + * stringification: Stringification. + * symbolic constants: Object-like Macros. + * system header files <1>: System Headers. + * system header files: Header Files. + * system-specific predefined macros: System-specific Predefined Macros. + * testing predicates: Assertions. + * token concatenation: Concatenation. + * token pasting: Concatenation. + * tokens: Tokenization. + * trigraphs: Initial processing. + * undefining macros: Undefining and Redefining Macros. + * unsafe macros: Duplication of Side Effects. + * variable number of arguments: Variadic Macros. + * variadic macros: Variadic Macros. + * wrapper #ifndef: Once-Only Headers. + * wrapper headers: Wrapper Headers. + + diff -Nrc3pad gcc-3.2/gcc/doc/cpp.texi gcc-3.2.1/gcc/doc/cpp.texi *** gcc-3.2/gcc/doc/cpp.texi Thu Mar 14 19:24:59 2002 --- gcc-3.2.1/gcc/doc/cpp.texi Sat Oct 5 09:36:28 2002 *************** version of GCC in use. *** 830,840 **** You can add to this list with the @option{-I@var{dir}} command line option. All the directories named by @option{-I} are searched, in ! left-to-right order, @emph{before} the default directories. You can ! also prevent GCC from searching any of the default directories with the ! @option{-nostdinc} option. This is useful when you are compiling an operating system kernel or some other program that does not use the standard C library facilities, or the standard C library itself. GCC looks for headers requested with @code{@w{#include "@var{file}"}} first in the directory containing the current file, then in the same --- 830,851 ---- You can add to this list with the @option{-I@var{dir}} command line option. All the directories named by @option{-I} are searched, in ! left-to-right order, @emph{before} the default directories. The only ! exception is when @file{dir} is already searched by default. In ! this case, the option is ignored and the search order for system ! directories remains unchanged. ! ! Duplicate directories are removed from the quote and bracket search ! chains before the two chains are merged to make the final search chain. ! Thus, it is possible for a directory to occur twice in the final search ! chain if it was specified in both the quote and bracket chains. ! ! You can prevent GCC from searching any of the default directories with ! the @option{-nostdinc} option. This is useful when you are compiling an operating system kernel or some other program that does not use the standard C library facilities, or the standard C library itself. + @option{-I} options are not ignored as described above when + @option{-nostdinc} is in effect. GCC looks for headers requested with @code{@w{#include "@var{file}"}} first in the directory containing the current file, then in the same *************** For example, if @file{/usr/include/sys/s *** 843,854 **** @code{@w{#include "types.h"}}, GCC looks for @file{types.h} first in @file{/usr/include/sys}, then in its usual search path. - If you name a search directory with @option{-I@var{dir}} that is also a - system include directory, the @option{-I} wins; the directory will be - searched according to the @option{-I} ordering, and it will not be - treated as a system include directory. GCC will warn you when a system - include directory is hidden in this way. - @samp{#line} (@pxref{Line Control}) does not change GCC's idea of the directory containing the current file. --- 854,859 ---- *************** found in that directory will be consider *** 1081,1088 **** All directories named by @option{-isystem} are searched @emph{after} all directories named by @option{-I}, no matter what their order was on the command line. If the same directory is named by both @option{-I} and ! @option{-isystem}, @option{-I} wins; it is as if the @option{-isystem} option ! had never been specified at all. GCC warns you when this happens. @findex #pragma GCC system_header There is also a directive, @code{@w{#pragma GCC system_header}}, which --- 1086,1093 ---- All directories named by @option{-isystem} are searched @emph{after} all directories named by @option{-I}, no matter what their order was on the command line. If the same directory is named by both @option{-I} and ! @option{-isystem}, the @option{-I} option is ignored. GCC provides an ! informative message when this occurs if @option{-v} is used. @findex #pragma GCC system_header There is also a directive, @code{@w{#pragma GCC system_header}}, which *************** eprintf ("success!\n") *** 1676,1681 **** --- 1681,1695 ---- @expansion{} fprintf(stderr, "success!\n"); @end example + @noindent + The above explanation is ambiguous about the case where the only macro + parameter is a variable arguments parameter, as it is meaningless to + try to distinguish whether no argument at all is an empty argument or + a missing argument. In this case the C99 standard is clear that the + comma must remain, however the existing GCC extension used to swallow + the comma. So CPP retains the comma when conforming to a specific C + standard, and drops it otherwise. + C99 mandates that the only place the identifier @code{@w{__VA_ARGS__}} can appear is in the replacement list of a variadic macro. It may not be used as a macro name, macro argument name, or within a different type *************** conformance to the C Standard. GNU CPP *** 1806,1814 **** processing system header files, but when processing user files @code{__STDC__} is always 1. This has been reported to cause problems; for instance, some versions of Solaris provide X Windows headers that ! expect @code{__STDC__} to be either undefined or 1. You may be able to ! work around this sort of problem by using an @option{-I} option to ! cancel treatment of those headers as system headers. @xref{Invocation}. @item __STDC_VERSION__ This macro expands to the C Standard's version number, a long integer --- 1820,1826 ---- processing system header files, but when processing user files @code{__STDC__} is always 1. This has been reported to cause problems; for instance, some versions of Solaris provide X Windows headers that ! expect @code{__STDC__} to be either undefined or 1. @xref{Invocation}. @item __STDC_VERSION__ This macro expands to the C Standard's version number, a long integer *************** Here are a few more obsolete features. *** 3724,3732 **** @item Attempting to paste two tokens which together do not form a valid preprocessing token. ! The preprocessor currently warns about this and outputs the two tokens ! adjacently, which is probably the behavior the programmer intends. It ! may not work in future, though. Most of the time, when you get this warning, you will find that @samp{##} is being used superstitiously, to guard against whitespace appearing --- 3736,3744 ---- @item Attempting to paste two tokens which together do not form a valid preprocessing token. ! The preprocessor currently warns about this, and the resulting ! preprocessed output is undefined. The tokens remain distinct if the ! preprocessor is being used directly by the compiler front end. Most of the time, when you get this warning, you will find that @samp{##} is being used superstitiously, to guard against whitespace appearing diff -Nrc3pad gcc-3.2/gcc/doc/cppenv.texi gcc-3.2.1/gcc/doc/cppenv.texi *** gcc-3.2/gcc/doc/cppenv.texi Mon Mar 11 19:59:58 2002 --- gcc-3.2.1/gcc/doc/cppenv.texi Thu Aug 15 19:46:42 2002 *************** with an optional @option{-MT} switch too *** 66,72 **** This variable is the same as the environment variable @env{DEPENDENCIES_OUTPUT} (@pxref{DEPENDENCIES_OUTPUT}), except that system header files are not ignored, so it implies @option{-M} rather ! than @option{-MM}. @ifset cppmanual @xref{Invocation}. @end ifset --- 66,73 ---- This variable is the same as the environment variable @env{DEPENDENCIES_OUTPUT} (@pxref{DEPENDENCIES_OUTPUT}), except that system header files are not ignored, so it implies @option{-M} rather ! than @option{-MM}. However, the dependence on the main input file is ! omitted. @ifset cppmanual @xref{Invocation}. @end ifset diff -Nrc3pad gcc-3.2/gcc/doc/cppopts.texi gcc-3.2.1/gcc/doc/cppopts.texi *** gcc-3.2/gcc/doc/cppopts.texi Mon Mar 11 19:59:58 2002 --- gcc-3.2.1/gcc/doc/cppopts.texi Wed Sep 11 16:40:27 2002 *************** standard-conforming modes it converts th *** 541,550 **** The nine trigraphs and their replacements are ! @example Trigraph: ??( ??) ??< ??> ??= ??/ ??' ??! ??- Replacement: [ ] @{ @} # \ ^ | ~ ! @end example @end ifclear @item -remap --- 541,550 ---- The nine trigraphs and their replacements are ! @smallexample Trigraph: ??( ??) ??< ??> ??= ??/ ??' ??! ??- Replacement: [ ] @{ @} # \ ^ | ~ ! @end smallexample @end ifclear @item -remap diff -Nrc3pad gcc-3.2/gcc/doc/extend.texi gcc-3.2.1/gcc/doc/extend.texi *** gcc-3.2/gcc/doc/extend.texi Thu Apr 11 21:36:04 2002 --- gcc-3.2.1/gcc/doc/extend.texi Wed Oct 9 21:31:00 2002 *************** extensions, accepted by GCC in C89 mode *** 385,391 **** * Labels as Values:: Getting pointers to labels, and computed gotos. * Nested Functions:: As in Algol and Pascal, lexical scoping of functions. * Constructing Calls:: Dispatching a call to another function. - * Naming Types:: Giving a name to the type of some expression. * Typeof:: @code{typeof}: referring to the type of an expression. * Lvalues:: Using @samp{?:}, @samp{,} and casts in lvalues. * Conditionals:: Omitting the middle operand of a @samp{?:} expression. --- 385,390 ---- *************** the value of an enumeration constant, th *** 495,502 **** the initial value of a static variable. If you don't know the type of the operand, you can still do this, but you ! must use @code{typeof} (@pxref{Typeof}) or type naming (@pxref{Naming ! Types}). Statement expressions are not supported fully in G++, and their fate there is unclear. (It is possible that they will become fully supported --- 494,500 ---- the initial value of a static variable. If you don't know the type of the operand, you can still do this, but you ! must use @code{typeof} (@pxref{Typeof}). Statement expressions are not supported fully in G++, and their fate there is unclear. (It is possible that they will become fully supported *************** GCC implements taking the address of a n *** 739,745 **** called @dfn{trampolines}. A paper describing them is available as @noindent ! @uref{http://people.debian.org/~karlheg/Usenix88-lexic.pdf}. A nested function can jump to a label inherited from a containing function, provided the label was explicitly declared in the containing --- 737,743 ---- called @dfn{trampolines}. A paper describing them is available as @noindent ! @uref{http://people.debian.org/~aaronl/Usenix88-lexic.pdf}. A nested function can jump to a label inherited from a containing function, provided the label was explicitly declared in the containing *************** the containing function. You should spe *** 845,873 **** returned by @code{__builtin_apply}. @end deftypefn - @node Naming Types - @section Naming an Expression's Type - @cindex naming types - - You can give a name to the type of an expression using a @code{typedef} - declaration with an initializer. Here is how to define @var{name} as a - type name for the type of @var{exp}: - - @example - typedef @var{name} = @var{exp}; - @end example - - This is useful in conjunction with the statements-within-expressions - feature. Here is how the two together can be used to define a safe - ``maximum'' macro that operates on any arithmetic type: - - @example - #define max(a,b) \ - (@{typedef _ta = (a), _tb = (b); \ - _ta _a = (a); _tb _b = (b); \ - _a > _b ? _a : _b; @}) - @end example - @cindex underscores in variables in macros @cindex @samp{_} in variables in macros @cindex local variables in macros --- 843,848 ---- *************** A @code{typeof}-construct can be used an *** 919,924 **** --- 894,914 ---- used. For example, you can use it in a declaration, in a cast, or inside of @code{sizeof} or @code{typeof}. + @code{typeof} is often useful in conjunction with the + statements-within-expressions feature. Here is how the two together can + be used to define a safe ``maximum'' macro that operates on any + arithmetic type and evaluates each of its arguments exactly once: + + @example + #define max(a,b) \ + (@{ typeof (a) _a = (a); \ + typeof (b) _b = (b); \ + _a > _b ? _a : _b; @}) + @end example + + @noindent + Some more examples of the use of @code{typeof}: + @itemize @bullet @item This declares @code{y} with the type of what @code{x} points to. *************** Thus, @code{array (pointer (char), 4)} i *** 968,973 **** --- 958,983 ---- pointers to @code{char}. @end itemize + @emph{Compatibility Note:} In addition to @code{typeof}, GCC 2 supported + a more limited extension which permitted one to write + + @example + typedef @var{T} = @var{expr}; + @end example + + @noindent + with the effect of declaring @var{T} to have the type of the expression + @var{expr}. This extension does not work with GCC 3 (versions between + 3.0 and 3.2 will crash; 3.2.1 and later give an error). Code which + relies on it should be rewritten to use @code{typeof}: + + @example + typedef typeof(@var{expr}) @var{T}; + @end example + + @noindent + This will work with all versions of GCC@. + @node Lvalues @section Generalized Lvalues @cindex compound expressions as lvalues *************** variable number of arguments much as a f *** 1396,1404 **** defining the macro is similar to that of a function. Here is an example: ! @example #define debug(format, ...) fprintf (stderr, format, __VA_ARGS__) ! @end example Here @samp{@dots{}} is a @dfn{variable argument}. In the invocation of such a macro, it represents the zero or more tokens until the closing --- 1406,1414 ---- defining the macro is similar to that of a function. Here is an example: ! @smallexample #define debug(format, ...) fprintf (stderr, format, __VA_ARGS__) ! @end smallexample Here @samp{@dots{}} is a @dfn{variable argument}. In the invocation of such a macro, it represents the zero or more tokens until the closing *************** string. *** 1437,1445 **** To help solve this problem, CPP behaves specially for variable arguments used with the token paste operator, @samp{##}. If instead you write ! @example #define debug(format, ...) fprintf (stderr, format, ## __VA_ARGS__) ! @end example and if the variable arguments are omitted or empty, the @samp{##} operator causes the preprocessor to remove the comma before it. If you --- 1447,1455 ---- To help solve this problem, CPP behaves specially for variable arguments used with the token paste operator, @samp{##}. If instead you write ! @smallexample #define debug(format, ...) fprintf (stderr, format, ## __VA_ARGS__) ! @end smallexample and if the variable arguments are omitted or empty, the @samp{##} operator causes the preprocessor to remove the comma before it. If you *************** nested subobject to initialize; the list *** 1749,1757 **** subobject corresponding to the closest surrounding brace pair. For example, with the @samp{struct point} declaration above: ! @example struct point ptarray[10] = @{ [2].y = yv2, [2].x = xv2, [0].x = xv0 @}; ! @end example @noindent If the same field is initialized multiple times, it will have value from --- 1759,1767 ---- subobject corresponding to the closest surrounding brace pair. For example, with the @samp{struct point} declaration above: ! @smallexample struct point ptarray[10] = @{ [2].y = yv2, [2].x = xv2, [0].x = xv0 @}; ! @end smallexample @noindent If the same field is initialized multiple times, it will have value from *************** the minimum value of variables @var{i} a *** 6170,6181 **** However, side effects in @code{X} or @code{Y} may cause unintended behavior. For example, @code{MIN (i++, j++)} will fail, incrementing ! the smaller counter twice. A GNU C extension allows you to write safe ! macros that avoid this kind of problem (@pxref{Naming Types,,Naming an ! Expression's Type}). However, writing @code{MIN} and @code{MAX} as ! macros also forces you to use function-call notation for a ! fundamental arithmetic operation. Using GNU C++ extensions, you can ! write @w{@samp{int min = i ?} are built into the compiler, they properly handle expressions with side-effects; @w{@samp{int min = i++ ?} are built into the compiler, they properly handle expressions with side-effects; @w{@samp{int min = i++ _b ? _a : _b; }) - The reason for using names that start with underscores for the local variables is to avoid conflicts with variable names that occur within the expressions that are substituted for `a' and `b'. Eventually we --- 308,313 ---- *************** declare variables whose scopes start onl *** 287,293 **** this will be a more reliable way to prevent such conflicts.  ! File: gcc.info, Node: Typeof, Next: Lvalues, Prev: Naming Types, Up: C Extensions Referring to a Type with `typeof' ================================= --- 316,322 ---- this will be a more reliable way to prevent such conflicts.  ! File: gcc.info, Node: Typeof, Next: Lvalues, Prev: Constructing Calls, Up: C Extensions Referring to a Type with `typeof' ================================= *************** Keywords::. *** 318,323 **** --- 347,364 ---- used. For example, you can use it in a declaration, in a cast, or inside of `sizeof' or `typeof'. + `typeof' is often useful in conjunction with the + statements-within-expressions feature. Here is how the two together can + be used to define a safe "maximum" macro that operates on any + arithmetic type and evaluates each of its arguments exactly once: + + #define max(a,b) \ + ({ typeof (a) _a = (a); \ + typeof (b) _b = (b); \ + _a > _b ? _a : _b; }) + + Some more examples of the use of `typeof': + * This declares `y' with the type of what `x' points to. typeof (*x) y; *************** inside of `sizeof' or `typeof'. *** 347,352 **** --- 388,407 ---- Thus, `array (pointer (char), 4)' is the type of arrays of 4 pointers to `char'. + _Compatibility Note:_ In addition to `typeof', GCC 2 supported a + more limited extension which permitted one to write + + typedef T = EXPR; + + with the effect of declaring T to have the type of the expression EXPR. + This extension does not work with GCC 3 (versions between 3.0 and 3.2 + will crash; 3.2.1 and later give an error). Code which relies on it + should be rewritten to use `typeof': + + typedef typeof(EXPR) T; + + This will work with all versions of GCC. +  File: gcc.info, Node: Lvalues, Next: Conditionals, Prev: Typeof, Up: C Extensions diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-17 gcc-3.2.1/gcc/doc/gcc.info-17 *** gcc-3.2/gcc/doc/gcc.info-17 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-17 Tue Nov 19 18:17:12 2002 *************** value of variables I and J. *** 232,242 **** However, side effects in `X' or `Y' may cause unintended behavior. For example, `MIN (i++, j++)' will fail, incrementing the smaller ! counter twice. A GNU C extension allows you to write safe macros that ! avoid this kind of problem (*note Naming an Expression's Type: Naming ! Types.). However, writing `MIN' and `MAX' as macros also forces you to ! use function-call notation for a fundamental arithmetic operation. ! Using GNU C++ extensions, you can write `int min = i ?' are built into the compiler, they properly handle expressions with side-effects; `int min = i++ ?' are built into the compiler, they properly handle expressions with side-effects; `int min = i++ ' on systems with ISO C headers) and not to - declare `time' if the system header files declare it, or failing - that to use `time_t' as the return type of `time'. - - * When compiling functions that return `float', PCC converts it to a - double. GCC actually returns a `float'. If you are concerned - with PCC compatibility, you should declare your functions to return - `double'; you might as well say what you mean. - - * When compiling functions that return structures or unions, GCC - output code normally uses a method different from that used on most - versions of Unix. As a result, code compiled with GCC cannot call - a structure-returning function compiled with PCC, and vice versa. - - The method used by GCC is as follows: a structure or union which is - 1, 2, 4 or 8 bytes long is returned like a scalar. A structure or - union with any other size is stored into an address supplied by - the caller (usually in a special, fixed register, but on some - machines it is passed on the stack). The machine-description - macros `STRUCT_VALUE' and `STRUCT_INCOMING_VALUE' tell GCC where - to pass this address. - - By contrast, PCC on most target machines returns structures and - unions of any size by copying the data into an area of static - storage, and then returning the address of that storage as if it - were a pointer value. The caller must copy the data from that - memory area to the place where the value is wanted. GCC does not - use this method because it is slower and nonreentrant. - - On some newer machines, PCC uses a reentrant convention for all - structure and union returning. GCC on most of these machines uses - a compatible convention when returning structures and unions in - memory, but still returns small structures and unions in registers. - - You can tell GCC to use a compatible convention for all structure - and union returning with the option `-fpcc-struct-return'. - - * GCC complains about program fragments such as `0x74ae-0x4000' - which appear to be two hexadecimal constants separated by the minus - operator. Actually, this string is a single "preprocessing token". - Each such token must correspond to one token in C. Since this - does not, GCC prints an error message. Although it may appear - obvious that what is meant is an operator and two values, the ISO - C standard specifically requires that this be treated as erroneous. - - A "preprocessing token" is a "preprocessing number" if it begins - with a digit and is followed by letters, underscores, digits, - periods and `e+', `e-', `E+', `E-', `p+', `p-', `P+', or `P-' - character sequences. (In strict C89 mode, the sequences `p+', - `p-', `P+' and `P-' cannot appear in preprocessing numbers.) - - To make the above program fragment valid, place whitespace in - front of the minus sign. This whitespace will end the - preprocessing number. - -  - File: gcc.info, Node: Fixed Headers, Next: Standard Libraries, Prev: Incompatibilities, Up: Trouble - - Fixed Header Files - ================== - - GCC needs to install corrected versions of some system header files. - This is because most target systems have some header files that won't - work with GCC unless they are changed. Some have bugs, some are - incompatible with ISO C, and some depend on special features of other - compilers. - - Installing GCC automatically creates and installs the fixed header - files, by running a program called `fixincludes' (or for certain - targets an alternative such as `fixinc.svr4'). Normally, you don't - need to pay attention to this. But there are cases where it doesn't do - the right thing automatically. - - * If you update the system's header files, such as by installing a - new system version, the fixed header files of GCC are not - automatically updated. The easiest way to update them is to - reinstall GCC. (If you want to be clever, look in the makefile - and you can find a shortcut.) - - * On some systems, in particular SunOS 4, header file directories - contain machine-specific symbolic links in certain places. This - makes it possible to share most of the header files among hosts - running the same version of SunOS 4 on different machine models. - - The programs that fix the header files do not understand this - special way of using symbolic links; therefore, the directory of - fixed header files is good only for the machine model used to - build it. - - In SunOS 4, only programs that look inside the kernel will notice - the difference between machine models. Therefore, for most - purposes, you need not be concerned about this. - - It is possible to make separate sets of fixed header files for the - different machine models, and arrange a structure of symbolic - links so as to use the proper set, but you'll have to do this by - hand. - - * On Lynxos, GCC by default does not fix the header files. This is - because bugs in the shell cause the `fixincludes' script to fail. - - This means you will encounter problems due to bugs in the system - header files. It may be no comfort that they aren't GCC's fault, - but it does mean that there's nothing for us to do about them. - -  - File: gcc.info, Node: Standard Libraries, Next: Disappointments, Prev: Fixed Headers, Up: Trouble - - Standard Libraries - ================== - - GCC by itself attempts to be a conforming freestanding - implementation. *Note Language Standards Supported by GCC: Standards, - for details of what this means. Beyond the library facilities required - of such an implementation, the rest of the C library is supplied by the - vendor of the operating system. If that C library doesn't conform to - the C standards, then your programs might get warnings (especially when - using `-Wall') that you don't expect. - - For example, the `sprintf' function on SunOS 4.1.3 returns `char *' - while the C standard says that `sprintf' returns an `int'. The - `fixincludes' program could make the prototype for this function match - the Standard, but that would be wrong, since the function will still - return `char *'. - - If you need a Standard compliant library, then you need to find one, - as GCC does not provide one. The GNU C library (called `glibc') - provides ISO C, POSIX, BSD, SystemV and X/Open compatibility for - GNU/Linux and HURD-based GNU systems; no recent version of it supports - other systems, though some very old versions did. Version 2.2 of the - GNU C library includes nearly complete C99 support. You could also ask - your operating system vendor if newer libraries are available. - --- 983,985 ---- diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-19 gcc-3.2.1/gcc/doc/gcc.info-19 *** gcc-3.2/gcc/doc/gcc.info-19 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-19 Tue Nov 19 18:17:12 2002 *************** software. Copies published by the Free *** 33,38 **** --- 33,334 ---- funds for GNU development.  + File: gcc.info, Node: Incompatibilities, Next: Fixed Headers, Prev: External Bugs, Up: Trouble + + Incompatibilities of GCC + ======================== + + There are several noteworthy incompatibilities between GNU C and K&R + (non-ISO) versions of C. The `-traditional' option eliminates many of + these incompatibilities, _but not all_, by telling GCC to behave like a + K&R C compiler. + + * GCC normally makes string constants read-only. If several + identical-looking string constants are used, GCC stores only one + copy of the string. + + One consequence is that you cannot call `mktemp' with a string + constant argument. The function `mktemp' always alters the string + its argument points to. + + Another consequence is that `sscanf' does not work on some systems + when passed a string constant as its format control string or + input. This is because `sscanf' incorrectly tries to write into + the string constant. Likewise `fscanf' and `scanf'. + + The best solution to these problems is to change the program to use + `char'-array variables with initialization strings for these + purposes instead of string constants. But if this is not possible, + you can use the `-fwritable-strings' flag, which directs GCC to + handle string constants the same way most C compilers do. + `-traditional' also has this effect, among others. + + * `-2147483648' is positive. + + This is because 2147483648 cannot fit in the type `int', so + (following the ISO C rules) its data type is `unsigned long int'. + Negating this value yields 2147483648 again. + + * GCC does not substitute macro arguments when they appear inside of + string constants. For example, the following macro in GCC + + #define foo(a) "a" + + will produce output `"a"' regardless of what the argument A is. + + The `-traditional' option directs GCC to handle such cases (among + others) in the old-fashioned (non-ISO) fashion. + + * When you use `setjmp' and `longjmp', the only automatic variables + guaranteed to remain valid are those declared `volatile'. This is + a consequence of automatic register allocation. Consider this + function: + + jmp_buf j; + + foo () + { + int a, b; + + a = fun1 (); + if (setjmp (j)) + return a; + + a = fun2 (); + /* `longjmp (j)' may occur in `fun3'. */ + return a + fun3 (); + } + + Here `a' may or may not be restored to its first value when the + `longjmp' occurs. If `a' is allocated in a register, then its + first value is restored; otherwise, it keeps the last value stored + in it. + + If you use the `-W' option with the `-O' option, you will get a + warning when GCC thinks such a problem might be possible. + + The `-traditional' option directs GCC to put variables in the + stack by default, rather than in registers, in functions that call + `setjmp'. This results in the behavior found in traditional C + compilers. + + * Programs that use preprocessing directives in the middle of macro + arguments do not work with GCC. For example, a program like this + will not work: + + foobar ( + #define luser + hack) + + ISO C does not permit such a construct. It would make sense to + support it when `-traditional' is used, but it is too much work to + implement. + + * K&R compilers allow comments to cross over an inclusion boundary + (i.e. started in an include file and ended in the including file). + I think this would be quite ugly and can't imagine it could be + needed. + + * Declarations of external variables and functions within a block + apply only to the block containing the declaration. In other + words, they have the same scope as any other declaration in the + same place. + + In some other C compilers, a `extern' declaration affects all the + rest of the file even if it happens within a block. + + The `-traditional' option directs GCC to treat all `extern' + declarations as global, like traditional compilers. + + * In traditional C, you can combine `long', etc., with a typedef + name, as shown here: + + typedef int foo; + typedef long foo bar; + + In ISO C, this is not allowed: `long' and other type modifiers + require an explicit `int'. Because this criterion is expressed by + Bison grammar rules rather than C code, the `-traditional' flag + cannot alter it. + + * PCC allows typedef names to be used as function parameters. The + difficulty described immediately above applies here too. + + * When in `-traditional' mode, GCC allows the following erroneous + pair of declarations to appear together in a given scope: + + typedef int foo; + typedef foo foo; + + * GCC treats all characters of identifiers as significant, even when + in `-traditional' mode. According to K&R-1 (2.2), "No more than + the first eight characters are significant, although more may be + used.". Also according to K&R-1 (2.2), "An identifier is a + sequence of letters and digits; the first character must be a + letter. The underscore _ counts as a letter.", but GCC also + allows dollar signs in identifiers. + + * PCC allows whitespace in the middle of compound assignment + operators such as `+='. GCC, following the ISO standard, does not + allow this. The difficulty described immediately above applies + here too. + + * GCC complains about unterminated character constants inside of + preprocessing conditionals that fail. Some programs have English + comments enclosed in conditionals that are guaranteed to fail; if + these comments contain apostrophes, GCC will probably report an + error. For example, this code would produce an error: + + #if 0 + You can't expect this to work. + #endif + + The best solution to such a problem is to put the text into an + actual C comment delimited by `/*...*/'. However, `-traditional' + suppresses these error messages. + + * Many user programs contain the declaration `long time ();'. In the + past, the system header files on many systems did not actually + declare `time', so it did not matter what type your program + declared it to return. But in systems with ISO C headers, `time' + is declared to return `time_t', and if that is not the same as + `long', then `long time ();' is erroneous. + + The solution is to change your program to use appropriate system + headers (`' on systems with ISO C headers) and not to + declare `time' if the system header files declare it, or failing + that to use `time_t' as the return type of `time'. + + * When compiling functions that return `float', PCC converts it to a + double. GCC actually returns a `float'. If you are concerned + with PCC compatibility, you should declare your functions to return + `double'; you might as well say what you mean. + + * When compiling functions that return structures or unions, GCC + output code normally uses a method different from that used on most + versions of Unix. As a result, code compiled with GCC cannot call + a structure-returning function compiled with PCC, and vice versa. + + The method used by GCC is as follows: a structure or union which is + 1, 2, 4 or 8 bytes long is returned like a scalar. A structure or + union with any other size is stored into an address supplied by + the caller (usually in a special, fixed register, but on some + machines it is passed on the stack). The machine-description + macros `STRUCT_VALUE' and `STRUCT_INCOMING_VALUE' tell GCC where + to pass this address. + + By contrast, PCC on most target machines returns structures and + unions of any size by copying the data into an area of static + storage, and then returning the address of that storage as if it + were a pointer value. The caller must copy the data from that + memory area to the place where the value is wanted. GCC does not + use this method because it is slower and nonreentrant. + + On some newer machines, PCC uses a reentrant convention for all + structure and union returning. GCC on most of these machines uses + a compatible convention when returning structures and unions in + memory, but still returns small structures and unions in registers. + + You can tell GCC to use a compatible convention for all structure + and union returning with the option `-fpcc-struct-return'. + + * GCC complains about program fragments such as `0x74ae-0x4000' + which appear to be two hexadecimal constants separated by the minus + operator. Actually, this string is a single "preprocessing token". + Each such token must correspond to one token in C. Since this + does not, GCC prints an error message. Although it may appear + obvious that what is meant is an operator and two values, the ISO + C standard specifically requires that this be treated as erroneous. + + A "preprocessing token" is a "preprocessing number" if it begins + with a digit and is followed by letters, underscores, digits, + periods and `e+', `e-', `E+', `E-', `p+', `p-', `P+', or `P-' + character sequences. (In strict C89 mode, the sequences `p+', + `p-', `P+' and `P-' cannot appear in preprocessing numbers.) + + To make the above program fragment valid, place whitespace in + front of the minus sign. This whitespace will end the + preprocessing number. + +  + File: gcc.info, Node: Fixed Headers, Next: Standard Libraries, Prev: Incompatibilities, Up: Trouble + + Fixed Header Files + ================== + + GCC needs to install corrected versions of some system header files. + This is because most target systems have some header files that won't + work with GCC unless they are changed. Some have bugs, some are + incompatible with ISO C, and some depend on special features of other + compilers. + + Installing GCC automatically creates and installs the fixed header + files, by running a program called `fixincludes' (or for certain + targets an alternative such as `fixinc.svr4'). Normally, you don't + need to pay attention to this. But there are cases where it doesn't do + the right thing automatically. + + * If you update the system's header files, such as by installing a + new system version, the fixed header files of GCC are not + automatically updated. The easiest way to update them is to + reinstall GCC. (If you want to be clever, look in the makefile + and you can find a shortcut.) + + * On some systems, in particular SunOS 4, header file directories + contain machine-specific symbolic links in certain places. This + makes it possible to share most of the header files among hosts + running the same version of SunOS 4 on different machine models. + + The programs that fix the header files do not understand this + special way of using symbolic links; therefore, the directory of + fixed header files is good only for the machine model used to + build it. + + In SunOS 4, only programs that look inside the kernel will notice + the difference between machine models. Therefore, for most + purposes, you need not be concerned about this. + + It is possible to make separate sets of fixed header files for the + different machine models, and arrange a structure of symbolic + links so as to use the proper set, but you'll have to do this by + hand. + + * On Lynxos, GCC by default does not fix the header files. This is + because bugs in the shell cause the `fixincludes' script to fail. + + This means you will encounter problems due to bugs in the system + header files. It may be no comfort that they aren't GCC's fault, + but it does mean that there's nothing for us to do about them. + +  + File: gcc.info, Node: Standard Libraries, Next: Disappointments, Prev: Fixed Headers, Up: Trouble + + Standard Libraries + ================== + + GCC by itself attempts to be a conforming freestanding + implementation. *Note Language Standards Supported by GCC: Standards, + for details of what this means. Beyond the library facilities required + of such an implementation, the rest of the C library is supplied by the + vendor of the operating system. If that C library doesn't conform to + the C standards, then your programs might get warnings (especially when + using `-Wall') that you don't expect. + + For example, the `sprintf' function on SunOS 4.1.3 returns `char *' + while the C standard says that `sprintf' returns an `int'. The + `fixincludes' program could make the prototype for this function match + the Standard, but that would be wrong, since the function will still + return `char *'. + + If you need a Standard compliant library, then you need to find one, + as GCC does not provide one. The GNU C library (called `glibc') + provides ISO C, POSIX, BSD, SystemV and X/Open compatibility for + GNU/Linux and HURD-based GNU systems; no recent version of it supports + other systems, though some very old versions did. Version 2.2 of the + GNU C library includes nearly complete C99 support. You could also ask + your operating system vendor if newer libraries are available. + +  File: gcc.info, Node: Disappointments, Next: C++ Misunderstandings, Prev: Standard Libraries, Up: Trouble Disappointments and Misunderstandings *************** address given above. *** 721,1136 **** Please read `http://gcc.gnu.org/bugs.html' for additional and/or more up-to-date bug reporting instructions before you post a bug report. -  - File: gcc.info, Node: Bug Reporting, Next: gccbug, Prev: Bug Lists, Up: Bugs - - How to Report Bugs - ================== - - The fundamental principle of reporting bugs usefully is this: - *report all the facts*. If you are not sure whether to state a fact or - leave it out, state it! - - Often people omit facts because they think they know what causes the - problem and they conclude that some details don't matter. Thus, you - might assume that the name of the variable you use in an example does - not matter. Well, probably it doesn't, but one cannot be sure. - Perhaps the bug is a stray memory reference which happens to fetch from - the location where that name is stored in memory; perhaps, if the name - were different, the contents of that location would fool the compiler - into doing the right thing despite the bug. Play it safe and give a - specific, complete example. That is the easiest thing for you to do, - and the most helpful. - - Keep in mind that the purpose of a bug report is to enable someone to - fix the bug if it is not known. It isn't very important what happens if - the bug is already known. Therefore, always write your bug reports on - the assumption that the bug is not known. - - Sometimes people give a few sketchy facts and ask, "Does this ring a - bell?" This cannot help us fix a bug, so it is basically useless. We - respond by asking for enough details to enable us to investigate. You - might as well expedite matters by sending them to begin with. - - Try to make your bug report self-contained. If we have to ask you - for more information, it is best if you include all the previous - information in your response, as well as the information that was - missing. - - Please report each bug in a separate message. This makes it easier - for us to track which bugs have been fixed and to forward your bugs - reports to the appropriate maintainer. - - To enable someone to investigate the bug, you should include all - these things: - - * The version of GCC. You can get this by running it with the `-v' - option. - - Without this, we won't know whether there is any point in looking - for the bug in the current version of GCC. - - * A complete input file that will reproduce the bug. If the bug is - in the C preprocessor, send a source file and any header files - that it requires. If the bug is in the compiler proper (`cc1'), - send the preprocessor output generated by adding `-save-temps' to - the compilation command (*note Debugging Options::). When you do - this, use the same `-I', `-D' or `-U' options that you used in - actual compilation. Then send the INPUT.i or INPUT.ii files - generated. - - A single statement is not enough of an example. In order to - compile it, it must be embedded in a complete file of compiler - input; and the bug might depend on the details of how this is done. - - Without a real example one can compile, all anyone can do about - your bug report is wish you luck. It would be futile to try to - guess how to provoke the bug. For example, bugs in register - allocation and reloading frequently depend on every little detail - of the function they happen in. - - Even if the input file that fails comes from a GNU program, you - should still send the complete test case. Don't ask the GCC - maintainers to do the extra work of obtaining the program in - question--they are all overworked as it is. Also, the problem may - depend on what is in the header files on your system; it is - unreliable for the GCC maintainers to try the problem with the - header files available to them. By sending CPP output, you can - eliminate this source of uncertainty and save us a certain - percentage of wild goose chases. - - * The command arguments you gave GCC to compile that example and - observe the bug. For example, did you use `-O'? To guarantee you - won't omit something important, list all the options. - - If we were to try to guess the arguments, we would probably guess - wrong and then we would not encounter the bug. - - * The type of machine you are using, and the operating system name - and version number. - - * The operands you gave to the `configure' command when you installed - the compiler. - - * A complete list of any modifications you have made to the compiler - source. (We don't promise to investigate the bug unless it - happens in an unmodified compiler. But if you've made - modifications and don't tell us, then you are sending us on a wild - goose chase.) - - Be precise about these changes. A description in English is not - enough--send a context diff for them. - - Adding files of your own (such as a machine description for a - machine we don't support) is a modification of the compiler source. - - * Details of any other deviations from the standard procedure for - installing GCC. - - * A description of what behavior you observe that you believe is - incorrect. For example, "The compiler gets a fatal signal," or, - "The assembler instruction at line 208 in the output is incorrect." - - Of course, if the bug is that the compiler gets a fatal signal, - then one can't miss it. But if the bug is incorrect output, the - maintainer might not notice unless it is glaringly wrong. None of - us has time to study all the assembler code from a 50-line C - program just on the chance that one instruction might be wrong. - We need _you_ to do this part! - - Even if the problem you experience is a fatal signal, you should - still say so explicitly. Suppose something strange is going on, - such as, your copy of the compiler is out of synch, or you have - encountered a bug in the C library on your system. (This has - happened!) Your copy might crash and the copy here would not. If - you said to expect a crash, then when the compiler here fails to - crash, we would know that the bug was not happening. If you don't - say to expect a crash, then we would not know whether the bug was - happening. We would not be able to draw any conclusion from our - observations. - - If the problem is a diagnostic when compiling GCC with some other - compiler, say whether it is a warning or an error. - - Often the observed symptom is incorrect output when your program - is run. Sad to say, this is not enough information unless the - program is short and simple. None of us has time to study a large - program to figure out how it would work if compiled correctly, - much less which line of it was compiled wrong. So you will have - to do that. Tell us which source line it is, and what incorrect - result happens when that line is executed. A person who - understands the program can find this as easily as finding a bug - in the program itself. - - * If you send examples of assembler code output from GCC, please use - `-g' when you make them. The debugging information includes - source line numbers which are essential for correlating the output - with the input. - - * If you wish to mention something in the GCC source, refer to it by - context, not by line number. - - The line numbers in the development sources don't match those in - your sources. Your line numbers would convey no useful - information to the maintainers. - - * Additional information from a debugger might enable someone to - find a problem on a machine which he does not have available. - However, you need to think when you collect this information if - you want it to have any chance of being useful. - - For example, many people send just a backtrace, but that is never - useful by itself. A simple backtrace with arguments conveys little - about GCC because the compiler is largely data-driven; the same - functions are called over and over for different RTL insns, doing - different things depending on the details of the insn. - - Most of the arguments listed in the backtrace are useless because - they are pointers to RTL list structure. The numeric values of the - pointers, which the debugger prints in the backtrace, have no - significance whatever; all that matters is the contents of the - objects they point to (and most of the contents are other such - pointers). - - In addition, most compiler passes consist of one or more loops that - scan the RTL insn sequence. The most vital piece of information - about such a loop--which insn it has reached--is usually in a - local variable, not in an argument. - - What you need to provide in addition to a backtrace are the values - of the local variables for several stack frames up. When a local - variable or an argument is an RTX, first print its value and then - use the GDB command `pr' to print the RTL expression that it points - to. (If GDB doesn't run on your machine, use your debugger to call - the function `debug_rtx' with the RTX as an argument.) In - general, whenever a variable is a pointer, its value is no use - without the data it points to. - - Here are some things that are not necessary: - - * A description of the envelope of the bug. - - Often people who encounter a bug spend a lot of time investigating - which changes to the input file will make the bug go away and which - changes will not affect it. - - This is often time consuming and not very useful, because the way - we will find the bug is by running a single example under the - debugger with breakpoints, not by pure deduction from a series of - examples. You might as well save your time for something else. - - Of course, if you can find a simpler example to report _instead_ of - the original one, that is a convenience. Errors in the output - will be easier to spot, running under the debugger will take less - time, etc. Most GCC bugs involve just one function, so the most - straightforward way to simplify an example is to delete all the - function definitions except the one where the bug occurs. Those - earlier in the file may be replaced by external declarations if - the crucial function depends on them. (Exception: inline - functions may affect compilation of functions defined later in the - file.) - - However, simplification is not vital; if you don't want to do this, - report the bug anyway and send the entire test case you used. - - * In particular, some people insert conditionals `#ifdef BUG' around - a statement which, if removed, makes the bug not happen. These - are just clutter; we won't pay any attention to them anyway. - Besides, you should send us cpp output, and that can't have - conditionals. - - * A patch for the bug. - - A patch for the bug is useful if it is a good one. But don't omit - the necessary information, such as the test case, on the - assumption that a patch is all we need. We might see problems - with your patch and decide to fix the problem another way, or we - might not understand it at all. - - Sometimes with a program as complicated as GCC it is very hard to - construct an example that will make the program follow a certain - path through the code. If you don't send the example, we won't be - able to construct one, so we won't be able to verify that the bug - is fixed. - - And if we can't understand what bug you are trying to fix, or why - your patch should be an improvement, we won't install it. A test - case will help us to understand. - - See `http://gcc.gnu.org/contribute.html' for guidelines on how to - make it easy for us to understand and install your patches. - - * A guess about what the bug is or what it depends on. - - Such guesses are usually wrong. Even I can't guess right about - such things without first using the debugger to find the facts. - - * A core dump file. - - We have no way of examining a core dump for your type of machine - unless we have an identical system--and if we do have one, we - should be able to reproduce the crash ourselves. - -  - File: gcc.info, Node: gccbug, Prev: Bug Reporting, Up: Bugs - - The gccbug script - ================= - - To simplify creation of bug reports, and to allow better tracking of - reports, we use the GNATS bug tracking system. Part of that system is - the `gccbug' script. This is a Unix shell script, so you need a shell - to run it. It is normally installed in the same directory where `gcc' - is installed. - - The gccbug script is derived from send-pr, *note Creating new - Problem Reports: (send-pr)using send-pr.. When invoked, it starts a - text editor so you can fill out the various fields of the report. When - the you quit the editor, the report is automatically send to the bug - reporting address. - - A number of fields in this bug report form are specific to GCC, and - are explained at `http://gcc.gnu.org/gnats.html'. - -  - File: gcc.info, Node: Service, Next: Contributing, Prev: Bugs, Up: Top - - How To Get Help with GCC - ************************ - - If you need help installing, using or changing GCC, there are two - ways to find it: - - * Send a message to a suitable network mailing list. First try - (for help installing or using GCC), and if - that brings no response, try . For help changing - GCC, ask . If you think you have found a bug in - GCC, please report it following the instructions at *note Bug - Reporting::. - - * Look in the service directory for someone who might help you for a - fee. The service directory is found at - `http://www.gnu.org/prep/service.html'. - -  - File: gcc.info, Node: Contributing, Next: VMS, Prev: Service, Up: Top - - Contributing to GCC Development - ******************************* - - If you would like to help pretest GCC releases to assure they work - well, our current development sources are available by CVS (see - `http://gcc.gnu.org/cvs.html'). Source and binary snapshots are also - available for FTP; see `http://gcc.gnu.org/snapshots.html'. - - If you would like to work on improvements to GCC, please read the - advice at these URLs: - - `http://gcc.gnu.org/contribute.html' - `http://gcc.gnu.org/contributewhy.html' - - for information on how to make useful contributions and avoid - duplication of effort. Suggested projects are listed at - `http://gcc.gnu.org/projects/'. - -  - File: gcc.info, Node: VMS, Next: Funding, Prev: Contributing, Up: Top - - Using GCC on VMS - **************** - - Here is how to use GCC on VMS. - - * Menu: - - * Include Files and VMS:: Where the preprocessor looks for the include files. - * Global Declarations:: How to do globaldef, globalref and globalvalue with - GCC. - * VMS Misc:: Misc information. - -  - File: gcc.info, Node: Include Files and VMS, Next: Global Declarations, Up: VMS - - Include Files and VMS - ===================== - - Due to the differences between the filesystems of Unix and VMS, GCC - attempts to translate file names in `#include' into names that VMS will - understand. The basic strategy is to prepend a prefix to the - specification of the include file, convert the whole filename to a VMS - filename, and then try to open the file. GCC tries various prefixes - one by one until one of them succeeds: - - 1. The first prefix is the `GNU_CC_INCLUDE:' logical name: this is - where GNU C header files are traditionally stored. If you wish to - store header files in non-standard locations, then you can assign - the logical `GNU_CC_INCLUDE' to be a search list, where each - element of the list is suitable for use with a rooted logical. - - 2. The next prefix tried is `SYS$SYSROOT:[SYSLIB.]'. This is where - VAX-C header files are traditionally stored. - - 3. If the include file specification by itself is a valid VMS - filename, the preprocessor then uses this name with no prefix in - an attempt to open the include file. - - 4. If the file specification is not a valid VMS filename (i.e. does - not contain a device or a directory specifier, and contains a `/' - character), the preprocessor tries to convert it from Unix syntax - to VMS syntax. - - Conversion works like this: the first directory name becomes a - device, and the rest of the directories are converted into - VMS-format directory names. For example, the name `X11/foobar.h' - is translated to `X11:[000000]foobar.h' or `X11:foobar.h', - whichever one can be opened. This strategy allows you to assign a - logical name to point to the actual location of the header files. - - 5. If none of these strategies succeeds, the `#include' fails. - - Include directives of the form: - - #include foobar - - are a common source of incompatibility between VAX-C and GCC. VAX-C - treats this much like a standard `#include ' directive. That - is incompatible with the ISO C behavior implemented by GCC: to expand - the name `foobar' as a macro. Macro expansion should eventually yield - one of the two standard formats for `#include': - - #include "FILE" - #include - - If you have this problem, the best solution is to modify the source - to convert the `#include' directives to one of the two standard forms. - That will work with either compiler. If you want a quick and dirty fix, - define the file names as macros with the proper expansion, like this: - - #define stdio - - This will work, as long as the name doesn't conflict with anything else - in the program. - - Another source of incompatibility is that VAX-C assumes that: - - #include "foobar" - - is actually asking for the file `foobar.h'. GCC does not make this - assumption, and instead takes what you ask for literally; it tries to - read the file `foobar'. The best way to avoid this problem is to - always specify the desired file extension in your include directives. - - GCC for VMS is distributed with a set of include files that is - sufficient to compile most general purpose programs. Even though the - GCC distribution does not contain header files to define constants and - structures for some VMS system-specific functions, there is no reason - why you cannot use GCC with any of these functions. You first may have - to generate or create header files, either by using the public domain - utility `UNSDL' (which can be found on a DECUS tape), or by extracting - the relevant modules from one of the system macro libraries, and using - an editor to construct a C header file. - - A `#include' file name cannot contain a DECNET node name. The - preprocessor reports an I/O error if you attempt to use a node name, - whether explicitly, or implicitly via a logical name. - --- 1017,1019 ---- diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-2 gcc-3.2.1/gcc/doc/gcc.info-2 *** gcc-3.2/gcc/doc/gcc.info-2 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-2 Tue Nov 19 18:17:12 2002 *************** from C, such as C++ and Objective-C) tha *** 335,345 **** single precision, use this option. This option has no effect when compiling with ISO or GNU C conventions (the default). - `-fshort-wchar' - Override the underlying type for `wchar_t' to be `short unsigned - int' instead of the default for the target. This option is useful - for building programs to run under WINE. -  File: gcc.info, Node: C++ Dialect Options, Next: Objective-C Dialect Options, Prev: C Dialect Options, Up: Invoking GCC --- 335,340 ---- *************** have meanings only for C++ programs: *** 559,564 **** --- 554,601 ---- that these functions will have linkage like inline functions; they just won't be inlined by default. + `-Wabi (C++ only)' + Warn when G++ generates code that is probably not compatible with + the vendor-neutral C++ ABI. Although an effort has been made to + warn about all such cases, there are probably some cases that are + not warned about, even though G++ is generating incompatible code. + There may also be cases where warnings are emitted even though + the code that is generated will be compatible. + + You should rewrite your code to avoid these warnings if you are + concerned about the fact that code generated by G++ may not be + binary compatible with code generated by other compilers. + + The known incompatibilites at this point include: + + * Incorrect handling of tail-padding for bit-fields. G++ may + attempt to pack data into the same byte as a base class. For + example: + + struct A { virtual void f(); int f1 : 1; }; + struct B : public A { int f2 : 1; }; + + In this case, G++ will place `B::f2' into the same byte + as`A::f1'; other compilers will not. You can avoid this + problem by explicitly padding `A' so that its size is a + multiple of the byte size on your platform; that will cause + G++ and other compilers to layout `B' identically. + + * Incorrect handling of tail-padding for virtual bases. G++ + does not use tail padding when laying out virtual bases. For + example: + + struct A { virtual void f(); char c1; }; + struct B { B(); char c2; }; + struct C : public A, public virtual B {}; + + In this case, G++ will not place `B' into the tail-padding for + `A'; other compilers will. You can avoid this problem by + explicitly padding `A' so that its size is a multiple of its + alignment (ignoring virtual base classes); that will cause + G++ and other compilers to layout `C' identically. + + `-Wctor-dtor-privacy (C++ only)' Warn when a class seems unusable, because all the constructors or destructors in a class are private and the class has no friends or diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-20 gcc-3.2.1/gcc/doc/gcc.info-20 *** gcc-3.2/gcc/doc/gcc.info-20 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-20 Tue Nov 19 18:17:12 2002 *************** software. Copies published by the Free *** 33,38 **** --- 33,451 ---- funds for GNU development.  + File: gcc.info, Node: Bug Reporting, Next: gccbug, Prev: Bug Lists, Up: Bugs + + How to Report Bugs + ================== + + The fundamental principle of reporting bugs usefully is this: + *report all the facts*. If you are not sure whether to state a fact or + leave it out, state it! + + Often people omit facts because they think they know what causes the + problem and they conclude that some details don't matter. Thus, you + might assume that the name of the variable you use in an example does + not matter. Well, probably it doesn't, but one cannot be sure. + Perhaps the bug is a stray memory reference which happens to fetch from + the location where that name is stored in memory; perhaps, if the name + were different, the contents of that location would fool the compiler + into doing the right thing despite the bug. Play it safe and give a + specific, complete example. That is the easiest thing for you to do, + and the most helpful. + + Keep in mind that the purpose of a bug report is to enable someone to + fix the bug if it is not known. It isn't very important what happens if + the bug is already known. Therefore, always write your bug reports on + the assumption that the bug is not known. + + Sometimes people give a few sketchy facts and ask, "Does this ring a + bell?" This cannot help us fix a bug, so it is basically useless. We + respond by asking for enough details to enable us to investigate. You + might as well expedite matters by sending them to begin with. + + Try to make your bug report self-contained. If we have to ask you + for more information, it is best if you include all the previous + information in your response, as well as the information that was + missing. + + Please report each bug in a separate message. This makes it easier + for us to track which bugs have been fixed and to forward your bugs + reports to the appropriate maintainer. + + To enable someone to investigate the bug, you should include all + these things: + + * The version of GCC. You can get this by running it with the `-v' + option. + + Without this, we won't know whether there is any point in looking + for the bug in the current version of GCC. + + * A complete input file that will reproduce the bug. If the bug is + in the C preprocessor, send a source file and any header files + that it requires. If the bug is in the compiler proper (`cc1'), + send the preprocessor output generated by adding `-save-temps' to + the compilation command (*note Debugging Options::). When you do + this, use the same `-I', `-D' or `-U' options that you used in + actual compilation. Then send the INPUT.i or INPUT.ii files + generated. + + A single statement is not enough of an example. In order to + compile it, it must be embedded in a complete file of compiler + input; and the bug might depend on the details of how this is done. + + Without a real example one can compile, all anyone can do about + your bug report is wish you luck. It would be futile to try to + guess how to provoke the bug. For example, bugs in register + allocation and reloading frequently depend on every little detail + of the function they happen in. + + Even if the input file that fails comes from a GNU program, you + should still send the complete test case. Don't ask the GCC + maintainers to do the extra work of obtaining the program in + question--they are all overworked as it is. Also, the problem may + depend on what is in the header files on your system; it is + unreliable for the GCC maintainers to try the problem with the + header files available to them. By sending CPP output, you can + eliminate this source of uncertainty and save us a certain + percentage of wild goose chases. + + * The command arguments you gave GCC to compile that example and + observe the bug. For example, did you use `-O'? To guarantee you + won't omit something important, list all the options. + + If we were to try to guess the arguments, we would probably guess + wrong and then we would not encounter the bug. + + * The type of machine you are using, and the operating system name + and version number. + + * The operands you gave to the `configure' command when you installed + the compiler. + + * A complete list of any modifications you have made to the compiler + source. (We don't promise to investigate the bug unless it + happens in an unmodified compiler. But if you've made + modifications and don't tell us, then you are sending us on a wild + goose chase.) + + Be precise about these changes. A description in English is not + enough--send a context diff for them. + + Adding files of your own (such as a machine description for a + machine we don't support) is a modification of the compiler source. + + * Details of any other deviations from the standard procedure for + installing GCC. + + * A description of what behavior you observe that you believe is + incorrect. For example, "The compiler gets a fatal signal," or, + "The assembler instruction at line 208 in the output is incorrect." + + Of course, if the bug is that the compiler gets a fatal signal, + then one can't miss it. But if the bug is incorrect output, the + maintainer might not notice unless it is glaringly wrong. None of + us has time to study all the assembler code from a 50-line C + program just on the chance that one instruction might be wrong. + We need _you_ to do this part! + + Even if the problem you experience is a fatal signal, you should + still say so explicitly. Suppose something strange is going on, + such as, your copy of the compiler is out of synch, or you have + encountered a bug in the C library on your system. (This has + happened!) Your copy might crash and the copy here would not. If + you said to expect a crash, then when the compiler here fails to + crash, we would know that the bug was not happening. If you don't + say to expect a crash, then we would not know whether the bug was + happening. We would not be able to draw any conclusion from our + observations. + + If the problem is a diagnostic when compiling GCC with some other + compiler, say whether it is a warning or an error. + + Often the observed symptom is incorrect output when your program + is run. Sad to say, this is not enough information unless the + program is short and simple. None of us has time to study a large + program to figure out how it would work if compiled correctly, + much less which line of it was compiled wrong. So you will have + to do that. Tell us which source line it is, and what incorrect + result happens when that line is executed. A person who + understands the program can find this as easily as finding a bug + in the program itself. + + * If you send examples of assembler code output from GCC, please use + `-g' when you make them. The debugging information includes + source line numbers which are essential for correlating the output + with the input. + + * If you wish to mention something in the GCC source, refer to it by + context, not by line number. + + The line numbers in the development sources don't match those in + your sources. Your line numbers would convey no useful + information to the maintainers. + + * Additional information from a debugger might enable someone to + find a problem on a machine which he does not have available. + However, you need to think when you collect this information if + you want it to have any chance of being useful. + + For example, many people send just a backtrace, but that is never + useful by itself. A simple backtrace with arguments conveys little + about GCC because the compiler is largely data-driven; the same + functions are called over and over for different RTL insns, doing + different things depending on the details of the insn. + + Most of the arguments listed in the backtrace are useless because + they are pointers to RTL list structure. The numeric values of the + pointers, which the debugger prints in the backtrace, have no + significance whatever; all that matters is the contents of the + objects they point to (and most of the contents are other such + pointers). + + In addition, most compiler passes consist of one or more loops that + scan the RTL insn sequence. The most vital piece of information + about such a loop--which insn it has reached--is usually in a + local variable, not in an argument. + + What you need to provide in addition to a backtrace are the values + of the local variables for several stack frames up. When a local + variable or an argument is an RTX, first print its value and then + use the GDB command `pr' to print the RTL expression that it points + to. (If GDB doesn't run on your machine, use your debugger to call + the function `debug_rtx' with the RTX as an argument.) In + general, whenever a variable is a pointer, its value is no use + without the data it points to. + + Here are some things that are not necessary: + + * A description of the envelope of the bug. + + Often people who encounter a bug spend a lot of time investigating + which changes to the input file will make the bug go away and which + changes will not affect it. + + This is often time consuming and not very useful, because the way + we will find the bug is by running a single example under the + debugger with breakpoints, not by pure deduction from a series of + examples. You might as well save your time for something else. + + Of course, if you can find a simpler example to report _instead_ of + the original one, that is a convenience. Errors in the output + will be easier to spot, running under the debugger will take less + time, etc. Most GCC bugs involve just one function, so the most + straightforward way to simplify an example is to delete all the + function definitions except the one where the bug occurs. Those + earlier in the file may be replaced by external declarations if + the crucial function depends on them. (Exception: inline + functions may affect compilation of functions defined later in the + file.) + + However, simplification is not vital; if you don't want to do this, + report the bug anyway and send the entire test case you used. + + * In particular, some people insert conditionals `#ifdef BUG' around + a statement which, if removed, makes the bug not happen. These + are just clutter; we won't pay any attention to them anyway. + Besides, you should send us cpp output, and that can't have + conditionals. + + * A patch for the bug. + + A patch for the bug is useful if it is a good one. But don't omit + the necessary information, such as the test case, on the + assumption that a patch is all we need. We might see problems + with your patch and decide to fix the problem another way, or we + might not understand it at all. + + Sometimes with a program as complicated as GCC it is very hard to + construct an example that will make the program follow a certain + path through the code. If you don't send the example, we won't be + able to construct one, so we won't be able to verify that the bug + is fixed. + + And if we can't understand what bug you are trying to fix, or why + your patch should be an improvement, we won't install it. A test + case will help us to understand. + + See `http://gcc.gnu.org/contribute.html' for guidelines on how to + make it easy for us to understand and install your patches. + + * A guess about what the bug is or what it depends on. + + Such guesses are usually wrong. Even I can't guess right about + such things without first using the debugger to find the facts. + + * A core dump file. + + We have no way of examining a core dump for your type of machine + unless we have an identical system--and if we do have one, we + should be able to reproduce the crash ourselves. + +  + File: gcc.info, Node: gccbug, Prev: Bug Reporting, Up: Bugs + + The gccbug script + ================= + + To simplify creation of bug reports, and to allow better tracking of + reports, we use the GNATS bug tracking system. Part of that system is + the `gccbug' script. This is a Unix shell script, so you need a shell + to run it. It is normally installed in the same directory where `gcc' + is installed. + + The gccbug script is derived from send-pr, *note Creating new + Problem Reports: (send-pr)using send-pr.. When invoked, it starts a + text editor so you can fill out the various fields of the report. When + the you quit the editor, the report is automatically send to the bug + reporting address. + + A number of fields in this bug report form are specific to GCC, and + are explained at `http://gcc.gnu.org/gnats.html'. + +  + File: gcc.info, Node: Service, Next: Contributing, Prev: Bugs, Up: Top + + How To Get Help with GCC + ************************ + + If you need help installing, using or changing GCC, there are two + ways to find it: + + * Send a message to a suitable network mailing list. First try + (for help installing or using GCC), and if + that brings no response, try . For help changing + GCC, ask . If you think you have found a bug in + GCC, please report it following the instructions at *note Bug + Reporting::. + + * Look in the service directory for someone who might help you for a + fee. The service directory is found at + `http://www.gnu.org/prep/service.html'. + +  + File: gcc.info, Node: Contributing, Next: VMS, Prev: Service, Up: Top + + Contributing to GCC Development + ******************************* + + If you would like to help pretest GCC releases to assure they work + well, our current development sources are available by CVS (see + `http://gcc.gnu.org/cvs.html'). Source and binary snapshots are also + available for FTP; see `http://gcc.gnu.org/snapshots.html'. + + If you would like to work on improvements to GCC, please read the + advice at these URLs: + + `http://gcc.gnu.org/contribute.html' + `http://gcc.gnu.org/contributewhy.html' + + for information on how to make useful contributions and avoid + duplication of effort. Suggested projects are listed at + `http://gcc.gnu.org/projects/'. + +  + File: gcc.info, Node: VMS, Next: Funding, Prev: Contributing, Up: Top + + Using GCC on VMS + **************** + + Here is how to use GCC on VMS. + + * Menu: + + * Include Files and VMS:: Where the preprocessor looks for the include files. + * Global Declarations:: How to do globaldef, globalref and globalvalue with + GCC. + * VMS Misc:: Misc information. + +  + File: gcc.info, Node: Include Files and VMS, Next: Global Declarations, Up: VMS + + Include Files and VMS + ===================== + + Due to the differences between the filesystems of Unix and VMS, GCC + attempts to translate file names in `#include' into names that VMS will + understand. The basic strategy is to prepend a prefix to the + specification of the include file, convert the whole filename to a VMS + filename, and then try to open the file. GCC tries various prefixes + one by one until one of them succeeds: + + 1. The first prefix is the `GNU_CC_INCLUDE:' logical name: this is + where GNU C header files are traditionally stored. If you wish to + store header files in non-standard locations, then you can assign + the logical `GNU_CC_INCLUDE' to be a search list, where each + element of the list is suitable for use with a rooted logical. + + 2. The next prefix tried is `SYS$SYSROOT:[SYSLIB.]'. This is where + VAX-C header files are traditionally stored. + + 3. If the include file specification by itself is a valid VMS + filename, the preprocessor then uses this name with no prefix in + an attempt to open the include file. + + 4. If the file specification is not a valid VMS filename (i.e. does + not contain a device or a directory specifier, and contains a `/' + character), the preprocessor tries to convert it from Unix syntax + to VMS syntax. + + Conversion works like this: the first directory name becomes a + device, and the rest of the directories are converted into + VMS-format directory names. For example, the name `X11/foobar.h' + is translated to `X11:[000000]foobar.h' or `X11:foobar.h', + whichever one can be opened. This strategy allows you to assign a + logical name to point to the actual location of the header files. + + 5. If none of these strategies succeeds, the `#include' fails. + + Include directives of the form: + + #include foobar + + are a common source of incompatibility between VAX-C and GCC. VAX-C + treats this much like a standard `#include ' directive. That + is incompatible with the ISO C behavior implemented by GCC: to expand + the name `foobar' as a macro. Macro expansion should eventually yield + one of the two standard formats for `#include': + + #include "FILE" + #include + + If you have this problem, the best solution is to modify the source + to convert the `#include' directives to one of the two standard forms. + That will work with either compiler. If you want a quick and dirty fix, + define the file names as macros with the proper expansion, like this: + + #define stdio + + This will work, as long as the name doesn't conflict with anything else + in the program. + + Another source of incompatibility is that VAX-C assumes that: + + #include "foobar" + + is actually asking for the file `foobar.h'. GCC does not make this + assumption, and instead takes what you ask for literally; it tries to + read the file `foobar'. The best way to avoid this problem is to + always specify the desired file extension in your include directives. + + GCC for VMS is distributed with a set of include files that is + sufficient to compile most general purpose programs. Even though the + GCC distribution does not contain header files to define constants and + structures for some VMS system-specific functions, there is no reason + why you cannot use GCC with any of these functions. You first may have + to generate or create header files, either by using the public domain + utility `UNSDL' (which can be found on a DECUS tape), or by extracting + the relevant modules from one of the system macro libraries, and using + an editor to construct a C header file. + + A `#include' file name cannot contain a DECNET node name. The + preprocessor reports an I/O error if you attempt to use a node name, + whether explicitly, or implicitly via a logical name. + +  File: gcc.info, Node: Global Declarations, Next: VMS Misc, Prev: Include Files and VMS, Up: VMS Global Declarations and VMS diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-21 gcc-3.2.1/gcc/doc/gcc.info-21 *** gcc-3.2/gcc/doc/gcc.info-21 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-21 Tue Nov 19 18:17:12 2002 *************** been. Any omissions in this list are ac *** 430,444 **** contributions are not listed. Please keep this list in alphabetical order. - Some projects operating under the GCC project maintain their own list - of contributors, such as the C++ library - (http://gcc.gnu.org/libstdc++/). - * Analog Devices helped implement the support for complex data types and iterators. ! * John David Anglin for improvements to libstdc++-v3 and the HP-UX ! port. * James van Artsdalen wrote the code that makes efficient use of the Intel 80387 register stack. --- 430,440 ---- contributions are not listed. Please keep this list in alphabetical order. * Analog Devices helped implement the support for complex data types and iterators. ! * John David Anglin for threading-related fixes and improvements to ! libstdc++-v3, and the HP-UX port. * James van Artsdalen wrote the code that makes efficient use of the Intel 80387 register stack. *************** of contributors, such as the C++ library *** 448,461 **** * Gerald Baumgartner added the signature extension to the C++ front end. * Neil Booth for work on cpplib, lang hooks, debug hooks and other miscellaneous clean-ups. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new ! languages. Chill and Java front end implementations. Initial implementations of cpplib, fix-header, config.guess, libio, and ! past C++ library (libg++) maintainer. * Devon Bowen helped port GCC to the Tahoe. --- 444,473 ---- * Gerald Baumgartner added the signature extension to the C++ front end. + * Godmar Back for his Java improvements and encouragement. + + * Scott Bambrough for help porting the Java compiler. + + * Jon Beniston for his Win32 port of Java. + + * Geoff Berry for his Java object serialization work and various + patches. + + * Eric Blake for helping to make GCJ and libgcj conform to the + specifications. + + * Hans-J. Boehm for his garbage collector, IA-64 libffi port, and + other Java work. + * Neil Booth for work on cpplib, lang hooks, debug hooks and other miscellaneous clean-ups. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new ! languages. Chill front end implementation. Initial implementations of cpplib, fix-header, config.guess, libio, and ! past C++ library (libg++) maintainer. Dreaming up, designing and ! implementing much of GCJ. * Devon Bowen helped port GCC to the Tahoe. *************** of contributors, such as the C++ library *** 469,494 **** * Herman A.J. ten Brugge for various fixes. * Joe Buck for his direction via the steering committee. * Craig Burley for leadership of the Fortran effort. ! * Paolo Carlini for his work on libstdc++-v3. * John Carr for his alias work, SPARC hacking, infrastructure improvements, previous contributions to the steering committee, loop optimizations, etc. ! * Steve Chamberlain wrote the support for the Hitachi SH and H8 ! processors and the PicoJava processor. * Scott Christley for his Objective-C contributions. * Branko Cibej for more warning contributions. * Nick Clifton for arm, mcore, fr30, v850, m32r work, `--help', and other random hacking. * Ralf Corsepius for SH testing and minor bugfixing. * Stan Cox for care and feeding of the x86 port and lots of behind --- 481,523 ---- * Herman A.J. ten Brugge for various fixes. + * Joerg Brunsmann for Java compiler hacking and help with the GCJ + FAQ. + * Joe Buck for his direction via the steering committee. * Craig Burley for leadership of the Fortran effort. ! * Stephan Buys for contributing Doxygen notes for libstdc++. ! ! * Paolo Carlini for libstdc++ work: lots of efficiency improvements ! to the string class, hard detective work on the frustrating ! localization issues, and keeping up with the problem reports. * John Carr for his alias work, SPARC hacking, infrastructure improvements, previous contributions to the steering committee, loop optimizations, etc. ! * Steve Chamberlain for support for the Hitachi SH and H8 processors ! and the PicoJava processor, and for GCJ config fixes. ! ! * Glenn Chambers for help with the GCJ FAQ. ! ! * John-Marc Chandonia for various libgcj patches. * Scott Christley for his Objective-C contributions. + * Eric Christopher for his Java porting help and clean-ups. + * Branko Cibej for more warning contributions. + * The GNU Classpath project for all of their merged runtime code. + * Nick Clifton for arm, mcore, fr30, v850, m32r work, `--help', and other random hacking. + * Michael Cook for libstdc++ cleanup patches to reduce warnings. + * Ralf Corsepius for SH testing and minor bugfixing. * Stan Cox for care and feeding of the x86 port and lots of behind *************** of contributors, such as the C++ library *** 501,519 **** * Dario Dariol contributed the four varieties of sample programs that print a copy of their source. ! * Ulrich Drepper for his work on the C++ runtime libraries, glibc, ! testing of GCC using glibc, ISO C99 support, CFG dumping support, ! etc. * Richard Earnshaw for his ongoing work with the ARM. * David Edelsohn for his direction via the steering committee, ! ongoing work with the RS6000/PowerPC port, and help cleaning up ! Haifa loop changes. * Paul Eggert for random hacking all over GCC. ! * Mark Elbrecht for various DJGPP improvements. * Ben Elliston for his work to move the Objective-C runtime into its own subdirectory and for his work on autoconf. --- 530,574 ---- * Dario Dariol contributed the four varieties of sample programs that print a copy of their source. ! * Russell Davidson for fstream and stringstream fixes in libstdc++. ! ! * Mo DeJong for GCJ and libgcj bug fixes. ! ! * Gabriel Dos Reis for contributions to g++, contributions and ! maintenance of GCC diagnostics infrastructure, libstdc++-v3, ! including valarray<>, complex<>, maintaining the numerics library ! (including that pesky :-) and keeping up-to-date anything ! to do with numbers. ! ! * Ulrich Drepper for his work on glibc, testing of GCC using glibc, ! ISO C99 support, CFG dumping support, etc., plus support of the ! C++ runtime libraries including for all kinds of C interface ! issues, contributing and maintaining complex<>, sanity checking ! and disbursement, configuration architecture, libio maintenance, ! and early math work. * Richard Earnshaw for his ongoing work with the ARM. * David Edelsohn for his direction via the steering committee, ! ongoing work with the RS6000/PowerPC port, help cleaning up Haifa ! loop changes, and for doing the entire AIX port of libstdc++ with ! his bare hands. ! ! * Kevin Ediger for the floating point formatting of num_put::do_put ! in libstdc++. ! ! * Phil Edwards for libstdc++ work including configuration hackery, ! documentation maintainer, chief breaker of the web pages, the ! occasional iostream bugfix, and work on shared library symbol ! versioning. * Paul Eggert for random hacking all over GCC. ! * Mark Elbrecht for various DJGPP improvements, and for libstdc++ ! configuration support for locales and fstream-related fixes. ! ! * Vadim Egorov for libstdc++ fixes in strings, streambufs, and ! iostreams. * Ben Elliston for his work to move the Objective-C runtime into its own subdirectory and for his work on autoconf. *************** of contributors, such as the C++ library *** 525,535 **** --- 580,595 ---- * Fred Fish for BeOS support and Ada fixes. + * Ivan Fontes Garcia for the Portugese translation of the GCJ FAQ. + * Peter Gerwinski for various bugfixes and the Pascal front end. * Kaveh Ghazi for his direction via the steering committee and amazing work to make `-W -Wall' useful. + * John Gilmore for a donation to the FSF earmarked improving GNU + Java. + * Judy Goldberg for c++ contributions. * Torbjorn Granlund for various fixes and the c-torture testsuite, *************** of contributors, such as the C++ library *** 539,544 **** --- 599,607 ---- * Anthony Green for his `-Os' contributions and Java front end work. + * Stu Grossman for gdb hacking, allowing GCJ developers to debug our + code. + * Michael K. Gschwind contributed the port to the PDP-11. * Ron Guilmette implemented the `protoize' and `unprotoize' tools, *************** of contributors, such as the C++ library *** 549,555 **** * Bruno Haible for improvements in the runtime overhead for EH, new warnings and assorted bugfixes. ! * Andrew Haley for his Java work. * Chris Hanson assisted in making GCC work on HP-UX for the 9000 series 300. --- 612,618 ---- * Bruno Haible for improvements in the runtime overhead for EH, new warnings and assorted bugfixes. ! * Andrew Haley for his amazing Java compiler and library efforts. * Chris Hanson assisted in making GCC work on HP-UX for the 9000 series 300. *************** of contributors, such as the C++ library *** 584,605 **** * Andreas Jaeger for various fixes to the MIPS port * Jakub Jelinek for his SPARC work and sibling call optimizations as ! well as lots of bug fixes and test cases. * Janis Johnson for ia64 testing and fixes and for her quality improvement sidetracks. * J. Kean Johnston for OpenServer support. * Klaus Kaempf for his ongoing work to make alpha-vms a viable target. * David Kashtan of SRI adapted GCC to VMS. * Geoffrey Keating for his ongoing work to make the PPC work for GNU/Linux and his automatic regression tester. ! * Brendan Kehoe for his ongoing work with g++. * Oliver M. Kellogg of Deutsche Aerospace contributed the port to the MIL-STD-1750A. --- 647,679 ---- * Andreas Jaeger for various fixes to the MIPS port * Jakub Jelinek for his SPARC work and sibling call optimizations as ! well as lots of bug fixes and test cases, and for improving the ! Java build system. * Janis Johnson for ia64 testing and fixes and for her quality improvement sidetracks. * J. Kean Johnston for OpenServer support. + * Tim Josling for the sample language treelang based originally on + Richard Kenner's ""toy" language". + + * Nicolai Josuttis for additional libstdc++ documentation. + * Klaus Kaempf for his ongoing work to make alpha-vms a viable target. * David Kashtan of SRI adapted GCC to VMS. + * Ryszard Kabatek for many, many libstdc++ bugfixes and + optimizations of strings, especially member functions, and for + auto_ptr fixes. + * Geoffrey Keating for his ongoing work to make the PPC work for GNU/Linux and his automatic regression tester. ! * Brendan Kehoe for his ongoing work with g++ and for a lot of early ! work in just about every part of libstdc++. * Oliver M. Kellogg of Deutsche Aerospace contributed the port to the MIL-STD-1750A. *************** of contributors, such as the C++ library *** 615,622 **** scheduling. Richard Kenner was also the head maintainer of GCC for several years. ! * Mumit Khan for various contributions to the cygwin and mingw32 ! ports and maintaining binary releases for Windows hosts. * Robin Kirkham for cpu32 support. --- 689,697 ---- scheduling. Richard Kenner was also the head maintainer of GCC for several years. ! * Mumit Khan for various contributions to the Cygwin and Mingw32 ! ports and maintaining binary releases for Windows hosts, and for ! massive libstdc++ porting work to Cygwin/Mingw32. * Robin Kirkham for cpu32 support. *************** of contributors, such as the C++ library *** 646,656 **** * Kriang Lerdsuwanakij for improvements to demangler and various c++ fixes. ! * Warren Levy major work on libgcj (Java Runtime Library) and random ! work on the Java front end. * Alain Lichnewsky ported GCC to the MIPS CPU. * Robert Lipe for OpenServer support, new testsuites, testing, etc. * Weiwen Liu for testing and various bugfixes. --- 721,734 ---- * Kriang Lerdsuwanakij for improvements to demangler and various c++ fixes. ! * Warren Levy for tremendous work on libgcj (Java Runtime Library) ! and random work on the Java front end. * Alain Lichnewsky ported GCC to the MIPS CPU. + * Oskar Liljeblad for hacking on AWT and his many Java bug reports + and patches. + * Robert Lipe for OpenServer support, new testsuites, testing, etc. * Weiwen Liu for testing and various bugfixes. *************** of contributors, such as the C++ library *** 659,665 **** runtime libraries. * Martin von Lo"wis for internal consistency checking infrastructure, ! and various C++ improvements including namespace support. * H.J. Lu for his previous contributions to the steering committee, many x86 bug reports, prototype patches, and keeping the GNU/Linux --- 737,744 ---- runtime libraries. * Martin von Lo"wis for internal consistency checking infrastructure, ! various C++ improvements including namespace support, and tons of ! assistance with libstdc++/compiler merges. * H.J. Lu for his previous contributions to the steering committee, many x86 bug reports, prototype patches, and keeping the GNU/Linux *************** of contributors, such as the C++ library *** 672,682 **** optimizer, etc. * Vladimir Makarov for hacking some ugly i960 problems, PowerPC ! hacking improvements to compile-time performance and overall ! knowledge and direction in the area of instruction scheduling. * Bob Manson for his behind the scenes work on dejagnu. * Michael Meissner for LRS framework, ia32, m32r, v850, m88k, MIPS, powerpc, haifa, ECOFF debug support, and other assorted hacking. --- 751,772 ---- optimizer, etc. * Vladimir Makarov for hacking some ugly i960 problems, PowerPC ! hacking improvements to compile-time performance, overall ! knowledge and direction in the area of instruction scheduling, and ! design and implementation of the automaton based instruction ! scheduler. * Bob Manson for his behind the scenes work on dejagnu. + * Philip Martin for lots of libstdc++ string and vector iterator + fixes and improvements, and string clean up and testsuites. + + * All of the Mauve project contributors, for Java test code. + + * Bryce McKinlay for numerous GCJ and libgcj fixes and improvements. + + * Adam Megacz for his work on the Win32 port of GCJ. + * Michael Meissner for LRS framework, ia32, m32r, v850, m88k, MIPS, powerpc, haifa, ECOFF debug support, and other assorted hacking. *************** of contributors, such as the C++ library *** 689,694 **** --- 779,787 ---- * Gary Miller ported GCC to Charles River Data Systems machines. + * Alfred Minarik for libstdc++ string and ios bugfixes, and turning + the entire libstdc++ testsuite namespace-compatible. + * Mark Mitchell for his direction via the steering committee, mountains of C++ work, load/store hoisting out of loops, alias analysis improvements, ISO C `restrict' support, and serving as *************** of contributors, such as the C++ library *** 701,712 **** * Jason Molenda for major help in the care and feeding of all the services on the gcc.gnu.org (formerly egcs.cygnus.com) ! machine--mail, web services, ftp services, etc etc. * Catherine Moore for fixing various ugly problems we have sent her way, including the haifa bug which was killing the Alpha & PowerPC Linux kernels. * David Mosberger-Tang for various Alpha improvements. * Stephen Moshier contributed the floating point emulator that --- 794,809 ---- * Jason Molenda for major help in the care and feeding of all the services on the gcc.gnu.org (formerly egcs.cygnus.com) ! machine--mail, web services, ftp services, etc etc. Doing all ! this work on scrap paper and the backs of envelopes would have ! been... difficult. * Catherine Moore for fixing various ugly problems we have sent her way, including the haifa bug which was killing the Alpha & PowerPC Linux kernels. + * Mike Moreton for his various Java patches. + * David Mosberger-Tang for various Alpha improvements. * Stephen Moshier contributed the floating point emulator that *************** of contributors, such as the C++ library *** 721,727 **** and ISO C99 support, and continuous emphasis on (and contributions to) documentation. ! * Nathan Myers for his work on libstdc++-v3. * NeXT, Inc. donated the front end that supports the Objective-C language. --- 818,830 ---- and ISO C99 support, and continuous emphasis on (and contributions to) documentation. ! * Nathan Myers for his work on libstdc++-v3: architecture and ! authorship through the first three snapshots, including ! implementation of locale infrastructure, string, shadow C headers, ! and the initial project documentation (DESIGN, CHECKLIST, and so ! forth). Later, more work on MT-safe string and shadow headers. ! ! * Felix Natter for documentation on porting libstdc++. * NeXT, Inc. donated the front end that supports the Objective-C language. *************** of contributors, such as the C++ library *** 737,752 **** related infrastructure improvements. * Alexandre Oliva for various build infrastructure improvements, ! scripts and amazing testing work. * Melissa O'Neill for various NeXT fixes. * Rainer Orth for random MIPS work, including improvements to our o32 ! ABI support, improvements to dejagnu's MIPS support, etc. * Paul Petersen wrote the machine description for the Alliant FX/8. ! * Alexandre Petit-Bianco for his Java work. * Matthias Pfaller for major improvements to the NS32k port. --- 840,858 ---- related infrastructure improvements. * Alexandre Oliva for various build infrastructure improvements, ! scripts and amazing testing work, including keeping libtool issues ! sane and happy. * Melissa O'Neill for various NeXT fixes. * Rainer Orth for random MIPS work, including improvements to our o32 ! ABI support, improvements to dejagnu's MIPS support, Java ! configuration clean-ups and porting work, etc. * Paul Petersen wrote the machine description for the Alliant FX/8. ! * Alexandre Petit-Bianco for implementing much of the Java compiler ! and continued Java maintainership. * Matthias Pfaller for major improvements to the NS32k port. *************** of contributors, such as the C++ library *** 760,776 **** * Ken Raeburn for various improvements to checker, MIPS ports and various cleanups in the compiler. * David Reese of Sun Microsystems contributed to the Solaris on PowerPC port. - * Gabriel Dos Reis for contributions and maintenance of libstdc++-v3, - including valarray implementation and limits support. - * Joern Rennecke for maintaining the sh port, loop, regmove & reload hacking. ! * Loren J. Rittle for improvements to libstdc++-v3 and the FreeBSD ! port. * Craig Rodrigues for processing tons of bug reports. --- 866,883 ---- * Ken Raeburn for various improvements to checker, MIPS ports and various cleanups in the compiler. + * Rolf W. Rasmussen for hacking on AWT. + * David Reese of Sun Microsystems contributed to the Solaris on PowerPC port. * Joern Rennecke for maintaining the sh port, loop, regmove & reload hacking. ! * Loren J. Rittle for improvements to libstdc++-v3 including the ! FreeBSD port, threading fixes, thread-related configury changes, ! critical threading documentation, and solutions to really tricky ! I/O problems. * Craig Rodrigues for processing tons of bug reports. *************** of contributors, such as the C++ library *** 780,790 **** --- 887,902 ---- * Paul Rubin wrote most of the preprocessor. + * Chip Salzenberg for libstdc++ patches and improvements to locales, + traits, Makefiles, libio, libtool hackery, and "long long" support. + * Juha Sarlin for improvements to the H8 code generator. * Greg Satz assisted in making GCC work on HP-UX for the 9000 series 300. + * Bradley Schatz for his work on the GCJ FAQ. + * Peter Schauer wrote the code to allow debugging to work on the Alpha. *************** of contributors, such as the C++ library *** 794,799 **** --- 906,917 ---- work in the reload pass as well a serving as release manager for GCC 2.95.3. + * Peter Schmid for constant testing of libstdc++ - especially + application testing, going above and beyond what was requested for + the release criteria - and libstdc++ header file tweaks. + + * Jason Schroeder for jcf-dump patches. + * Andreas Schwab for his work on the m68k port. * Joel Sherrill for his direction via the steering committee, RTEMS *************** of contributors, such as the C++ library *** 805,810 **** --- 923,932 ---- some code which handles the parse tree and RTL data structures, constant folding and help with the original VAX & m68k ports. + * Kenny Simpson for prompting libstdc++ fixes due to defect reports + from the LWG (thereby keeping us in line with updates from the + ISO). + * Franz Sirl for his ongoing work with making the PPC port stable for linux. *************** of contributors, such as the C++ library *** 814,820 **** * Randy Smith finished the Sun FPA support. ! * Scott Snyder for various fixes. * Richard Stallman, for writing the original gcc and launching the GNU project. --- 936,945 ---- * Randy Smith finished the Sun FPA support. ! * Scott Snyder for queue, iterator, istream, and string fixes and ! libstdc++ testsuite entries. ! ! * Brad Spencer for contributions to the GLIBCPP_FORCE_NEW technique. * Richard Stallman, for writing the original gcc and launching the GNU project. *************** of contributors, such as the C++ library *** 829,837 **** --- 954,966 ---- * Graham Stott for various infrastructure improvements. + * John Stracke for his Java HTTP protocol fixes. + * Mike Stump for his Elxsi port, g++ contributions over the years and more recently his vxworks contributions + * Jeff Sturm for Java porting help, bug fixes, and encouragement. + * Shigeya Suzuki for this fixes for the bsdi platforms. * Ian Lance Taylor for his mips16 work, general configury hacking, *************** of contributors, such as the C++ library *** 844,879 **** * Philipp Thomas for random bugfixes throughout the compiler * Kresten Krab Thorup wrote the run time support for the Objective-C ! language. * Michael Tiemann for random bugfixes, the first instruction scheduler, initial C++ support, function integration, NS32k, SPARC and M88k machine description work, delay slot scheduling. * Teemu Torma for thread safe exception handling support. * Leonard Tower wrote parts of the parser, RTL generator, and RTL definitions, and of the VAX machine description. ! * Tom Tromey for internationalization support and his Java work. * Lassi Tuura for improvements to config.guess to determine HP processor types. * Todd Vierling for contributions for NetBSD ports. * Dean Wakerley for converting the install documentation from HTML to texinfo in time for GCC 3.0. * Krister Walfridsson for random bugfixes. * John Wehle for various improvements for the x86 code generator, related infrastructure improvements to help x86 code generation, value range propagation and other work, WE32k port. * Zack Weinberg for major work on cpplib and various other bugfixes. * Dale Wiles helped port GCC to the Tahoe. * Bob Wilson from Tensilica, Inc. for the Xtensa port. --- 973,1032 ---- * Philipp Thomas for random bugfixes throughout the compiler + * Jason Thorpe for thread support in libstdc++ on NetBSD. + * Kresten Krab Thorup wrote the run time support for the Objective-C ! language and the fantastic Java bytecode interpreter. * Michael Tiemann for random bugfixes, the first instruction scheduler, initial C++ support, function integration, NS32k, SPARC and M88k machine description work, delay slot scheduling. + * Andreas Tobler for his work porting libgcj to Darwin. + * Teemu Torma for thread safe exception handling support. * Leonard Tower wrote parts of the parser, RTL generator, and RTL definitions, and of the VAX machine description. ! * Tom Tromey for internationalization support and for his many Java ! contributions and libgcj maintainership. * Lassi Tuura for improvements to config.guess to determine HP processor types. + * Petter Urkedal for libstdc++ CXXFLAGS, math, and algorithms fixes. + + * Brent Verner for work with the libstdc++ cshadow files and their + associated configure steps. + * Todd Vierling for contributions for NetBSD ports. + * Jonathan Wakely for contributing libstdc++ Doxygen notes and XHTML + guidance. + * Dean Wakerley for converting the install documentation from HTML to texinfo in time for GCC 3.0. * Krister Walfridsson for random bugfixes. + * Stephen M. Webb for time and effort on making libstdc++ shadow + files work with the tricky Solaris 8+ headers, and for pushing the + build-time header tree. + * John Wehle for various improvements for the x86 code generator, related infrastructure improvements to help x86 code generation, value range propagation and other work, WE32k port. * Zack Weinberg for major work on cpplib and various other bugfixes. + * Matt Welsh for help with Linux Threads support in GCJ. + + * Urban Widmark for help fixing java.io. + + * Mark Wielaard for new Java library code and his work integrating + with Classpath. + * Dale Wiles helped port GCC to the Tahoe. * Bob Wilson from Tensilica, Inc. for the Xtensa port. *************** of contributors, such as the C++ library *** 891,932 **** --- 1044,1151 ---- * Kevin Zachmann helped ported GCC to the Tahoe. + * Gilles Zunino for help porting Java to Irix. + We'd also like to thank the folks who have contributed time and energy in testing GCC: + * Michael Abd-El-Malek + + * Thomas Arend + + * Bonzo Armstrong + + * Steven Ashe + + * Chris Baldwin + * David Billinghurst + * Jim Blandy + + * Stephane Bortzmeyer + * Horst von Brand + * Frank Braun + * Rodney Brown * Joe Buck * Craig Burley + * Sidney Cadot + + * Bradford Castalia + + * Ralph Doncaster + * Ulrich Drepper * David Edelsohn + * Richard Emberson + + * Levente Farkas + + * Graham Fawcett + + * Robert A. French + + * Jo"rgen Freyh + + * Mark K. Gardner + + * Charles-Antoine Gauthier + * Yung Shing Gene * Kaveh Ghazi + * David Gilbert + + * Simon Gornall + + * Fred Gray + + * John Griffin + + * Patrik Hagglund + + * Phil Hargett + + * Amancio Hasty + + * Bryan W. Headley + * Kate Hedstrom * Richard Henderson + * Kevin B. Hendricks + * Manfred Hollstein * Kamil Iskra + * Joep Jansen + * Christian Joensson + * David Kidd + + * Tobias Kuipers + + * Anand Krishnaswamy + * Jeff Law * Robert Lipe + * llewelly + * Damon Love * Dave Love *************** energy in testing GCC: *** 941,960 **** --- 1160,1203 ---- * Martin Knoblauch + * Jesse Macnish + * David Miller * Toon Moene + * Stefan Morrell + + * Anon A. Mous + * Matthias Mueller + * Pekka Nikander + * Alexandre Oliva + * Jon Olson + + * Magnus Persson + + * Chris Pollard + * Richard Polton * David Rees + * Paul Reilly + + * Tom Reilly + * Loren J. Rittle + * Torsten Rueger + + * Danny Sadinoff + + * Marc Schifer + * Peter Schmid * David Schuler *************** energy in testing GCC: *** 963,972 **** --- 1206,1225 ---- * Franz Sirl + * Tim Souder + * Mike Stump + * Adam Sulmicki + + * George Talbot + + * Gregory Warnes + * Carlo Wood + * David E. Young + * And many others And finally we'd like to thank everyone who uses the compiler, diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-22 gcc-3.2.1/gcc/doc/gcc.info-22 *** gcc-3.2/gcc/doc/gcc.info-22 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-22 Tue Nov 19 18:17:12 2002 *************** look up both forms. *** 126,131 **** --- 126,132 ---- * fargument-alias: Code Gen Options. * fargument-noalias: Code Gen Options. * fargument-noalias-global: Code Gen Options. + * fbounds-check: Optimize Options. * fbranch-probabilities: Optimize Options. * fcall-saved <1>: Interoperation. * fcall-saved: Code Gen Options. *************** look up both forms. *** 183,188 **** --- 184,190 ---- * fnext-runtime: Objective-C Dialect Options. * fno-access-control: C++ Dialect Options. * fno-asm: C Dialect Options. + * fno-branch-count-reg: Optimize Options. * fno-builtin <1>: Other Builtins. * fno-builtin: C Dialect Options. * fno-common <1>: Variable Attributes. *************** look up both forms. *** 214,219 **** --- 216,223 ---- * fno-peephole: Optimize Options. * fno-peephole2: Optimize Options. * fno-rtti: C++ Dialect Options. + * fno-sched-interblock: Optimize Options. + * fno-sched-spec: Optimize Options. * fno-show-column: Preprocessor Options. * fno-signed-bitfields: C Dialect Options. * fno-stack-limit: Code Gen Options. *************** look up both forms. *** 243,248 **** --- 247,255 ---- * frepo: C++ Dialect Options. * frerun-cse-after-loop: Optimize Options. * frerun-loop-opt: Optimize Options. + * fsched-spec-load: Optimize Options. + * fsched-spec-load-dangerous: Optimize Options. + * fsched-verbose: Debugging Options. * fschedule-insns: Optimize Options. * fschedule-insns2: Optimize Options. * fshared-data: Code Gen Options. *************** look up both forms. *** 250,256 **** * fshort-enums <1>: Non-bugs. * fshort-enums <2>: Type Attributes. * fshort-enums: Code Gen Options. ! * fshort-wchar: C Dialect Options. * fsigned-bitfields <1>: Non-bugs. * fsigned-bitfields: C Dialect Options. * fsigned-char: C Dialect Options. --- 257,263 ---- * fshort-enums <1>: Non-bugs. * fshort-enums <2>: Type Attributes. * fshort-enums: Code Gen Options. ! * fshort-wchar: Code Gen Options. * fsigned-bitfields <1>: Non-bugs. * fsigned-bitfields: C Dialect Options. * fsigned-char: C Dialect Options. *************** look up both forms. *** 478,486 **** --- 485,497 ---- * mcheck-zero-division: M88K Options. * mcix: DEC Alpha Options. * mcmodel=embmedany: SPARC Options. + * mcmodel=kernel: i386 and x86-64 Options. + * mcmodel=large: i386 and x86-64 Options. * mcmodel=medany: SPARC Options. + * mcmodel=medium: i386 and x86-64 Options. * mcmodel=medlow: SPARC Options. * mcmodel=medmid: SPARC Options. + * mcmodel=small: i386 and x86-64 Options. * mcode-align: Intel 960 Options. * mcode-model=large: M32R/D Options. * mcode-model=medium: M32R/D Options. *************** look up both forms. *** 1103,1114 **** * V: Target Options. * v <1>: Preprocessor Options. * v: Overall Options. ! * version: Preprocessor Options. * W: Incompatibilities. * w: Preprocessor Options. * W: Warning Options. * w: Warning Options. * Wa: Assembler Options. * Waggregate-return: Warning Options. * Wall <1>: Standard Libraries. * Wall <2>: Preprocessor Options. --- 1114,1127 ---- * V: Target Options. * v <1>: Preprocessor Options. * v: Overall Options. ! * version <1>: Preprocessor Options. ! * version: Overall Options. * W: Incompatibilities. * w: Preprocessor Options. * W: Warning Options. * w: Warning Options. * Wa: Assembler Options. + * Wabi: C++ Dialect Options. * Waggregate-return: Warning Options. * Wall <1>: Standard Libraries. * Wall <2>: Preprocessor Options. diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-23 gcc-3.2.1/gcc/doc/gcc.info-23 *** gcc-3.2/gcc/doc/gcc.info-23 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-23 Tue Nov 19 18:17:12 2002 *************** Index *** 74,80 **** * ?: side effect: Conditionals. * \a: C Dialect Options. * \x: C Dialect Options. ! * _ in variables in macros: Naming Types. * __builtin_apply: Constructing Calls. * __builtin_apply_args: Constructing Calls. * __builtin_choose_expr: Other Builtins. --- 74,80 ---- * ?: side effect: Conditionals. * \a: C Dialect Options. * \x: C Dialect Options. ! * _ in variables in macros: Constructing Calls. * __builtin_apply: Constructing Calls. * __builtin_apply_args: Constructing Calls. * __builtin_choose_expr: Other Builtins. *************** Index *** 102,107 **** --- 102,108 ---- * _Complex keyword: Complex. * _Exit: Other Builtins. * _exit: Other Builtins. + * ABI: Compatibility. * abort: Other Builtins. * abs: Other Builtins. * accessing volatiles: Volatiles. *************** Index *** 128,133 **** --- 129,135 ---- * ANSI support: C Dialect Options. * ANSI X3.159-1989: Standards. * apostrophes: Incompatibilities. + * application binary interface: Compatibility. * ARC Options: ARC Options. * arguments in frame (88k): M88K Options. * ARM [Annotated C++ Reference Manual]: Backwards Compatibility. *************** Index *** 150,155 **** --- 152,158 ---- * backtrace for bug reports: Bug Reporting. * Backwards Compatibility: Backwards Compatibility. * bcmp: Other Builtins. + * binary compatibility: Compatibility. * bit shift overflow (88k): M88K Options. * bound pointer to member function: Bound member functions. * bug criteria: Bug Criteria. *************** Index *** 433,439 **** * llabs: Other Builtins. * load address instruction: Simple Constraints. * local labels: Local Labels. ! * local variables in macros: Naming Types. * local variables, specifying registers: Local Reg Vars. * locale: Environment Variables. * locale definition: Environment Variables. --- 436,442 ---- * llabs: Other Builtins. * load address instruction: Simple Constraints. * local labels: Local Labels. ! * local variables in macros: Constructing Calls. * local variables, specifying registers: Local Reg Vars. * locale: Environment Variables. * locale definition: Environment Variables. *************** Index *** 454,460 **** * macros containing asm: Extended Asm. * macros, inline alternative: Inline. * macros, local labels: Local Labels. ! * macros, local variables in: Naming Types. * macros, statements in expressions: Statement Exprs. * macros, types of arguments: Typeof. * main and the exit status: VMS Misc. --- 457,463 ---- * macros containing asm: Extended Asm. * macros, inline alternative: Inline. * macros, local labels: Local Labels. ! * macros, local variables in: Constructing Calls. * macros, statements in expressions: Statement Exprs. * macros, types of arguments: Typeof. * main and the exit status: VMS Misc. *************** Index *** 490,496 **** * name augmentation: VMS Misc. * names used in assembler code: Asm Labels. * naming convention, implementation headers: C++ Interface. - * naming types: Naming Types. * nested functions: Nested Functions. * newlines (escaped): Escaped Newlines. * no_instrument_function function attribute: Function Attributes. --- 493,498 ---- *************** Index *** 689,695 **** * Ultrix calling convention: Interoperation. * undefined behavior: Bug Criteria. * undefined function value: Bug Criteria. ! * underscores in variables in macros: Naming Types. * underscores, avoiding (88k): M88K Options. * union: Unnamed Fields. * union, casting to a: Cast to Union. --- 691,697 ---- * Ultrix calling convention: Interoperation. * undefined behavior: Bug Criteria. * undefined function value: Bug Criteria. ! * underscores in variables in macros: Constructing Calls. * underscores, avoiding (88k): M88K Options. * union: Unnamed Fields. * union, casting to a: Cast to Union. *************** Index *** 711,717 **** * variable-length array scope: Variable Length. * variable-length arrays: Variable Length. * variables in specified registers: Explicit Reg Vars. ! * variables, local, in macros: Naming Types. * variadic macros: Variadic Macros. * VAX calling convention: Interoperation. * VAX options: VAX Options. --- 713,719 ---- * variable-length array scope: Variable Length. * variable-length arrays: Variable Length. * variables in specified registers: Explicit Reg Vars. ! * variables, local, in macros: Constructing Calls. * variadic macros: Variadic Macros. * VAX calling convention: Interoperation. * VAX options: VAX Options. diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-4 gcc-3.2.1/gcc/doc/gcc.info-4 *** gcc-3.2/gcc/doc/gcc.info-4 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-4 Tue Nov 19 18:17:12 2002 *************** your program or GCC: *** 203,221 **** Optimize Options.). The other use of `-fprofile-arcs' is for use with `gcov', when it ! is used with the `-ftest-coverage' option. GCC supports two ! methods of determining code coverage: the options that support ! `gcov', and options `-a' and `-ax', which write information to ! text files. The options that support `gcov' do not need to ! instrument every arc in the program, so a program compiled with ! them runs faster than a program compiled with `-a', which adds ! instrumentation code to every basic block in the program. The ! tradeoff: since `gcov' does not have execution counts for all ! branches, it must start with the execution counts for the ! instrumented branches, and then iterate over the program flow ! graph until the entire graph has been solved. Hence, `gcov' runs ! a little more slowly than a program which uses information from ! `-a' and `-ax'. With `-fprofile-arcs', for each function of your program GCC creates a program flow graph, then finds a spanning tree for the --- 203,209 ---- Optimize Options.). The other use of `-fprofile-arcs' is for use with `gcov', when it ! is used with the `-ftest-coverage' option. With `-fprofile-arcs', for each function of your program GCC creates a program flow graph, then finds a spanning tree for the *************** your program or GCC: *** 226,236 **** the block; otherwise, a new basic block must be created to hold the instrumentation code. - This option makes it possible to estimate branch probabilities and - to calculate basic block execution counts. In general, basic block - execution counts as provided by `-a' do not give enough - information to estimate all branch probabilities. - `-ftest-coverage' Create data files for the `gcov' code-coverage utility (*note `gcov': a GCC Test Coverage Program: Gcov.). The data file names --- 214,219 ---- *************** your program or GCC: *** 455,460 **** --- 438,458 ---- `inlined' Dump after function inlining, to `FILE.inlined'. + `-fsched-verbose=N' + On targets that use instruction scheduling, this option controls + the amount of debugging output the scheduler prints. This + information is written to standard error, unless `-dS' or `-dR' is + specified, in which case it is output to the usual dump listing + file, `.sched' or `.sched2' respectively. However for N greater + than nine, the output is always printed to standard error. + + For N greater than zero, `-fsched-verbose' outputs the same + information as `-dRS'. For N greater than one, it also output + basic block probabilities, detailed ready list information and + unit/insn info. For N greater than two, it includes RTL at abort + point, control-flow and regions info. And for N over four, + `-fsched-verbose' also includes dependence info. + `-fpretend-float' When running a cross-compiler, pretend that the target machine uses the same floating point format as the host machine. This *************** other form by either removing `no-' or a *** 728,733 **** --- 726,739 ---- variable to have distinct location, so using this option will result in non-conforming behavior. + `-fno-branch-count-reg' + Do not use "decrement and branch" instructions on a count register, + but instead generate a sequence of instructions that decrement a + register, compare it against zero, then branch based upon the + result. This option is only meaningful on architectures that + support such instructions, which include x86, PowerPC, IA-64 and + S/390. + `-fno-function-cse' Do not put function addresses in registers; make each instruction that calls a constant function contain the function's address *************** other form by either removing `no-' or a *** 788,793 **** --- 794,806 ---- The default is `-ftrapping-math'. + `-fbounds-check' + For front-ends that support it, generate additional code to check + that indices used to access arrays are within the declared range. + This is currenly only supported by the Java and Fortran 77 + front-ends, where this option defaults to true and false + respectively. + The following options control specific optimizations. The `-O2' option turns on all of these optimizations except `-funroll-loops' and `-funroll-all-loops'. On most machines, the `-O' option turns on the *************** control them. *** 900,905 **** --- 913,938 ---- number of registers and where memory load instructions take more than one cycle. + `-fno-sched-interblock' + Don't schedule instructions across basic blocks. This is normally + enabled by default when scheduling before register allocation, i.e. + with `-fschedule-insns' or at `-O2' or higher. + + `-fno-sched-spec' + Don't allow speculative motion of non-load instructions. This is + normally enabled by default when scheduling before register + allocation, i.e. with `-fschedule-insns' or at `-O2' or higher. + + `-fsched-spec-load' + Allow speculative motion of some load instructions. This only + makes sense when scheduling before register allocation, i.e. with + `-fschedule-insns' or at `-O2' or higher. + + `-fsched-spec-load-dangerous' + Allow speculative motion of more load instructions. This only + makes sense when scheduling before register allocation, i.e. with + `-fschedule-insns' or at `-O2' or higher. + `-ffunction-sections' `-fdata-sections' Place each function or data item into its own section in the output diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-5 gcc-3.2.1/gcc/doc/gcc.info-5 *** gcc-3.2/gcc/doc/gcc.info-5 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-5 Tue Nov 19 18:17:12 2002 *************** libraries and for parts of the compiler: *** 726,740 **** system directories come after. If a standard system include directory, or a directory specified ! with `-isystem', is also specified with `-I', it will be searched ! only in the position requested by `-I'. Also, it will not be ! considered a system include directory. If that directory really ! does contain system headers, there is a good chance that they will ! break. For instance, if GCC's installation procedure edited the ! headers in `/usr/include' to fix bugs, `-I/usr/include' will cause ! the original, buggy headers to be found instead of the corrected ! ones. GCC will issue a warning when a system include directory is ! hidden in this way. `-I-' Any directories you specify with `-I' options before the `-I-' --- 726,739 ---- system directories come after. If a standard system include directory, or a directory specified ! with `-isystem', is also specified with `-I', the `-I' option will ! be ignored. The directory will still be searched but as a system ! directory at its normal position in the system include chain. ! This is to ensure that GCC's procedure to fix buggy system headers ! and the ordering for the include_next directive are not ! inadvertantly changed. If you really need to change the search ! order for system directories, use the `-nostdinc' and/or ! `-isystem' options. `-I-' Any directories you specify with `-I' options before the `-I-' diff -Nrc3pad gcc-3.2/gcc/doc/gcc.info-8 gcc-3.2.1/gcc/doc/gcc.info-8 *** gcc-3.2/gcc/doc/gcc.info-8 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gcc.info-8 Tue Nov 19 18:17:12 2002 *************** computers: *** 560,565 **** --- 560,568 ---- *Note X86 Built-in Functions::, for details of the functions enabled and disabled by these switches. + To have SSE/SSE2 instructions generated automatically from + floating-point code, see `-mfpmath=sse'. + `-mpush-args' `-mno-push-args' Use PUSH operations to store outgoing parameters. This method is *************** x86-64 processors in 64-bit environments *** 622,627 **** --- 625,653 ---- without adjusting the stack pointer. The flag `-mno-red-zone' disables this red zone. + `-mcmodel=small' + Generate code for the small code model: the program and its + symbols must be linked in the lower 2 GB of the address space. + Pointers are 64 bits. Programs can be statically or dynamically + linked. This is the default code model. + + `-mcmodel=kernel' + Generate code for the kernel code model. The kernel runs in the + negative 2 GB of the address space. This model has to be used for + Linux kernel code. + + `-mcmodel=medium' + Generate code for the medium model: The program is linked in the + lower 2 GB of the address space but symbols can be located + anywhere in the address space. Programs can be statically or + dynamically linked, but building of shared libraries are not + supported with the medium model. + + `-mcmodel=large' + Generate code for the large model: This model makes no assumptions + about addresses and sizes of sections. Currently GCC does not + implement this model. +  File: gcc.info, Node: HPPA Options, Next: Intel 960 Options, Prev: i386 and x86-64 Options, Up: Submodel Options diff -Nrc3pad gcc-3.2/gcc/doc/gcc.texi gcc-3.2.1/gcc/doc/gcc.texi *** gcc-3.2/gcc/doc/gcc.texi Sat Apr 20 20:44:36 2002 --- gcc-3.2.1/gcc/doc/gcc.texi Wed Sep 11 16:40:28 2002 *************** Introduction, gccint, GNU Compiler Colle *** 164,169 **** --- 164,170 ---- * C Extensions:: GNU extensions to the C language family. * C++ Extensions:: GNU extensions to the C++ language. * Objective-C:: GNU Objective-C runtime features. + * Compatibility:: Binary Compatibility * Gcov:: gcov: a GCC test coverage program. * Trouble:: If you have trouble using GCC. * Bugs:: How, why and where to report bugs. *************** Introduction, gccint, GNU Compiler Colle *** 188,193 **** --- 189,195 ---- @include invoke.texi @include extend.texi @include objc.texi + @include compat.texi @include gcov.texi @include trouble.texi @include bugreport.texi diff -Nrc3pad gcc-3.2/gcc/doc/gccint.info gcc-3.2.1/gcc/doc/gccint.info *** gcc-3.2/gcc/doc/gccint.info Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gccint.info Tue Nov 19 18:17:12 2002 *************** funds for GNU development. *** 36,62 **** Indirect: gccint.info-1: 1250 gccint.info-2: 48413 ! gccint.info-3: 91053 ! gccint.info-4: 127284 ! gccint.info-5: 172740 ! gccint.info-6: 222159 ! gccint.info-7: 261135 ! gccint.info-8: 301808 ! gccint.info-9: 342914 ! gccint.info-10: 359504 ! gccint.info-11: 406156 ! gccint.info-12: 453308 ! gccint.info-13: 488376 ! gccint.info-14: 537491 ! gccint.info-15: 586555 ! gccint.info-16: 634602 ! gccint.info-17: 675306 ! gccint.info-18: 723210 ! gccint.info-19: 768286 ! gccint.info-20: 815474 ! gccint.info-21: 864910 ! gccint.info-22: 907171 ! gccint.info-23: 926778  Tag Table: (Indirect) --- 36,62 ---- Indirect: gccint.info-1: 1250 gccint.info-2: 48413 ! gccint.info-3: 92033 ! gccint.info-4: 128264 ! gccint.info-5: 173720 ! gccint.info-6: 223139 ! gccint.info-7: 262115 ! gccint.info-8: 302788 ! gccint.info-9: 343894 ! gccint.info-10: 360484 ! gccint.info-11: 407136 ! gccint.info-12: 454288 ! gccint.info-13: 489356 ! gccint.info-14: 538471 ! gccint.info-15: 587535 ! gccint.info-16: 635582 ! gccint.info-17: 676286 ! gccint.info-18: 724190 ! gccint.info-19: 769266 ! gccint.info-20: 816628 ! gccint.info-21: 866064 ! gccint.info-22: 908325 ! gccint.info-23: 935056  Tag Table: (Indirect) *************** Node: Front End Directory41548 *** 87,242 **** Node: Front End Config46059 Node: Back End48413 Node: Test Suites51426 ! Node: Test Idioms51879 ! Node: C Tests54747 ! Node: Passes57472 ! Node: Trees81150 ! Node: Deficiencies83879 ! Node: Tree overview84112 ! Node: Macros and Functions88250 ! Node: Identifiers88387 ! Node: Containers89906 ! Node: Types91053 ! Node: Scopes103778 ! Node: Namespaces104537 ! Node: Classes107344 ! Node: Declarations111945 ! Node: Functions118002 ! Node: Function Basics120535 ! Node: Function Bodies127284 ! Node: Attributes141188 ! Node: Expression trees142424 ! Node: RTL166815 ! Node: RTL Objects168849 ! Node: RTL Classes172740 ! Node: Accessors177301 ! Node: Flags179684 ! Node: Machine Modes194589 ! Node: Constants203322 ! Node: Regs and Memory209288 ! Node: Arithmetic222159 ! Node: Comparisons228818 ! Node: Bit-Fields232941 ! Node: Vector Operations234362 ! Node: Conversions236139 ! Node: RTL Declarations239449 ! Node: Side Effects240261 ! Node: Incdec256054 ! Node: Assembler259610 ! Node: Insns261135 ! Node: Calls285933 ! Node: Sharing288530 ! Node: Reading RTL291634 ! Node: Machine Desc292620 ! Node: Overview294899 ! Node: Patterns296941 ! Node: Example300374 ! Node: RTL Template301808 ! Node: Output Template314275 ! Node: Output Statement318260 ! Node: Constraints322234 ! Node: Simple Constraints323168 ! Node: Multi-Alternative335532 ! Node: Class Preferences338370 ! Node: Modifiers339253 ! Node: Machine Constraints342914 ! Node: Standard Names359504 ! Ref: prologue instruction pattern398887 ! Ref: epilogue instruction pattern399380 ! Node: Pattern Ordering402108 ! Node: Dependent Patterns403338 ! Node: Jump Patterns406156 ! Node: Looping Patterns411906 ! Node: Insn Canonicalizations416512 ! Node: Expander Definitions420013 ! Node: Insn Splitting428148 ! Node: Including Patterns437766 ! Node: Peephole Definitions439544 ! Node: define_peephole440794 ! Node: define_peephole2447143 ! Node: Insn Attributes450207 ! Node: Defining Attributes451293 ! Node: Expressions453308 ! Node: Tagging Insns459900 ! Node: Attr Example464265 ! Node: Insn Lengths466644 ! Node: Constant Attributes469906 ! Node: Delay Slots471069 ! Node: Function Units474283 ! Node: Conditional Execution479956 ! Node: Constant Definitions482815 ! Node: Target Macros484396 ! Node: Target Structure487085 ! Node: Driver488376 ! Node: Run-time Target507709 ! Node: Per-Function Data515199 ! Node: Storage Layout518463 ! Node: Type Layout537491 ! Node: Escape Sequences547843 ! Node: Registers548758 ! Node: Register Basics549681 ! Node: Allocation Order555285 ! Node: Values in Registers556701 ! Node: Leaf Functions561536 ! Node: Stack Registers564325 ! Node: Register Classes565125 ! Node: Stack and Calling586059 ! Node: Frame Layout586555 ! Node: Exception Handling593420 ! Node: Stack Checking597922 ! Node: Frame Registers601479 ! Node: Elimination606930 ! Node: Stack Arguments610903 ! Node: Register Arguments618492 ! Node: Scalar Return630361 ! Node: Aggregate Return634602 ! Node: Caller Saves638319 ! Node: Function Entry639859 ! Node: Profiling651948 ! Node: Tail Calls654280 ! Node: Varargs654871 ! Node: Trampolines662549 ! Node: Library Calls669784 ! Node: Addressing Modes675306 ! Node: Condition Code686583 ! Node: Costs693909 ! Node: Scheduling705668 ! Node: Sections711184 ! Node: PIC719339 ! Node: Assembler Format722140 ! Node: File Framework723210 ! Node: Data Output728070 ! Node: Uninitialized Data735943 ! Node: Label Output741343 ! Node: Initialization756136 ! Node: Macros for Initialization762117 ! Node: Instruction Output768286 ! Node: Dispatch Tables777326 ! Node: Exception Region Output779881 ! Node: Alignment Output783234 ! Node: Debugging Info787106 ! Node: All Debuggers787770 ! Node: DBX Options790653 ! Node: DBX Hooks796028 ! Node: File Names and DBX799677 ! Node: SDB and DWARF801653 ! Node: VMS Debug805094 ! Node: Cross-compilation805642 ! Node: Mode Switching812221 ! Node: Target Attributes815474 ! Node: Misc819311 ! Node: Host Config847792 ! Node: Fragments853828 ! Node: Target Fragment854971 ! Node: Host Fragment859466 ! Node: Collect2860902 ! Node: Header Dirs863459 ! Node: Funding864910 ! Node: GNU Project867416 ! Node: Copying868070 ! Node: GNU Free Documentation License887284 ! Node: Contributors907171 ! Node: Option Index924978 ! Node: Index926778  End Tag Table --- 87,243 ---- Node: Front End Config46059 Node: Back End48413 Node: Test Suites51426 ! Node: Test Idioms51926 ! Node: C Tests54794 ! Node: libgcj Tests57540 ! Node: Passes58452 ! Node: Trees82130 ! Node: Deficiencies84859 ! Node: Tree overview85092 ! Node: Macros and Functions89230 ! Node: Identifiers89367 ! Node: Containers90886 ! Node: Types92033 ! Node: Scopes104758 ! Node: Namespaces105517 ! Node: Classes108324 ! Node: Declarations112925 ! Node: Functions118982 ! Node: Function Basics121515 ! Node: Function Bodies128264 ! Node: Attributes142168 ! Node: Expression trees143404 ! Node: RTL167795 ! Node: RTL Objects169829 ! Node: RTL Classes173720 ! Node: Accessors178281 ! Node: Flags180664 ! Node: Machine Modes195569 ! Node: Constants204302 ! Node: Regs and Memory210268 ! Node: Arithmetic223139 ! Node: Comparisons229798 ! Node: Bit-Fields233921 ! Node: Vector Operations235342 ! Node: Conversions237119 ! Node: RTL Declarations240429 ! Node: Side Effects241241 ! Node: Incdec257034 ! Node: Assembler260590 ! Node: Insns262115 ! Node: Calls286913 ! Node: Sharing289510 ! Node: Reading RTL292614 ! Node: Machine Desc293600 ! Node: Overview295879 ! Node: Patterns297921 ! Node: Example301354 ! Node: RTL Template302788 ! Node: Output Template315255 ! Node: Output Statement319240 ! Node: Constraints323214 ! Node: Simple Constraints324148 ! Node: Multi-Alternative336512 ! Node: Class Preferences339350 ! Node: Modifiers340233 ! Node: Machine Constraints343894 ! Node: Standard Names360484 ! Ref: prologue instruction pattern399867 ! Ref: epilogue instruction pattern400360 ! Node: Pattern Ordering403088 ! Node: Dependent Patterns404318 ! Node: Jump Patterns407136 ! Node: Looping Patterns412886 ! Node: Insn Canonicalizations417492 ! Node: Expander Definitions420993 ! Node: Insn Splitting429128 ! Node: Including Patterns438746 ! Node: Peephole Definitions440524 ! Node: define_peephole441774 ! Node: define_peephole2448123 ! Node: Insn Attributes451187 ! Node: Defining Attributes452273 ! Node: Expressions454288 ! Node: Tagging Insns460880 ! Node: Attr Example465245 ! Node: Insn Lengths467624 ! Node: Constant Attributes470886 ! Node: Delay Slots472049 ! Node: Function Units475263 ! Node: Conditional Execution480936 ! Node: Constant Definitions483795 ! Node: Target Macros485376 ! Node: Target Structure488065 ! Node: Driver489356 ! Node: Run-time Target508689 ! Node: Per-Function Data516179 ! Node: Storage Layout519443 ! Node: Type Layout538471 ! Node: Escape Sequences548823 ! Node: Registers549738 ! Node: Register Basics550661 ! Node: Allocation Order556265 ! Node: Values in Registers557681 ! Node: Leaf Functions562516 ! Node: Stack Registers565305 ! Node: Register Classes566105 ! Node: Stack and Calling587039 ! Node: Frame Layout587535 ! Node: Exception Handling594400 ! Node: Stack Checking598902 ! Node: Frame Registers602459 ! Node: Elimination607910 ! Node: Stack Arguments611883 ! Node: Register Arguments619472 ! Node: Scalar Return631341 ! Node: Aggregate Return635582 ! Node: Caller Saves639299 ! Node: Function Entry640839 ! Node: Profiling652928 ! Node: Tail Calls655260 ! Node: Varargs655851 ! Node: Trampolines663529 ! Node: Library Calls670764 ! Node: Addressing Modes676286 ! Node: Condition Code687563 ! Node: Costs694889 ! Node: Scheduling706648 ! Node: Sections712164 ! Node: PIC720319 ! Node: Assembler Format723120 ! Node: File Framework724190 ! Node: Data Output729050 ! Node: Uninitialized Data736923 ! Node: Label Output742323 ! Node: Initialization757116 ! Node: Macros for Initialization763097 ! Node: Instruction Output769266 ! Node: Dispatch Tables778306 ! Node: Exception Region Output780861 ! Node: Alignment Output784214 ! Node: Debugging Info788086 ! Node: All Debuggers788750 ! Node: DBX Options791633 ! Node: DBX Hooks797008 ! Node: File Names and DBX800831 ! Node: SDB and DWARF802807 ! Node: VMS Debug806248 ! Node: Cross-compilation806796 ! Node: Mode Switching813375 ! Node: Target Attributes816628 ! Node: Misc820465 ! Node: Host Config848946 ! Node: Fragments854982 ! Node: Target Fragment856125 ! Node: Host Fragment860620 ! Node: Collect2862056 ! Node: Header Dirs864613 ! Node: Funding866064 ! Node: GNU Project868570 ! Node: Copying869224 ! Node: GNU Free Documentation License888438 ! Node: Contributors908325 ! Node: Option Index933256 ! Node: Index935056  End Tag Table diff -Nrc3pad gcc-3.2/gcc/doc/gccint.info-19 gcc-3.2.1/gcc/doc/gccint.info-19 *** gcc-3.2/gcc/doc/gccint.info-19 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gccint.info-19 Tue Nov 19 18:17:12 2002 *************** Open-Ended Hooks for DBX Format *** 664,669 **** --- 664,673 ---- `DBX_OUTPUT_RBRAC (STREAM, NAME)' Like `DBX_OUTPUT_LBRAC', but for the end of a scope level. + `DBX_OUTPUT_NFUN (STREAM, LSCOPE_LABEL, DECL)' + Define this macro if the target machine requires special handling + to output an `N_FUN' entry for the function DECL. + `DBX_OUTPUT_ENUM (STREAM, TYPE)' Define this macro if the target machine requires special handling to output an enumeration type. The definition should be a C diff -Nrc3pad gcc-3.2/gcc/doc/gccint.info-2 gcc-3.2.1/gcc/doc/gccint.info-2 *** gcc-3.2/gcc/doc/gccint.info-2 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gccint.info-2 Tue Nov 19 18:17:12 2002 *************** FIXME: document the others. *** 116,121 **** --- 116,122 ---- * Test Idioms:: Idioms used in test suite code. * C Tests:: The C language test suites. + * libgcj Tests:: The Java library test suites.  File: gccint.info, Node: Test Idioms, Next: C Tests, Up: Test Suites *************** on all targets). *** 185,191 **** FIXME: discuss non-C test suites here.  ! File: gccint.info, Node: C Tests, Prev: Test Idioms, Up: Test Suites C Language Test Suites ---------------------- --- 186,192 ---- FIXME: discuss non-C test suites here.  ! File: gccint.info, Node: C Tests, Next: libgcj Tests, Prev: Test Idioms, Up: Test Suites C Language Test Suites ---------------------- *************** C Language Test Suites *** 259,264 **** --- 260,287 ---- test cases and magic comments more.  + File: gccint.info, Node: libgcj Tests, Prev: C Tests, Up: Test Suites + + The Java library test suites. + ----------------------------- + + Runtime tests are executed via `make check' from the `testsuite' + directory of the libjava hierarchy in the build tree. Additional + runtime tests can be checked into this testsuite. + + Regression testing of the core packages in libgcj is also covered by + the Mauve test suite. The Mauve Project develops tests for the Java + Class Libraries. These tests are run as part of libgcj testing by + specifying the location of the Mauve tree when invoking `make', as in + `make MAUVEDIR=~/mauve check'. + + The Jacks project provides a test suite for Java compilers that can + be used to test changes that affect the GCJ front end. There is no + automated mechanism to run the Jacks suite as part of GCJ testing. + + We encourage developers to contribute test cases to Mauve and Jacks. + +  File: gccint.info, Node: Passes, Next: Trees, Prev: Source Tree, Up: Top Passes and Files of the Compiler diff -Nrc3pad gcc-3.2/gcc/doc/gccint.info-22 gcc-3.2.1/gcc/doc/gccint.info-22 *** gcc-3.2/gcc/doc/gccint.info-22 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gccint.info-22 Tue Nov 19 18:17:12 2002 *************** been. Any omissions in this list are ac *** 45,59 **** contributions are not listed. Please keep this list in alphabetical order. - Some projects operating under the GCC project maintain their own list - of contributors, such as the C++ library - (http://gcc.gnu.org/libstdc++/). - * Analog Devices helped implement the support for complex data types and iterators. ! * John David Anglin for improvements to libstdc++-v3 and the HP-UX ! port. * James van Artsdalen wrote the code that makes efficient use of the Intel 80387 register stack. --- 45,55 ---- contributions are not listed. Please keep this list in alphabetical order. * Analog Devices helped implement the support for complex data types and iterators. ! * John David Anglin for threading-related fixes and improvements to ! libstdc++-v3, and the HP-UX port. * James van Artsdalen wrote the code that makes efficient use of the Intel 80387 register stack. *************** of contributors, such as the C++ library *** 63,76 **** * Gerald Baumgartner added the signature extension to the C++ front end. * Neil Booth for work on cpplib, lang hooks, debug hooks and other miscellaneous clean-ups. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new ! languages. Chill and Java front end implementations. Initial implementations of cpplib, fix-header, config.guess, libio, and ! past C++ library (libg++) maintainer. * Devon Bowen helped port GCC to the Tahoe. --- 59,88 ---- * Gerald Baumgartner added the signature extension to the C++ front end. + * Godmar Back for his Java improvements and encouragement. + + * Scott Bambrough for help porting the Java compiler. + + * Jon Beniston for his Win32 port of Java. + + * Geoff Berry for his Java object serialization work and various + patches. + + * Eric Blake for helping to make GCJ and libgcj conform to the + specifications. + + * Hans-J. Boehm for his garbage collector, IA-64 libffi port, and + other Java work. + * Neil Booth for work on cpplib, lang hooks, debug hooks and other miscellaneous clean-ups. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new ! languages. Chill front end implementation. Initial implementations of cpplib, fix-header, config.guess, libio, and ! past C++ library (libg++) maintainer. Dreaming up, designing and ! implementing much of GCJ. * Devon Bowen helped port GCC to the Tahoe. *************** of contributors, such as the C++ library *** 84,109 **** * Herman A.J. ten Brugge for various fixes. * Joe Buck for his direction via the steering committee. * Craig Burley for leadership of the Fortran effort. ! * Paolo Carlini for his work on libstdc++-v3. * John Carr for his alias work, SPARC hacking, infrastructure improvements, previous contributions to the steering committee, loop optimizations, etc. ! * Steve Chamberlain wrote the support for the Hitachi SH and H8 ! processors and the PicoJava processor. * Scott Christley for his Objective-C contributions. * Branko Cibej for more warning contributions. * Nick Clifton for arm, mcore, fr30, v850, m32r work, `--help', and other random hacking. * Ralf Corsepius for SH testing and minor bugfixing. * Stan Cox for care and feeding of the x86 port and lots of behind --- 96,138 ---- * Herman A.J. ten Brugge for various fixes. + * Joerg Brunsmann for Java compiler hacking and help with the GCJ + FAQ. + * Joe Buck for his direction via the steering committee. * Craig Burley for leadership of the Fortran effort. ! * Stephan Buys for contributing Doxygen notes for libstdc++. ! ! * Paolo Carlini for libstdc++ work: lots of efficiency improvements ! to the string class, hard detective work on the frustrating ! localization issues, and keeping up with the problem reports. * John Carr for his alias work, SPARC hacking, infrastructure improvements, previous contributions to the steering committee, loop optimizations, etc. ! * Steve Chamberlain for support for the Hitachi SH and H8 processors ! and the PicoJava processor, and for GCJ config fixes. ! ! * Glenn Chambers for help with the GCJ FAQ. ! ! * John-Marc Chandonia for various libgcj patches. * Scott Christley for his Objective-C contributions. + * Eric Christopher for his Java porting help and clean-ups. + * Branko Cibej for more warning contributions. + * The GNU Classpath project for all of their merged runtime code. + * Nick Clifton for arm, mcore, fr30, v850, m32r work, `--help', and other random hacking. + * Michael Cook for libstdc++ cleanup patches to reduce warnings. + * Ralf Corsepius for SH testing and minor bugfixing. * Stan Cox for care and feeding of the x86 port and lots of behind *************** of contributors, such as the C++ library *** 116,134 **** * Dario Dariol contributed the four varieties of sample programs that print a copy of their source. ! * Ulrich Drepper for his work on the C++ runtime libraries, glibc, ! testing of GCC using glibc, ISO C99 support, CFG dumping support, ! etc. * Richard Earnshaw for his ongoing work with the ARM. * David Edelsohn for his direction via the steering committee, ! ongoing work with the RS6000/PowerPC port, and help cleaning up ! Haifa loop changes. * Paul Eggert for random hacking all over GCC. ! * Mark Elbrecht for various DJGPP improvements. * Ben Elliston for his work to move the Objective-C runtime into its own subdirectory and for his work on autoconf. --- 145,189 ---- * Dario Dariol contributed the four varieties of sample programs that print a copy of their source. ! * Russell Davidson for fstream and stringstream fixes in libstdc++. ! ! * Mo DeJong for GCJ and libgcj bug fixes. ! ! * Gabriel Dos Reis for contributions to g++, contributions and ! maintenance of GCC diagnostics infrastructure, libstdc++-v3, ! including valarray<>, complex<>, maintaining the numerics library ! (including that pesky :-) and keeping up-to-date anything ! to do with numbers. ! ! * Ulrich Drepper for his work on glibc, testing of GCC using glibc, ! ISO C99 support, CFG dumping support, etc., plus support of the ! C++ runtime libraries including for all kinds of C interface ! issues, contributing and maintaining complex<>, sanity checking ! and disbursement, configuration architecture, libio maintenance, ! and early math work. * Richard Earnshaw for his ongoing work with the ARM. * David Edelsohn for his direction via the steering committee, ! ongoing work with the RS6000/PowerPC port, help cleaning up Haifa ! loop changes, and for doing the entire AIX port of libstdc++ with ! his bare hands. ! ! * Kevin Ediger for the floating point formatting of num_put::do_put ! in libstdc++. ! ! * Phil Edwards for libstdc++ work including configuration hackery, ! documentation maintainer, chief breaker of the web pages, the ! occasional iostream bugfix, and work on shared library symbol ! versioning. * Paul Eggert for random hacking all over GCC. ! * Mark Elbrecht for various DJGPP improvements, and for libstdc++ ! configuration support for locales and fstream-related fixes. ! ! * Vadim Egorov for libstdc++ fixes in strings, streambufs, and ! iostreams. * Ben Elliston for his work to move the Objective-C runtime into its own subdirectory and for his work on autoconf. *************** of contributors, such as the C++ library *** 140,150 **** --- 195,210 ---- * Fred Fish for BeOS support and Ada fixes. + * Ivan Fontes Garcia for the Portugese translation of the GCJ FAQ. + * Peter Gerwinski for various bugfixes and the Pascal front end. * Kaveh Ghazi for his direction via the steering committee and amazing work to make `-W -Wall' useful. + * John Gilmore for a donation to the FSF earmarked improving GNU + Java. + * Judy Goldberg for c++ contributions. * Torbjorn Granlund for various fixes and the c-torture testsuite, *************** of contributors, such as the C++ library *** 154,159 **** --- 214,222 ---- * Anthony Green for his `-Os' contributions and Java front end work. + * Stu Grossman for gdb hacking, allowing GCJ developers to debug our + code. + * Michael K. Gschwind contributed the port to the PDP-11. * Ron Guilmette implemented the `protoize' and `unprotoize' tools, *************** of contributors, such as the C++ library *** 164,170 **** * Bruno Haible for improvements in the runtime overhead for EH, new warnings and assorted bugfixes. ! * Andrew Haley for his Java work. * Chris Hanson assisted in making GCC work on HP-UX for the 9000 series 300. --- 227,233 ---- * Bruno Haible for improvements in the runtime overhead for EH, new warnings and assorted bugfixes. ! * Andrew Haley for his amazing Java compiler and library efforts. * Chris Hanson assisted in making GCC work on HP-UX for the 9000 series 300. *************** of contributors, such as the C++ library *** 199,220 **** * Andreas Jaeger for various fixes to the MIPS port * Jakub Jelinek for his SPARC work and sibling call optimizations as ! well as lots of bug fixes and test cases. * Janis Johnson for ia64 testing and fixes and for her quality improvement sidetracks. * J. Kean Johnston for OpenServer support. * Klaus Kaempf for his ongoing work to make alpha-vms a viable target. * David Kashtan of SRI adapted GCC to VMS. * Geoffrey Keating for his ongoing work to make the PPC work for GNU/Linux and his automatic regression tester. ! * Brendan Kehoe for his ongoing work with g++. * Oliver M. Kellogg of Deutsche Aerospace contributed the port to the MIL-STD-1750A. --- 262,294 ---- * Andreas Jaeger for various fixes to the MIPS port * Jakub Jelinek for his SPARC work and sibling call optimizations as ! well as lots of bug fixes and test cases, and for improving the ! Java build system. * Janis Johnson for ia64 testing and fixes and for her quality improvement sidetracks. * J. Kean Johnston for OpenServer support. + * Tim Josling for the sample language treelang based originally on + Richard Kenner's ""toy" language". + + * Nicolai Josuttis for additional libstdc++ documentation. + * Klaus Kaempf for his ongoing work to make alpha-vms a viable target. * David Kashtan of SRI adapted GCC to VMS. + * Ryszard Kabatek for many, many libstdc++ bugfixes and + optimizations of strings, especially member functions, and for + auto_ptr fixes. + * Geoffrey Keating for his ongoing work to make the PPC work for GNU/Linux and his automatic regression tester. ! * Brendan Kehoe for his ongoing work with g++ and for a lot of early ! work in just about every part of libstdc++. * Oliver M. Kellogg of Deutsche Aerospace contributed the port to the MIL-STD-1750A. *************** of contributors, such as the C++ library *** 230,237 **** scheduling. Richard Kenner was also the head maintainer of GCC for several years. ! * Mumit Khan for various contributions to the cygwin and mingw32 ! ports and maintaining binary releases for Windows hosts. * Robin Kirkham for cpu32 support. --- 304,312 ---- scheduling. Richard Kenner was also the head maintainer of GCC for several years. ! * Mumit Khan for various contributions to the Cygwin and Mingw32 ! ports and maintaining binary releases for Windows hosts, and for ! massive libstdc++ porting work to Cygwin/Mingw32. * Robin Kirkham for cpu32 support. *************** of contributors, such as the C++ library *** 261,271 **** * Kriang Lerdsuwanakij for improvements to demangler and various c++ fixes. ! * Warren Levy major work on libgcj (Java Runtime Library) and random ! work on the Java front end. * Alain Lichnewsky ported GCC to the MIPS CPU. * Robert Lipe for OpenServer support, new testsuites, testing, etc. * Weiwen Liu for testing and various bugfixes. --- 336,349 ---- * Kriang Lerdsuwanakij for improvements to demangler and various c++ fixes. ! * Warren Levy for tremendous work on libgcj (Java Runtime Library) ! and random work on the Java front end. * Alain Lichnewsky ported GCC to the MIPS CPU. + * Oskar Liljeblad for hacking on AWT and his many Java bug reports + and patches. + * Robert Lipe for OpenServer support, new testsuites, testing, etc. * Weiwen Liu for testing and various bugfixes. *************** of contributors, such as the C++ library *** 274,280 **** runtime libraries. * Martin von Lo"wis for internal consistency checking infrastructure, ! and various C++ improvements including namespace support. * H.J. Lu for his previous contributions to the steering committee, many x86 bug reports, prototype patches, and keeping the GNU/Linux --- 352,359 ---- runtime libraries. * Martin von Lo"wis for internal consistency checking infrastructure, ! various C++ improvements including namespace support, and tons of ! assistance with libstdc++/compiler merges. * H.J. Lu for his previous contributions to the steering committee, many x86 bug reports, prototype patches, and keeping the GNU/Linux *************** of contributors, such as the C++ library *** 287,297 **** optimizer, etc. * Vladimir Makarov for hacking some ugly i960 problems, PowerPC ! hacking improvements to compile-time performance and overall ! knowledge and direction in the area of instruction scheduling. * Bob Manson for his behind the scenes work on dejagnu. * Michael Meissner for LRS framework, ia32, m32r, v850, m88k, MIPS, powerpc, haifa, ECOFF debug support, and other assorted hacking. --- 366,387 ---- optimizer, etc. * Vladimir Makarov for hacking some ugly i960 problems, PowerPC ! hacking improvements to compile-time performance, overall ! knowledge and direction in the area of instruction scheduling, and ! design and implementation of the automaton based instruction ! scheduler. * Bob Manson for his behind the scenes work on dejagnu. + * Philip Martin for lots of libstdc++ string and vector iterator + fixes and improvements, and string clean up and testsuites. + + * All of the Mauve project contributors, for Java test code. + + * Bryce McKinlay for numerous GCJ and libgcj fixes and improvements. + + * Adam Megacz for his work on the Win32 port of GCJ. + * Michael Meissner for LRS framework, ia32, m32r, v850, m88k, MIPS, powerpc, haifa, ECOFF debug support, and other assorted hacking. *************** of contributors, such as the C++ library *** 304,309 **** --- 394,402 ---- * Gary Miller ported GCC to Charles River Data Systems machines. + * Alfred Minarik for libstdc++ string and ios bugfixes, and turning + the entire libstdc++ testsuite namespace-compatible. + * Mark Mitchell for his direction via the steering committee, mountains of C++ work, load/store hoisting out of loops, alias analysis improvements, ISO C `restrict' support, and serving as *************** of contributors, such as the C++ library *** 316,327 **** * Jason Molenda for major help in the care and feeding of all the services on the gcc.gnu.org (formerly egcs.cygnus.com) ! machine--mail, web services, ftp services, etc etc. * Catherine Moore for fixing various ugly problems we have sent her way, including the haifa bug which was killing the Alpha & PowerPC Linux kernels. * David Mosberger-Tang for various Alpha improvements. * Stephen Moshier contributed the floating point emulator that --- 409,424 ---- * Jason Molenda for major help in the care and feeding of all the services on the gcc.gnu.org (formerly egcs.cygnus.com) ! machine--mail, web services, ftp services, etc etc. Doing all ! this work on scrap paper and the backs of envelopes would have ! been... difficult. * Catherine Moore for fixing various ugly problems we have sent her way, including the haifa bug which was killing the Alpha & PowerPC Linux kernels. + * Mike Moreton for his various Java patches. + * David Mosberger-Tang for various Alpha improvements. * Stephen Moshier contributed the floating point emulator that *************** of contributors, such as the C++ library *** 336,342 **** and ISO C99 support, and continuous emphasis on (and contributions to) documentation. ! * Nathan Myers for his work on libstdc++-v3. * NeXT, Inc. donated the front end that supports the Objective-C language. --- 433,445 ---- and ISO C99 support, and continuous emphasis on (and contributions to) documentation. ! * Nathan Myers for his work on libstdc++-v3: architecture and ! authorship through the first three snapshots, including ! implementation of locale infrastructure, string, shadow C headers, ! and the initial project documentation (DESIGN, CHECKLIST, and so ! forth). Later, more work on MT-safe string and shadow headers. ! ! * Felix Natter for documentation on porting libstdc++. * NeXT, Inc. donated the front end that supports the Objective-C language. *************** of contributors, such as the C++ library *** 352,367 **** related infrastructure improvements. * Alexandre Oliva for various build infrastructure improvements, ! scripts and amazing testing work. * Melissa O'Neill for various NeXT fixes. * Rainer Orth for random MIPS work, including improvements to our o32 ! ABI support, improvements to dejagnu's MIPS support, etc. * Paul Petersen wrote the machine description for the Alliant FX/8. ! * Alexandre Petit-Bianco for his Java work. * Matthias Pfaller for major improvements to the NS32k port. --- 455,473 ---- related infrastructure improvements. * Alexandre Oliva for various build infrastructure improvements, ! scripts and amazing testing work, including keeping libtool issues ! sane and happy. * Melissa O'Neill for various NeXT fixes. * Rainer Orth for random MIPS work, including improvements to our o32 ! ABI support, improvements to dejagnu's MIPS support, Java ! configuration clean-ups and porting work, etc. * Paul Petersen wrote the machine description for the Alliant FX/8. ! * Alexandre Petit-Bianco for implementing much of the Java compiler ! and continued Java maintainership. * Matthias Pfaller for major improvements to the NS32k port. *************** of contributors, such as the C++ library *** 375,391 **** * Ken Raeburn for various improvements to checker, MIPS ports and various cleanups in the compiler. * David Reese of Sun Microsystems contributed to the Solaris on PowerPC port. - * Gabriel Dos Reis for contributions and maintenance of libstdc++-v3, - including valarray implementation and limits support. - * Joern Rennecke for maintaining the sh port, loop, regmove & reload hacking. ! * Loren J. Rittle for improvements to libstdc++-v3 and the FreeBSD ! port. * Craig Rodrigues for processing tons of bug reports. --- 481,498 ---- * Ken Raeburn for various improvements to checker, MIPS ports and various cleanups in the compiler. + * Rolf W. Rasmussen for hacking on AWT. + * David Reese of Sun Microsystems contributed to the Solaris on PowerPC port. * Joern Rennecke for maintaining the sh port, loop, regmove & reload hacking. ! * Loren J. Rittle for improvements to libstdc++-v3 including the ! FreeBSD port, threading fixes, thread-related configury changes, ! critical threading documentation, and solutions to really tricky ! I/O problems. * Craig Rodrigues for processing tons of bug reports. *************** of contributors, such as the C++ library *** 395,405 **** --- 502,517 ---- * Paul Rubin wrote most of the preprocessor. + * Chip Salzenberg for libstdc++ patches and improvements to locales, + traits, Makefiles, libio, libtool hackery, and "long long" support. + * Juha Sarlin for improvements to the H8 code generator. * Greg Satz assisted in making GCC work on HP-UX for the 9000 series 300. + * Bradley Schatz for his work on the GCJ FAQ. + * Peter Schauer wrote the code to allow debugging to work on the Alpha. *************** of contributors, such as the C++ library *** 409,414 **** --- 521,532 ---- work in the reload pass as well a serving as release manager for GCC 2.95.3. + * Peter Schmid for constant testing of libstdc++ - especially + application testing, going above and beyond what was requested for + the release criteria - and libstdc++ header file tweaks. + + * Jason Schroeder for jcf-dump patches. + * Andreas Schwab for his work on the m68k port. * Joel Sherrill for his direction via the steering committee, RTEMS *************** of contributors, such as the C++ library *** 420,425 **** --- 538,547 ---- some code which handles the parse tree and RTL data structures, constant folding and help with the original VAX & m68k ports. + * Kenny Simpson for prompting libstdc++ fixes due to defect reports + from the LWG (thereby keeping us in line with updates from the + ISO). + * Franz Sirl for his ongoing work with making the PPC port stable for linux. *************** of contributors, such as the C++ library *** 429,435 **** * Randy Smith finished the Sun FPA support. ! * Scott Snyder for various fixes. * Richard Stallman, for writing the original gcc and launching the GNU project. --- 551,560 ---- * Randy Smith finished the Sun FPA support. ! * Scott Snyder for queue, iterator, istream, and string fixes and ! libstdc++ testsuite entries. ! ! * Brad Spencer for contributions to the GLIBCPP_FORCE_NEW technique. * Richard Stallman, for writing the original gcc and launching the GNU project. *************** of contributors, such as the C++ library *** 444,452 **** --- 569,581 ---- * Graham Stott for various infrastructure improvements. + * John Stracke for his Java HTTP protocol fixes. + * Mike Stump for his Elxsi port, g++ contributions over the years and more recently his vxworks contributions + * Jeff Sturm for Java porting help, bug fixes, and encouragement. + * Shigeya Suzuki for this fixes for the bsdi platforms. * Ian Lance Taylor for his mips16 work, general configury hacking, *************** of contributors, such as the C++ library *** 459,494 **** * Philipp Thomas for random bugfixes throughout the compiler * Kresten Krab Thorup wrote the run time support for the Objective-C ! language. * Michael Tiemann for random bugfixes, the first instruction scheduler, initial C++ support, function integration, NS32k, SPARC and M88k machine description work, delay slot scheduling. * Teemu Torma for thread safe exception handling support. * Leonard Tower wrote parts of the parser, RTL generator, and RTL definitions, and of the VAX machine description. ! * Tom Tromey for internationalization support and his Java work. * Lassi Tuura for improvements to config.guess to determine HP processor types. * Todd Vierling for contributions for NetBSD ports. * Dean Wakerley for converting the install documentation from HTML to texinfo in time for GCC 3.0. * Krister Walfridsson for random bugfixes. * John Wehle for various improvements for the x86 code generator, related infrastructure improvements to help x86 code generation, value range propagation and other work, WE32k port. * Zack Weinberg for major work on cpplib and various other bugfixes. * Dale Wiles helped port GCC to the Tahoe. * Bob Wilson from Tensilica, Inc. for the Xtensa port. --- 588,647 ---- * Philipp Thomas for random bugfixes throughout the compiler + * Jason Thorpe for thread support in libstdc++ on NetBSD. + * Kresten Krab Thorup wrote the run time support for the Objective-C ! language and the fantastic Java bytecode interpreter. * Michael Tiemann for random bugfixes, the first instruction scheduler, initial C++ support, function integration, NS32k, SPARC and M88k machine description work, delay slot scheduling. + * Andreas Tobler for his work porting libgcj to Darwin. + * Teemu Torma for thread safe exception handling support. * Leonard Tower wrote parts of the parser, RTL generator, and RTL definitions, and of the VAX machine description. ! * Tom Tromey for internationalization support and for his many Java ! contributions and libgcj maintainership. * Lassi Tuura for improvements to config.guess to determine HP processor types. + * Petter Urkedal for libstdc++ CXXFLAGS, math, and algorithms fixes. + + * Brent Verner for work with the libstdc++ cshadow files and their + associated configure steps. + * Todd Vierling for contributions for NetBSD ports. + * Jonathan Wakely for contributing libstdc++ Doxygen notes and XHTML + guidance. + * Dean Wakerley for converting the install documentation from HTML to texinfo in time for GCC 3.0. * Krister Walfridsson for random bugfixes. + * Stephen M. Webb for time and effort on making libstdc++ shadow + files work with the tricky Solaris 8+ headers, and for pushing the + build-time header tree. + * John Wehle for various improvements for the x86 code generator, related infrastructure improvements to help x86 code generation, value range propagation and other work, WE32k port. * Zack Weinberg for major work on cpplib and various other bugfixes. + * Matt Welsh for help with Linux Threads support in GCJ. + + * Urban Widmark for help fixing java.io. + + * Mark Wielaard for new Java library code and his work integrating + with Classpath. + * Dale Wiles helped port GCC to the Tahoe. * Bob Wilson from Tensilica, Inc. for the Xtensa port. *************** of contributors, such as the C++ library *** 506,547 **** --- 659,766 ---- * Kevin Zachmann helped ported GCC to the Tahoe. + * Gilles Zunino for help porting Java to Irix. + We'd also like to thank the folks who have contributed time and energy in testing GCC: + * Michael Abd-El-Malek + + * Thomas Arend + + * Bonzo Armstrong + + * Steven Ashe + + * Chris Baldwin + * David Billinghurst + * Jim Blandy + + * Stephane Bortzmeyer + * Horst von Brand + * Frank Braun + * Rodney Brown * Joe Buck * Craig Burley + * Sidney Cadot + + * Bradford Castalia + + * Ralph Doncaster + * Ulrich Drepper * David Edelsohn + * Richard Emberson + + * Levente Farkas + + * Graham Fawcett + + * Robert A. French + + * Jo"rgen Freyh + + * Mark K. Gardner + + * Charles-Antoine Gauthier + * Yung Shing Gene * Kaveh Ghazi + * David Gilbert + + * Simon Gornall + + * Fred Gray + + * John Griffin + + * Patrik Hagglund + + * Phil Hargett + + * Amancio Hasty + + * Bryan W. Headley + * Kate Hedstrom * Richard Henderson + * Kevin B. Hendricks + * Manfred Hollstein * Kamil Iskra + * Joep Jansen + * Christian Joensson + * David Kidd + + * Tobias Kuipers + + * Anand Krishnaswamy + * Jeff Law * Robert Lipe + * llewelly + * Damon Love * Dave Love *************** energy in testing GCC: *** 556,575 **** --- 775,818 ---- * Martin Knoblauch + * Jesse Macnish + * David Miller * Toon Moene + * Stefan Morrell + + * Anon A. Mous + * Matthias Mueller + * Pekka Nikander + * Alexandre Oliva + * Jon Olson + + * Magnus Persson + + * Chris Pollard + * Richard Polton * David Rees + * Paul Reilly + + * Tom Reilly + * Loren J. Rittle + * Torsten Rueger + + * Danny Sadinoff + + * Marc Schifer + * Peter Schmid * David Schuler *************** energy in testing GCC: *** 578,587 **** --- 821,840 ---- * Franz Sirl + * Tim Souder + * Mike Stump + * Adam Sulmicki + + * George Talbot + + * Gregory Warnes + * Carlo Wood + * David E. Young + * And many others And finally we'd like to thank everyone who uses the compiler, diff -Nrc3pad gcc-3.2/gcc/doc/gccint.info-23 gcc-3.2.1/gcc/doc/gccint.info-23 *** gcc-3.2/gcc/doc/gccint.info-23 Wed Aug 14 09:36:33 2002 --- gcc-3.2.1/gcc/doc/gccint.info-23 Tue Nov 19 18:17:12 2002 *************** Index *** 495,500 **** --- 495,501 ---- * DBX_OUTPUT_MAIN_SOURCE_DIRECTORY: File Names and DBX. * DBX_OUTPUT_MAIN_SOURCE_FILE_END: File Names and DBX. * DBX_OUTPUT_MAIN_SOURCE_FILENAME: File Names and DBX. + * DBX_OUTPUT_NFUN: DBX Hooks. * DBX_OUTPUT_RBRAC: DBX Hooks. * DBX_OUTPUT_SOURCE_FILENAME: File Names and DBX. * DBX_OUTPUT_STANDARD_TYPES: DBX Hooks. diff -Nrc3pad gcc-3.2/gcc/doc/gcov.1 gcc-3.2.1/gcc/doc/gcov.1 *** gcc-3.2/gcc/doc/gcov.1 Wed Aug 14 09:36:35 2002 --- gcc-3.2.1/gcc/doc/gcov.1 Tue Nov 19 18:17:13 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:35 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:13 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" gcov \- coverage testing tool --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" gcov \- coverage testing tool diff -Nrc3pad gcc-3.2/gcc/doc/gfdl.7 gcc-3.2.1/gcc/doc/gfdl.7 *** gcc-3.2/gcc/doc/gfdl.7 Wed Aug 14 09:36:41 2002 --- gcc-3.2.1/gcc/doc/gfdl.7 Tue Nov 19 18:17:19 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:41 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:19 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "gfdl 7" ! .TH gfdl 7 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" gfdl \- \s-1GNU\s0 Free Documentation License --- 138,144 ---- .\" ====================================================================== .\" .IX Title "gfdl 7" ! .TH gfdl 7 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" gfdl \- \s-1GNU\s0 Free Documentation License diff -Nrc3pad gcc-3.2/gcc/doc/gpl.7 gcc-3.2.1/gcc/doc/gpl.7 *** gcc-3.2/gcc/doc/gpl.7 Wed Aug 14 09:36:41 2002 --- gcc-3.2.1/gcc/doc/gpl.7 Tue Nov 19 18:17:19 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:41 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:19 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "gpl 7" ! .TH gpl 7 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" gpl \- \s-1GNU\s0 General Public License --- 138,144 ---- .\" ====================================================================== .\" .IX Title "gpl 7" ! .TH gpl 7 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" gpl \- \s-1GNU\s0 General Public License diff -Nrc3pad gcc-3.2/gcc/doc/install.texi gcc-3.2.1/gcc/doc/install.texi *** gcc-3.2/gcc/doc/install.texi Mon Aug 5 03:40:02 2002 --- gcc-3.2.1/gcc/doc/install.texi Wed Nov 13 21:17:09 2002 *************** not yet been merged into the main part o *** 191,197 **** @end ifhtml @html !


    @end html @ifhtml --- 191,197 ---- @end ifhtml @html !


    @end html @ifhtml *************** components of the binutils you intend to *** 245,251 **** @file{opcodes}, @dots{}) to the directory containing the GCC sources. @html !


    @end html @ifhtml --- 245,251 ---- @file{opcodes}, @dots{}) to the directory containing the GCC sources. @html !


    @end html @ifhtml *************** subdirectory of @var{objdir} or vice ver *** 355,361 **** These additional options control where certain parts of the distribution are installed. Normally you should not need to use these options. @table @code - @item --exec-prefix=@var{dirname} Specify the toplevel installation directory for architecture-dependent files. The default is @file{@var{prefix}}. --- 355,360 ---- *************** complex conversion patterns. As a basic *** 422,430 **** @var{suffix}) are prepended (appended) before further transformations can happen with a special transformation script @var{pattern}. ! As currently implemented, this options only take effect for native builds; cross compiler binaries' names are not transformed even when a ! transformation is explicitly asked for by one of this options. For native builds, some of the installed programs are also installed with the target alias in front of their name, as in --- 421,429 ---- @var{suffix}) are prepended (appended) before further transformations can happen with a special transformation script @var{pattern}. ! As currently implemented, these options only take effect for native builds; cross compiler binaries' names are not transformed even when a ! transformation is explicitly asked for by one of these options. For native builds, some of the installed programs are also installed with the target alias in front of their name, as in *************** any in that directory---are not part of *** 460,471 **** programs---perhaps many others. (GCC installs its own header files in another directory which is based on the @option{--prefix} value.) @strong{Do not} specify @file{/usr} as the @option{--with-local-prefix}! The directory you use for @option{--with-local-prefix} @strong{must not} contain any of the system's standard header files. If it did contain them, certain programs would be miscompiled (including GNU Emacs, on certain targets), because this would override and nullify the header ! file corrections made by the @code{fixincludes} script. Indications are that people who use this option use it based on mistaken ideas of what it is for. People use it as if it specified where to --- 459,507 ---- programs---perhaps many others. (GCC installs its own header files in another directory which is based on the @option{--prefix} value.) + Both the local-prefix include directory and the GCC-prefix include + directory are part of GCC's "system include" directories. Although these + two directories are not fixed, they need to be searched in the proper + order for the correct processing of the include_next directive. The + local-prefix include directory is searched before the GCC-prefix + include directory. Another characteristic of system include directories + is that pedantic warnings are turned off for headers in these directories. + + Some autoconf macros add @option{-I @var{directory}} options to the + compiler command line, to ensure that directories containing installed + packages' headers are searched. When @var{directory} is one of GCC's + system include directories, GCC will ignore the option so that system + directories continue to be processed in the correct order. This + may result in a search order different from what was specified but the + directory will still be searched. + + GCC automatically searches for ordinary libraries using + @env{GCC_EXEC_PREFIX}. Thus, when the same installation prefix is + used for both GCC and packages, GCC will automatically search for + both headers and libraries. This provides a configuration that is + easy to use. GCC behaves in a manner similar to that when it is + installed as a system compiler in @file{/usr}. + + Sites that need to install multiple versions of GCC may not want to + use the above simple configuration. It is possible to use the + @option{--program-prefix}, @option{--program-suffix} and + @option{--program-transform-name} options to install multiple versions + into a single directory, but it may be simpler to use different prefixes + and the @option{--with-local-prefix} option to specify the location of the + site-specific files for each version. It will then be necessary for + users to specify explicitly the location of local site libraries + (e.g., with @env{LIBRARY_PATH}). + + The same value can be used for both @option{--with-local-prefix} and + @option{--prefix} provided it is not @file{/usr}. This can be used + to avoid the default search of @file{/usr/local/include}. + @strong{Do not} specify @file{/usr} as the @option{--with-local-prefix}! The directory you use for @option{--with-local-prefix} @strong{must not} contain any of the system's standard header files. If it did contain them, certain programs would be miscompiled (including GNU Emacs, on certain targets), because this would override and nullify the header ! file corrections made by the @command{fixincludes} script. Indications are that people who use this option use it based on mistaken ideas of what it is for. People use it as if it specified where to *************** configured with @option{--with-gnu-as}.) *** 503,517 **** assembler installed on your system, you may want to use this option in connection with @option{--with-as=@var{pathname}}. ! The systems where it makes a difference whether you use the GNU assembler are ! @samp{hppa1.0-@var{any}-@var{any}}, @samp{hppa1.1-@var{any}-@var{any}}, ! @samp{i386-@var{any}-sysv}, @samp{i386-@var{any}-isc}, ! @samp{i860-@var{any}-bsd}, @samp{m68k-bull-sysv}, ! @samp{m68k-hp-hpux}, @samp{m68k-sony-bsd}, ! @samp{m68k-altos-sysv}, @samp{m68000-hp-hpux}, ! @samp{m68000-att-sysv}, @samp{@var{any}-lynx-lynxos}, ! and @samp{mips-@var{any}}. ! On any other system, @option{--with-gnu-as} has no effect. On the systems listed above (except for the HP-PA, for ISC on the 386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler, --- 539,563 ---- assembler installed on your system, you may want to use this option in connection with @option{--with-as=@var{pathname}}. ! The following systems are the only ones where it makes a difference ! whether you use the GNU assembler. On any other system, ! @option{--with-gnu-as} has no effect. ! ! @itemize bullet ! @item @samp{hppa1.0-@var{any}-@var{any}} ! @item @samp{hppa1.1-@var{any}-@var{any}} ! @item @samp{i386-@var{any}-sysv} ! @item @samp{i386-@var{any}-isc} ! @item @samp{i860-@var{any}-bsd} ! @item @samp{m68k-bull-sysv} ! @item @samp{m68k-hp-hpux} ! @item @samp{m68k-sony-bsd} ! @item @samp{m68k-altos-sysv} ! @item @samp{m68000-hp-hpux} ! @item @samp{m68000-att-sysv} ! @item @samp{@var{any}-lynx-lynxos} ! @item @samp{mips-@var{any}} ! @end itemize On the systems listed above (except for the HP-PA, for ISC on the 386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler, *************** predefined set of them. *** 588,594 **** Some targets provide finer-grained control over which multilibs are built (e.g., @option{--disable-softfloat}): @table @code - @item arc-*-elf* biendian. --- 634,639 ---- *************** Some options which only apply to buildin *** 816,825 **** @item --with-headers=@var{dir} Specifies a directory which has target include files. ! @emph{This options is required} when building a cross compiler, if @file{@var{prefix}/@var{target}/sys-include} doesn't pre-exist. These include files will be copied into the @file{gcc} install directory. ! Fixincludes will be run on these files to make them compatible with GCC. @item --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}'' Specifies a list of directories which contain the target runtime --- 861,870 ---- @item --with-headers=@var{dir} Specifies a directory which has target include files. ! @emph{This option is required} when building a cross compiler, if @file{@var{prefix}/@var{target}/sys-include} doesn't pre-exist. These include files will be copied into the @file{gcc} install directory. ! @command{fixincludes} will be run on these files to make them compatible with GCC. @item --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}'' Specifies a list of directories which contain the target runtime *************** Note that each @option{--enable} option *** 837,843 **** corresponding @option{--without} option. @html !


    @end html @ifhtml --- 882,888 ---- corresponding @option{--without} option. @html !


    @end html @ifhtml *************** because you have previously configured t *** 887,893 **** directory. Make sure you have done all the necessary preparations. If you build GCC on a BSD system using a directory stored in an old System ! V file system, problems may occur in running @code{fixincludes} if the System V file system doesn't support symbolic links. These problems result in a failure to fix the declaration of @code{size_t} in @file{sys/types.h}. If you find that @code{size_t} is a signed type and --- 932,938 ---- directory. Make sure you have done all the necessary preparations. If you build GCC on a BSD system using a directory stored in an old System ! V file system, problems may occur in running @command{fixincludes} if the System V file system doesn't support symbolic links. These problems result in a failure to fix the declaration of @code{size_t} in @file{sys/types.h}. If you find that @code{size_t} is a signed type and *************** bootstrap} except that object files from *** 939,952 **** stage2 of the 3-stage bootstrap of the compiler are deleted as soon as they are no longer needed. - If you want to save additional space during the bootstrap and in the final installation as well, you can build the compiler binaries ! without debugging information with @samp{make CFLAGS='-O' LIBCFLAGS='-g ! -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap}. This will save roughly 40% of disk space both for the bootstrap and the final installation. (Libraries will still contain debugging information.) If you wish to use non-default GCC flags when compiling the stage2 and stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing @samp{make bootstrap}. Non-default optimization flags are less well --- 984,1000 ---- stage2 of the 3-stage bootstrap of the compiler are deleted as soon as they are no longer needed. If you want to save additional space during the bootstrap and in the final installation as well, you can build the compiler binaries ! without debugging information as in the following example. This will save roughly 40% of disk space both for the bootstrap and the final installation. (Libraries will still contain debugging information.) + @example + make CFLAGS='-O' LIBCFLAGS='-g -O2' \ + LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap + @end example + If you wish to use non-default GCC flags when compiling the stage2 and stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing @samp{make bootstrap}. Non-default optimization flags are less well *************** used to disable building the Ada front e *** 1042,1050 **** Additional build tools (such as @command{gnatmake}) or a working GNAT run-time library installation are usually @emph{not} required. However, ! if you want to boostrap the compiler using a minimal version of GNAT, you have to issue the following commands before invoking @samp{make ! boostrap} (this assumes that you start with an unmodified and consistent source distribution): @example --- 1090,1098 ---- Additional build tools (such as @command{gnatmake}) or a working GNAT run-time library installation are usually @emph{not} required. However, ! if you want to bootstrap the compiler using a minimal version of GNAT, you have to issue the following commands before invoking @samp{make ! bootstrap} (this assumes that you start with an unmodified and consistent source distribution): @example *************** Currently, when compiling the Ada front *** 1076,1082 **** build feature described in the previous section. @html !


    @end html @ifhtml --- 1124,1130 ---- build feature described in the previous section. @html !


    @end html @ifhtml *************** To get a list of the possible @file{*.ex *** 1180,1185 **** --- 1228,1244 ---- output of @samp{make check} into a file and look at the @samp{Running @dots{} .exp} lines. + To run only the tests for a library, run @samp{make check} from the + the library's testsuite in a subdirectory of the object directory: + @file{libstdc++-v3/testsuite} or @file{libcgj/testsuite}. + + @section Additional testing for Java Class Libraries + + The @uref{http://sources.redhat.com/mauve/,,Mauve Project} provides + a suite of tests for the Java Class Libraries. This suite can be run + as part of libgcj testing by specifying the location of the Mauve tree + when invoking @samp{make}, as in @samp{make MAUVEDIR=~/mauve check}. + @section How to interpret test results After the testsuite has run you'll find various @file{*.sum} and @file{*.log} *************** few failing testcases are possible even *** 1234,1240 **** should look here first if you think your results are unreasonable. @html !


    @end html @ifhtml --- 1293,1299 ---- should look here first if you think your results are unreasonable. @html !


    @end html @ifhtml *************** parts of the compiler in @file{@var{libd *** 1272,1281 **** info format in @file{@var{infodir}} (normally @file{@var{prefix}/info}). If you built a released version of GCC using @samp{make bootstrap} then please ! quickly review the build status page for ! @uref{http://gcc.gnu.org/gcc-3.1/buildstat.html,,3.1}, ! @uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0}, or ! @uref{http://gcc.gnu.org/gcc-2.95/buildstat.html,,2.95}. If your system is not listed for the version of GCC that you built, send a note to @email{gcc@@gcc.gnu.org} indicating --- 1331,1338 ---- info format in @file{@var{infodir}} (normally @file{@var{prefix}/info}). If you built a released version of GCC using @samp{make bootstrap} then please ! quickly review the build status page for your release, available from ! @uref{http://gcc.gnu.org/buildstat.html}. If your system is not listed for the version of GCC that you built, send a note to @email{gcc@@gcc.gnu.org} indicating *************** Free Software Foundation}, though such m *** 1348,1354 **** recent version of GCC@. @html !


    @end html @ifhtml --- 1405,1411 ---- recent version of GCC@. @html !


    @end html @ifhtml *************** contact their makers. *** 1382,1388 **** AIX: @itemize @item ! @uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX}; @item @uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}. --- 1439,1445 ---- AIX: @itemize @item ! @uref{http://www.bullfreeware.com,,Bull's Freeware and Shareware Archive for AIX}; @item @uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}. *************** bootstrapping the compiler. An updated *** 1444,1450 **** works. @html !


    @end html @ifhtml --- 1501,1507 ---- works. @html !


    @end html @ifhtml *************** GNU Compiler Collection on your machine. *** 1683,1689 **** @html !


    @end html @heading @anchor{1750a-*-*}1750a-*-* MIL-STD-1750A processors. This target is obsoleted in GCC 3.1. --- 1740,1746 ---- @html !
    @end html @heading @anchor{1750a-*-*}1750a-*-* MIL-STD-1750A processors. This target is obsoleted in GCC 3.1. *************** The 1750A's ``Load/Store Upper/Lower Byt *** 1724,1731 **** GCC@. @html !

    !
    @end html @heading @anchor{a29k}a29k AMD Am29k-family processors. These are normally used in embedded --- 1781,1787 ---- GCC@. @html !
    @end html @heading @anchor{a29k}a29k AMD Am29k-family processors. These are normally used in embedded *************** You may need to make a variant of the fi *** 1739,1753 **** particular configuration. @html !

    !
    @end html @heading @anchor{a29k-*-bsd}a29k-*-bsd AMD Am29050 used in a system running a variant of BSD Unix. @html !

    !
    @end html @heading @anchor{alpha*-*-*}alpha*-*-* --- 1795,1807 ---- particular configuration. @html !
    @end html @heading @anchor{a29k-*-bsd}a29k-*-bsd AMD Am29050 used in a system running a variant of BSD Unix. @html !
    @end html @heading @anchor{alpha*-*-*}alpha*-*-* *************** debugging information, not the least of *** 1762,1769 **** shared libraries. @html !

    !
    @end html @heading @anchor{alpha*-dec-osf*}alpha*-dec-osf* Systems using processors that implement the DEC Alpha architecture and --- 1816,1822 ---- shared libraries. @html !
    @end html @heading @anchor{alpha*-dec-osf*}alpha*-dec-osf* Systems using processors that implement the DEC Alpha architecture and *************** Tru64 UNIX) operating system, for exampl *** 1773,1778 **** --- 1826,1838 ---- Support for versions before @code{alpha*-dec-osf4} is obsoleted in GCC 3.1. (These are the versions which identify themselves as DEC OSF/1.) + In Digital Unix V4.0, virtual memory exhausted bootstrap failures + may be fixed by configuring with @option{--with-gc=simple}, + reconfiguring Kernel Virtual Memory and Swap parameters + per the @command{/usr/sbin/sys_check} Tuning Suggestions, + or applying the patch in + @uref{http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html}. + In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not currently (2001-06-13) work with @command{mips-tfile}. As a workaround, we need to use the old assembler, invoked via the barely documented *************** DBX@. DEC is now aware of this problem *** 1839,1846 **** provide a fix shortly. @html !

    !
    @end html @heading @anchor{alphaev5-cray-unicosmk*}alphaev5-cray-unicosmk* Cray T3E systems running Unicos/Mk. --- 1899,1905 ---- provide a fix shortly. @html !
    @end html @heading @anchor{alphaev5-cray-unicosmk*}alphaev5-cray-unicosmk* Cray T3E systems running Unicos/Mk. *************** need to tell GCC where to find the assem *** 1856,1863 **** simplest way to do so is by providing @option{--with-as} and @option{--with-ld} to @file{configure}, e.g.@: ! @samp{configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld ! --enable-languages=c} The comparison test during @samp{make bootstrap} fails on Unicos/Mk because the assembler inserts timestamps into object files. You should --- 1915,1924 ---- simplest way to do so is by providing @option{--with-as} and @option{--with-ld} to @file{configure}, e.g.@: ! @example ! configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \ ! --enable-languages=c ! @end example The comparison test during @samp{make bootstrap} fails on Unicos/Mk because the assembler inserts timestamps into object files. You should *************** be able to work around this by doing @sa *** 1865,1880 **** failure. @html !

    !
    @end html @heading @anchor{arc-*-elf}arc-*-elf Argonaut ARC processor. This configuration is intended for embedded systems. @html !

    !
    @end html @heading @anchor{arm-*-aout}arm-*-aout Advanced RISC Machines ARM-family processors. These are often used in --- 1926,1939 ---- failure. @html !
    @end html @heading @anchor{arc-*-elf}arc-*-elf Argonaut ARC processor. This configuration is intended for embedded systems. @html !
    @end html @heading @anchor{arm-*-aout}arm-*-aout Advanced RISC Machines ARM-family processors. These are often used in *************** You may need to make a variant of the fi *** 1886,1908 **** configuration. @html !

    !
    @end html @heading @anchor{arm-*-elf}arm-*-elf This configuration is intended for embedded systems. @html !

    !
    @end html @heading @anchor{arm*-*-linux-gnu}arm*-*-linux-gnu We require GNU binutils 2.10 or newer. @html !

    !
    @end html @heading @anchor{arm-*-riscix}arm-*-riscix The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix. --- 1945,1964 ---- configuration. @html !
    @end html @heading @anchor{arm-*-elf}arm-*-elf This configuration is intended for embedded systems. @html !
    @end html @heading @anchor{arm*-*-linux-gnu}arm*-*-linux-gnu We require GNU binutils 2.10 or newer. @html !
    @end html @heading @anchor{arm-*-riscix}arm-*-riscix The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix. *************** debugging, pass @option{--with-gnu-as} t *** 1919,1926 **** You will need to install GNU @command{sed} before you can run configure. @html !

    !
    @end html @heading @anchor{avr}avr --- 1975,1981 ---- You will need to install GNU @command{sed} before you can run configure. @html !
    @end html @heading @anchor{avr}avr *************** The following error: *** 1957,1964 **** indicates that you should upgrade to a newer version of the binutils. @html !

    !
    @end html @heading @anchor{c4x}c4x --- 2012,2018 ---- indicates that you should upgrade to a newer version of the binutils. @html !
    @end html @heading @anchor{c4x}c4x *************** can also be obtained from: *** 1988,1995 **** @end itemize @html !

    !
    @end html @heading @anchor{cris}CRIS --- 2042,2048 ---- @end itemize @html !
    @end html @heading @anchor{cris}CRIS *************** information about this platform is avail *** 2027,2034 **** @uref{http://developer.axis.com/}. @html !

    !
    @end html @heading @anchor{dos}DOS --- 2080,2086 ---- @uref{http://developer.axis.com/}. @html !
    @end html @heading @anchor{dos}DOS *************** compilation package DJGPP, which include *** 2040,2054 **** and includes all the necessary compilation tools and libraries. @html !

    !
    @end html @heading @anchor{dsp16xx}dsp16xx A port to the AT&T DSP1610 family of processors. @html !

    !
    @end html @heading @anchor{*-*-freebsd*}*-*-freebsd* --- 2092,2104 ---- and includes all the necessary compilation tools and libraries. @html !
    @end html @heading @anchor{dsp16xx}dsp16xx A port to the AT&T DSP1610 family of processors. @html !
    @end html @heading @anchor{*-*-freebsd*}*-*-freebsd* *************** results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4 *** 2078,2092 **** In principle, @option{--enable-threads} is now compatible with @option{--enable-libgcj} on FreeBSD@. However, it has only been built ! and tested on i386-*-freebsd4.5 and alpha-*-freebsd5.0. The static library may be incorrectly built (symbols are missing at link time). There is a rare timing-based startup hang (probably involves an assupmtion about the thread library). Multi-threaded boehm-gc (required for libjava) exposes severe threaded signal-handling bugs on FreeBSD before 4.5-RELEASE. The alpha port may not fully bootstrap without some manual ! intervention: gcjh will crash with a floating-point exception while generating @file{java/lang/Double.h} (just copy the version built on ! i386-*-freebsd* and rerun the top-level gmake with no arguments and it should properly complete the bootstrap). Other CPU architectures supported by FreeBSD will require additional configuration tuning in, at the very least, both boehm-gc and libffi. --- 2128,2144 ---- In principle, @option{--enable-threads} is now compatible with @option{--enable-libgcj} on FreeBSD@. However, it has only been built ! and tested on @samp{i386-*-freebsd4.5} and @samp{alpha-*-freebsd5.0}. ! The static library may be incorrectly built (symbols are missing at link time). There is a rare timing-based startup hang (probably involves an assupmtion about the thread library). Multi-threaded boehm-gc (required for libjava) exposes severe threaded signal-handling bugs on FreeBSD before 4.5-RELEASE. The alpha port may not fully bootstrap without some manual ! intervention: @command{gcjh} will crash with a floating-point exception while generating @file{java/lang/Double.h} (just copy the version built on ! @samp{i386-*-freebsd*} and rerun the top-level @command{gmake} with no ! arguments and it should properly complete the bootstrap). Other CPU architectures supported by FreeBSD will require additional configuration tuning in, at the very least, both boehm-gc and libffi. *************** the very least, both boehm-gc and libffi *** 2094,2101 **** Shared @file{libgcc_s.so} is now built and installed by default. @html !

    !
    @end html @heading @anchor{elxsi-elxsi-bsd}elxsi-elxsi-bsd The Elxsi's C compiler has known limitations that prevent it from --- 2146,2152 ---- Shared @file{libgcc_s.so} is now built and installed by default. @html !
    @end html @heading @anchor{elxsi-elxsi-bsd}elxsi-elxsi-bsd The Elxsi's C compiler has known limitations that prevent it from *************** compiling GCC@. Please contact @email{m *** 2104,2111 **** Support for this processor is obsoleted in GCC 3.1. @html !

    !
    @end html @heading @anchor{h8300-hms}h8300-hms Hitachi H8/300 series of processors. --- 2155,2161 ---- Support for this processor is obsoleted in GCC 3.1. @html !
    @end html @heading @anchor{h8300-hms}h8300-hms Hitachi H8/300 series of processors. *************** first three arguments in function calls *** 2118,2131 **** longer a multiple of 2 bytes. @html !

    !
    @end html @heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux* We @emph{highly} recommend using gas/binutils 2.8 or newer on all hppa platforms; you may encounter a variety of problems when using the HP ! assembler. Specifically, @option{-g} does not work on HP-UX (since that system uses a peculiar debugging format which GCC does not know about), unless you --- 2168,2181 ---- longer a multiple of 2 bytes. @html !
    @end html @heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux* We @emph{highly} recommend using gas/binutils 2.8 or newer on all hppa platforms; you may encounter a variety of problems when using the HP ! assembler. The HP assembler does not work with the @samp{hppa64-hp-hpux11*} ! port. Specifically, @option{-g} does not work on HP-UX (since that system uses a peculiar debugging format which GCC does not know about), unless you *************** use GAS and GDB and configure GCC with t *** 2133,2147 **** @uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and @option{--with-as=@dots{}} options. ! If you wish to use pa-risc 2.0 architecture support, you must use either ! the HP assembler, gas/binutils 2.11 or a recent @uref{ftp://sources.redhat.com/pub/binutils/snapshots,,snapshot of gas}. More specific information to @samp{hppa*-hp-hpux*} targets follows. @html !

    !
    @end html @heading @anchor{hppa*-hp-hpux9}hppa*-hp-hpux9 --- 2183,2197 ---- @uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and @option{--with-as=@dots{}} options. ! If you wish to use the pa-risc 2.0 architecture support with a 32-bit ! runtime, you must use either the HP assembler, gas/binutils 2.11 or newer, ! or a recent @uref{ftp://sources.redhat.com/pub/binutils/snapshots,,snapshot of gas}. More specific information to @samp{hppa*-hp-hpux*} targets follows. @html !
    @end html @heading @anchor{hppa*-hp-hpux9}hppa*-hp-hpux9 *************** and @env{SHELL} to @file{/bin/ksh} in yo *** 2157,2164 **** @html !

    !
    @end html @heading @anchor{hppa*-hp-hpux10}hppa*-hp-hpux10 --- 2207,2213 ---- @html !
    @end html @heading @anchor{hppa*-hp-hpux10}hppa*-hp-hpux10 *************** bootstrap}. *** 2189,2219 **** @html !

    !
    @end html @heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11 ! GCC 3.0 and up support HP-UX 11. You must use GNU binutils 2.11 or above on ! this platform. Thread support is not currently implemented for this ! platform, so @option{--enable-threads} does not work. ! See @uref{http://gcc.gnu.org/ml/gcc-prs/2002-01/msg00551.html} ! and @uref{http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html}. GCC 2.95.x is not supported under HP-UX 11 and cannot be used to compile GCC 3.0 and up. Refer to @uref{binaries.html,,binaries} for information about obtaining precompiled GCC binaries for HP-UX. @html !

    !
    @end html @heading @anchor{i370-*-*}i370-*-* This port is very preliminary and has many known bugs. We hope to have a higher-quality port for this machine soon. @html !

    !
    @end html @heading @anchor{*-*-linux-gnu}*-*-linux-gnu --- 2238,2290 ---- @html !
    @end html @heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11 ! GCC 3.0 and up support HP-UX 11. On 64-bit capable systems, there ! are two distinct ports. The @samp{hppa2.0w-hp-hpux11*} port generates ! code for the 32-bit pa-risc runtime architecture. It uses the HP ! linker and is currently the default selected by config.guess. The ! optional @samp{hppa64-hp-hpux11*} port generates 64-bit code for the ! pa-risc 2.0 architecture. It must be explicitly selected using the ! @samp{--host=hppa64-hp-hpux11*} configure option. Different prefixes ! must be used if both ports are to be installed on the same system. ! ! You must use GNU binutils 2.11 or above with the 32-bit port. Thread ! support is not currently implemented, so @option{--enable-threads} does ! not work. See: ! ! @itemize ! @item @uref{http://gcc.gnu.org/ml/gcc-prs/2002-01/msg00551.html} ! @item @uref{http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html}. ! @end itemize ! GCC 2.95.x is not supported under HP-UX 11 and cannot be used to compile GCC 3.0 and up. Refer to @uref{binaries.html,,binaries} for information about obtaining precompiled GCC binaries for HP-UX. + GNU binutils 2.13 or later is recommended with the 64-bit port. + The HP assembler is not supported. It is @emph{highly} recommended + that the GNU linker be used as well. Either binutils must be built + prior to gcc, or a binary distribution of gcc or binutils must be + obtained for the initial builds. When starting with a HP compiler, + it is preferable to use the ANSI compiler as the bundled compiler + only supports traditional C. Bootstrapping with the bundled compiler + is tested infrequently and problems often arise because of the subtle + differences in semantics between traditional and ISO C. There also + have been problems reported with various binary distributions. This + port still is undergoing significant development. + @html !
    @end html @heading @anchor{i370-*-*}i370-*-* This port is very preliminary and has many known bugs. We hope to have a higher-quality port for this machine soon. @html !
    @end html @heading @anchor{*-*-linux-gnu}*-*-linux-gnu *************** The patch @uref{glibc-2.2.patch,,glibc-2 *** 2223,2229 **** applied in the GCC source tree, fixes the compatibility problems. @html -

    @end html @html --- 2294,2299 ---- *************** glibc 2.2.4 whether patches for GCC 3.0 *** 2240,2247 **** 2.2.3 with GCC 3.0, just do not try to recompile it. @html !

    !
    @end html @heading @anchor{ix86-*-linux*oldld}i?86-*-linux*oldld Use this configuration to generate @file{a.out} binaries on Linux-based --- 2310,2316 ---- 2.2.3 with GCC 3.0, just do not try to recompile it. @html !
    @end html @heading @anchor{ix86-*-linux*oldld}i?86-*-linux*oldld Use this configuration to generate @file{a.out} binaries on Linux-based *************** installed. *** 2251,2258 **** This configuration is obsoleted in GCC 3.1. @html !

    !
    @end html @heading @anchor{ix86-*-linux*aout}i?86-*-linux*aout Use this configuration to generate @file{a.out} binaries on Linux-based --- 2320,2326 ---- This configuration is obsoleted in GCC 3.1. @html !
    @end html @heading @anchor{ix86-*-linux*aout}i?86-*-linux*aout Use this configuration to generate @file{a.out} binaries on Linux-based *************** GNU systems. This configuration is bein *** 2260,2267 **** gas/binutils version 2.5.2 or later. @html !

    !
    @end html @heading @anchor{ix86-*-linux*}i?86-*-linux* --- 2328,2334 ---- gas/binutils version 2.5.2 or later. @html !
    @end html @heading @anchor{ix86-*-linux*}i?86-*-linux* *************** possible you have a hardware problem. F *** 2272,2294 **** found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}. @html !

    !
    @end html @heading @anchor{ix86-*-sco}i?86-*-sco Compilation with RCC is recommended. Also, it may be a good idea to link with GNU malloc instead of the malloc that comes with the system. @html !

    !
    @end html @heading @anchor{ix86-*-sco3.2v4}i?86-*-sco3.2v4 Use this configuration for SCO release 3.2 version 4. @html !

    !
    @end html @heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5* Use this for the SCO OpenServer Release 5 family of operating systems. --- 2339,2358 ---- found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}. @html !
    @end html @heading @anchor{ix86-*-sco}i?86-*-sco Compilation with RCC is recommended. Also, it may be a good idea to link with GNU malloc instead of the malloc that comes with the system. @html !
    @end html @heading @anchor{ix86-*-sco3.2v4}i?86-*-sco3.2v4 Use this configuration for SCO release 3.2 version 4. @html !
    @end html @heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5* Use this for the SCO OpenServer Release 5 family of operating systems. *************** engineering and will hopefully be addres *** 2363,2370 **** @html !

    !
    @end html @heading @anchor{ix86-*-udk}i?86-*-udk --- 2427,2433 ---- @html !
    @end html @heading @anchor{ix86-*-udk}i?86-*-udk *************** from the right place) while making the t *** 2383,2390 **** building a cross compiler. The easiest way to do this is with a configure command like this: ! @samp{CC=/udk/usr/ccs/bin/cc @var{/your/path/to}/gcc/configure ! --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-} @emph{You should substitute @samp{i686} in the above command with the appropriate processor for your host.} --- 2446,2455 ---- building a cross compiler. The easiest way to do this is with a configure command like this: ! @example ! CC=/udk/usr/ccs/bin/cc @var{/your/path/to}/gcc/configure \ ! --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk- ! @end example @emph{You should substitute @samp{i686} in the above command with the appropriate processor for your host.} *************** have installed. *** 2398,2405 **** @html !

    !
    @end html @heading @anchor{ix86-*-isc}i?86-*-isc This configuration is obsoleted in GCC 3.1. --- 2463,2469 ---- @html !
    @end html @heading @anchor{ix86-*-isc}i?86-*-isc This configuration is obsoleted in GCC 3.1. *************** In ISC version 4.1, @command{sed} core d *** 2411,2418 **** @file{deduced.h}. Use the version of @command{sed} from version 4.0. @html !

    !
    @end html @heading @anchor{ix86-ibm-aix}i?86-ibm-aix This configuration is obsoleted in GCC 3.1. --- 2475,2481 ---- @file{deduced.h}. Use the version of @command{sed} from version 4.0. @html !
    @end html @heading @anchor{ix86-ibm-aix}i?86-ibm-aix This configuration is obsoleted in GCC 3.1. *************** You need to use GAS version 2.1 or later *** 2421,2428 **** GNU binutils version 2.2 or later. @html !

    !
    @end html @heading @anchor{ix86-sequent-bsd}i?86-sequent-bsd This configuration is obsoleted in GCC 3.1. --- 2484,2490 ---- GNU binutils version 2.2 or later. @html !
    @end html @heading @anchor{ix86-sequent-bsd}i?86-sequent-bsd This configuration is obsoleted in GCC 3.1. *************** This configuration is obsoleted in GCC 3 *** 2430,2437 **** Go to the Berkeley universe before compiling. @html !

    !
    @end html @heading @anchor{ix86-sequent-ptx1*}i?86-sequent-ptx1*, i?86-sequent-ptx2*, i?86-sequent-sysv3* This configuration is obsoleted in GCC 3.1. --- 2492,2498 ---- Go to the Berkeley universe before compiling. @html !
    @end html @heading @anchor{ix86-sequent-ptx1*}i?86-sequent-ptx1*, i?86-sequent-ptx2*, i?86-sequent-sysv3* This configuration is obsoleted in GCC 3.1. *************** If you encounter this problem, upgrade y *** 2443,2450 **** use @command{bash} (the GNU shell) to run @code{fixproto}. @html !

    !
    @end html @heading @anchor{i860-intel-osf*}i860-intel-osf* All support for the i860 processor is obsoleted in GCC 3.1. --- 2504,2510 ---- use @command{bash} (the GNU shell) to run @code{fixproto}. @html !
    @end html @heading @anchor{i860-intel-osf*}i860-intel-osf* All support for the i860 processor is obsoleted in GCC 3.1. *************** insert the line *** 2488,2495 **** These problems don't exist in operating system version 1.1. @html !

    !
    @end html @heading @anchor{ia64-*-linux}ia64-*-linux IA-64 processor (also known as IPF, or Itanium Processor Family) --- 2548,2554 ---- These problems don't exist in operating system version 1.1. @html !
    @end html @heading @anchor{ia64-*-linux}ia64-*-linux IA-64 processor (also known as IPF, or Itanium Processor Family) *************** GCC 3.0.2 is believed to be fully ABI co *** 2513,2520 **** ABI changes are expected. @html !

    !
    @end html @heading @anchor{*-lynx-lynxos}*-lynx-lynxos LynxOS 2.2 and earlier comes with GCC 1.x already installed as --- 2572,2578 ---- ABI changes are expected. @html !
    @end html @heading @anchor{*-lynx-lynxos}*-lynx-lynxos LynxOS 2.2 and earlier comes with GCC 1.x already installed as *************** COFF format object files and executables *** 2525,2532 **** installed tools, which produce @file{a.out} format executables. @html !

    !
    @end html @heading @anchor{*-ibm-aix*}*-ibm-aix* --- 2583,2589 ---- installed tools, which produce @file{a.out} format executables. @html !
    @end html @heading @anchor{*-ibm-aix*}*-ibm-aix* *************** interoperate with GCC@. *** 2554,2559 **** --- 2611,2645 ---- Building @file{libstdc++.a} requires a fix for a AIX Assembler bug APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). + @samp{libstdc++} in GCC 3.2 increments the major version number of the + shared object and GCC installation places the @file{libstdc++.a} + shared library in a common location which will overwrite the GCC 3.1 + version of the shared library. Applications either need to be + re-linked against the new shared library or the GCC 3.1 version of the + @samp{libstdc++} shared object needs to be available to the AIX + runtime loader. The GCC 3.1 @samp{libstdc++.so.4} shared object can + be installed for runtime dynamic loading using the following steps to + set the @samp{F_LOADONLY} flag in the shared object for @emph{each} + multilib @file{libstdc++.a} installed: + + Extract the shared object from each the GCC 3.1 @file{libstdc++.a} + archive: + @example + % ar -x libstdc++.a libstdc++.so.4 + @end example + + Enable the @samp{F_LOADONLY} flag so that the shared object will be + available for runtime dynamic loading, but not linking: + @example + % strip -e libstdc++.so.4 + @end example + + Archive the runtime-only shared object in the GCC 3.2 + @file{libstdc++.a} archive: + @example + % ar -q libstdc++.a libstdc++.so.4 + @end example + Linking executables and shared libraries may produce warnings of duplicate symbols. The assembly files generated by GCC for AIX always have included multiple symbol definitions for certain global variable *************** A default can be specified with the @opt *** 2606,2621 **** switch and using the configure option @option{--with-cpu-@var{cpu_type}}. @html !

    !
    @end html @heading @anchor{m32r-*-elf}m32r-*-elf Mitsubishi M32R processor. This configuration is intended for embedded systems. @html !

    !
    @end html @heading @anchor{m68000-hp-bsd}m68000-hp-bsd HP 9000 series 200 running BSD@. Note that the C compiler that comes --- 2692,2705 ---- switch and using the configure option @option{--with-cpu-@var{cpu_type}}. @html !
    @end html @heading @anchor{m32r-*-elf}m32r-*-elf Mitsubishi M32R processor. This configuration is intended for embedded systems. @html !
    @end html @heading @anchor{m68000-hp-bsd}m68000-hp-bsd HP 9000 series 200 running BSD@. Note that the C compiler that comes *************** with this system cannot compile GCC; con *** 2623,2646 **** to get binaries of GCC for bootstrapping. @html !

    !
    @end html @heading @anchor{m6811-elf}m6811-elf Motorola 68HC11 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. @html !

    !
    @end html @heading @anchor{m6812-elf}m6812-elf Motorola 68HC12 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. @html !

    !
    @end html @heading @anchor{m68k-altos}m68k-altos Altos 3068. This configuration is obsoleted in GCC 3.1. --- 2707,2727 ---- to get binaries of GCC for bootstrapping. @html !
    @end html @heading @anchor{m6811-elf}m6811-elf Motorola 68HC11 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. @html !
    @end html @heading @anchor{m6812-elf}m6812-elf Motorola 68HC12 family micro controllers. These are used in embedded applications. There are no standard Unix configurations. @html !
    @end html @heading @anchor{m68k-altos}m68k-altos Altos 3068. This configuration is obsoleted in GCC 3.1. *************** You must use the GNU assembler, linker a *** 2649,2656 **** Also, you must fix a kernel bug. @html !

    !
    @end html @heading @anchor{m68k-apple-aux}m68k-apple-aux Apple Macintosh running A/UX@. --- 2730,2736 ---- Also, you must fix a kernel bug. @html !
    @end html @heading @anchor{m68k-apple-aux}m68k-apple-aux Apple Macintosh running A/UX@. *************** You will also a patched version of @file *** 2669,2676 **** raises some of the arbitrary limits found in the original. @html !

    !
    @end html @heading @anchor{m68k-att-sysv}m68k-att-sysv AT&T 3b1, a.k.a.@: 7300 PC@. This version of GCC cannot --- 2749,2755 ---- raises some of the arbitrary limits found in the original. @html !
    @end html @heading @anchor{m68k-att-sysv}m68k-att-sysv AT&T 3b1, a.k.a.@: 7300 PC@. This version of GCC cannot *************** bootstrap. Binaries are available from *** 2680,2687 **** @uref{ftp://archive.cis.ohio-state.edu/pub/att7300/}. @html !

    !
    @end html @heading @anchor{m68k-bull-sysv}m68k-bull-sysv Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01. --- 2759,2765 ---- @uref{ftp://archive.cis.ohio-state.edu/pub/att7300/}. @html !
    @end html @heading @anchor{m68k-bull-sysv}m68k-bull-sysv Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01. *************** assembler or for availability of the DPX *** 2696,2703 **** @email{F.Pierresteguy@@frcl.bull.fr}. @html !

    !
    @end html @heading @anchor{m68k-crds-unos}m68k-crds-unos Use @samp{configure unos} for building on Unos. --- 2774,2780 ---- @email{F.Pierresteguy@@frcl.bull.fr}. @html !
    @end html @heading @anchor{m68k-crds-unos}m68k-crds-unos Use @samp{configure unos} for building on Unos. *************** If linking @file{cc1} fails, try putting *** 2736,2743 **** and linking from that library. @html !

    !
    @end html @heading @anchor{m68k-hp-hpux}m68k-hp-hpux HP 9000 series 300 or 400 running HP-UX@. HP-UX version 8.0 has a bug in --- 2813,2819 ---- and linking from that library. @html !
    @end html @heading @anchor{m68k-hp-hpux}m68k-hp-hpux HP 9000 series 300 or 400 running HP-UX@. HP-UX version 8.0 has a bug in *************** to look like: *** 2795,2802 **** @html !

    !
    @end html @heading @anchor{m68k-*-nextstep*}m68k-*-nextstep* These configurations are obsoleted in GCC 3.1. --- 2871,2877 ---- @html !
    @end html @heading @anchor{m68k-*-nextstep*}m68k-*-nextstep* These configurations are obsoleted in GCC 3.1. *************** for this sequence to work. *** 2846,2853 **** @end example @html !

    !
    @end html @heading @anchor{m68k-ncr-*}m68k-ncr-* On the Tower models 4@var{n}0 and 6@var{n}0, by default a process is not --- 2921,2927 ---- @end example @html !
    @end html @heading @anchor{m68k-ncr-*}m68k-ncr-* On the Tower models 4@var{n}0 and 6@var{n}0, by default a process is not *************** MAXUMEM = 4096 *** 2863,2870 **** @html !

    !
    @end html @heading @anchor{m68k-sun}m68k-sun Sun 3. We do not provide a configuration file to use the Sun FPA by --- 2937,2943 ---- @html !
    @end html @heading @anchor{m68k-sun}m68k-sun Sun 3. We do not provide a configuration file to use the Sun FPA by *************** default, because programs that establish *** 2872,2879 **** point traps inherently cannot work with the FPA@. @html !

    !
    @end html @heading @anchor{m68k-sun-sunos4.1.1}m68k-sun-sunos4.1.1 --- 2945,2951 ---- point traps inherently cannot work with the FPA@. @html !
    @end html @heading @anchor{m68k-sun-sunos4.1.1}m68k-sun-sunos4.1.1 *************** It is reported that you may need the GNU *** 2881,2888 **** @html !

    !
    @end html @heading @anchor{m88k-*-svr3}m88k-*-svr3 Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port. --- 2953,2959 ---- @html !
    @end html @heading @anchor{m88k-*-svr3}m88k-*-svr3 Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port. *************** It is best, however, to use an older ver *** 2900,2907 **** if you have one. @html !

    !
    @end html @heading @anchor{m88k-*-dgux}m88k-*-dgux Motorola m88k running DG/UX@. --- 2971,2977 ---- if you have one. @html !
    @end html @heading @anchor{m88k-*-dgux}m88k-*-dgux Motorola m88k running DG/UX@. *************** If you do not specify a configuration na *** 2920,2927 **** configuration based on the current software development environment. @html !

    !
    @end html @heading @anchor{m88k-tektronix-sysv3}m88k-tektronix-sysv3 Tektronix XD88 running UTekV 3.2e. --- 2990,2996 ---- configuration based on the current software development environment. @html !
    @end html @heading @anchor{m88k-tektronix-sysv3}m88k-tektronix-sysv3 Tektronix XD88 running UTekV 3.2e. *************** Otherwise you may have trouble getting c *** 2936,2943 **** between stages. @html !

    !
    @end html @heading @anchor{mips-*-*}mips-*-* If you use the 1.31 version of the MIPS assembler (such as was shipped --- 3005,3011 ---- between stages. @html !
    @end html @heading @anchor{mips-*-*}mips-*-* If you use the 1.31 version of the MIPS assembler (such as was shipped *************** If you override the @code{CC} make varia *** 2990,2997 **** compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}. @html !

    !
    @end html @heading @anchor{mips-dec-*}mips-dec-* These configurations are obsoleted in GCC 3.1. --- 3058,3064 ---- compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}. @html !
    @end html @heading @anchor{mips-dec-*}mips-dec-* These configurations are obsoleted in GCC 3.1. *************** If you override the @code{CC} make varia *** 3024,3031 **** compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}. @html !

    !
    @end html @heading @anchor{mips-mips-riscos*}mips-mips-riscos* These configurations are obsoleted in GCC 3.1. --- 3091,3097 ---- compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}. @html !
    @end html @heading @anchor{mips-mips-riscos*}mips-mips-riscos* These configurations are obsoleted in GCC 3.1. *************** BSD 4.3 configuration for RISC-OS, revis *** 3055,3062 **** System V.4 configuration for RISC-OS, revision @var{rev}. @html !

    !
    @end html @item mips-mips-riscos@var{rev}sysv System V.3 configuration for RISC-OS, revision @var{rev}. --- 3121,3127 ---- System V.4 configuration for RISC-OS, revision @var{rev}. @html !
    @end html @item mips-mips-riscos@var{rev}sysv System V.3 configuration for RISC-OS, revision @var{rev}. *************** RISC-OS revision 4 to RISC-OS revision 5 *** 3068,3075 **** avoiding a linker bug. @html !

    !
    @end html @heading @anchor{mips-sgi-irix4}mips-sgi-irix4 This configuration is obsoleted in GCC 3.1. --- 3133,3139 ---- avoiding a linker bug. @html !
    @end html @heading @anchor{mips-sgi-irix4}mips-sgi-irix4 This configuration is obsoleted in GCC 3.1. *************** ignored. *** 3101,3108 **** @end example @html !

    !
    @end html @heading @anchor{mips-sgi-irix5}mips-sgi-irix5 --- 3165,3171 ---- @end example @html !
    @end html @heading @anchor{mips-sgi-irix5}mips-sgi-irix5 *************** however, you may have success with @comm *** 3147,3154 **** not have GNU @command{make} available. @html !

    !
    @end html @heading @anchor{mips-sgi-irix6}mips-sgi-irix6 --- 3210,3216 ---- not have GNU @command{make} available. @html !
    @end html @heading @anchor{mips-sgi-irix6}mips-sgi-irix6 *************** See @uref{http://freeware.sgi.com/,,http *** 3247,3254 **** information about using GCC on IRIX platforms. @html !

    !
    @end html @heading @anchor{mips-sony-sysv}mips-sony-sysv Sony MIPS NEWS@. This configuration is obsoleted in GCC 3.1. --- 3309,3315 ---- information about using GCC on IRIX platforms. @html !
    @end html @heading @anchor{mips-sony-sysv}mips-sony-sysv Sony MIPS NEWS@. This configuration is obsoleted in GCC 3.1. *************** COFF)@. In particular, the linker does *** 3258,3265 **** GCC when shared libraries are linked in. @html !

    !
    @end html @heading @anchor{ns32k-encore}ns32k-encore This configuration is obsoleted in GCC 3.1. --- 3319,3325 ---- GCC when shared libraries are linked in. @html !
    @end html @heading @anchor{ns32k-encore}ns32k-encore This configuration is obsoleted in GCC 3.1. *************** This configuration is obsoleted in GCC 3 *** 3267,3274 **** Encore ns32000 system. Encore systems are supported only under BSD@. @html !

    !
    @end html @heading @anchor{ns32k-*-genix}ns32k-*-genix National Semiconductor ns32000 system. This configuration is obsoleted --- 3327,3333 ---- Encore ns32000 system. Encore systems are supported only under BSD@. @html !
    @end html @heading @anchor{ns32k-*-genix}ns32k-*-genix National Semiconductor ns32000 system. This configuration is obsoleted *************** Genix has bugs in @code{alloca} and @cod *** 3278,3285 **** compiled versions of these from GNU Emacs. @html !

    !
    @end html @heading @anchor{ns32k-sequent}ns32k-sequent This configuration is obsoleted in GCC 3.1. --- 3337,3343 ---- compiled versions of these from GNU Emacs. @html !
    @end html @heading @anchor{ns32k-sequent}ns32k-sequent This configuration is obsoleted in GCC 3.1. *************** This configuration is obsoleted in GCC 3 *** 3287,3294 **** Go to the Berkeley universe before compiling. @html !

    !
    @end html @heading @anchor{ns32k-utek}ns32k-utek UTEK ns32000 system (``merlin''). This configuration is obsoleted in --- 3345,3351 ---- Go to the Berkeley universe before compiling. @html !
    @end html @heading @anchor{ns32k-utek}ns32k-utek UTEK ns32000 system (``merlin''). This configuration is obsoleted in *************** The C compiler that comes with this syst *** 3299,3306 **** @html !

    !
    @end html @heading @anchor{powerpc*-*-*}powerpc-*-* --- 3356,3362 ---- @html !
    @end html @heading @anchor{powerpc*-*-*}powerpc-*-* *************** You can specify a default version for th *** 3308,3315 **** switch by using the configure option @option{--with-cpu-@var{cpu_type}}. @html !

    !
    @end html @heading @anchor{powerpc-*-darwin*}powerpc-*-darwin* PowerPC running Darwin (Mac OS X kernel). --- 3364,3370 ---- switch by using the configure option @option{--with-cpu-@var{cpu_type}}. @html !
    @end html @heading @anchor{powerpc-*-darwin*}powerpc-*-darwin* PowerPC running Darwin (Mac OS X kernel). *************** binaries are available at *** 3323,3329 **** registration required). Versions of the assembler prior to ``cctools-364'' cannot handle the ! 4-argument form of rlwinm and related mask-using instructions. Darwin 1.3 (Mac OS X 10.0) uses cctools-353 for instance. To get cctools-364, check out @file{cctools} with tag @samp{Apple-364}, build it, and install the assembler as @file{usr/bin/as}. See --- 3378,3384 ---- registration required). Versions of the assembler prior to ``cctools-364'' cannot handle the ! 4-argument form of @code{rlwinm} and related mask-using instructions. Darwin 1.3 (Mac OS X 10.0) uses cctools-353 for instance. To get cctools-364, check out @file{cctools} with tag @samp{Apple-364}, build it, and install the assembler as @file{usr/bin/as}. See *************** number of extensions not available in a *** 3342,3366 **** extensions are generally specific to Mac programming. @html !

    !
    @end html @heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4 PowerPC system in big endian mode, running System V.4. @html !

    !
    @end html @heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu* You will need ! @uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.12.90.0.7} or newer for a working GCC@. @html !

    !
    @end html @heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd* PowerPC system in big endian mode running NetBSD@. To build the --- 3397,3418 ---- extensions are generally specific to Mac programming. @html !
    @end html @heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4 PowerPC system in big endian mode, running System V.4. @html !
    @end html @heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu* You will need ! @uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.13.90.0.10} or newer for a working GCC@. @html !
    @end html @heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd* PowerPC system in big endian mode running NetBSD@. To build the *************** documentation you will need Texinfo vers *** 3368,3427 **** 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. @html !

    !
    @end html @heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim Embedded PowerPC system in big endian mode for use in running under the PSIM simulator. @html !

    !
    @end html @heading @anchor{powerpc-*-eabi}powerpc-*-eabi Embedded PowerPC system in big endian mode. @html !

    !
    @end html @heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4 PowerPC system in little endian mode, running System V.4. @html !

    !
    @end html @heading @anchor{powerpcle-*-eabisim}powerpcle-*-eabisim Embedded PowerPC system in little endian mode for use in running under the PSIM simulator. @html !

    !
    @end html @heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi Embedded PowerPC system in little endian mode. @html !

    !
    @end html @heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe PowerPC system in little endian mode running Windows NT@. @html !

    !
    @end html @heading @anchor{romp-*-aos}romp-*-aos, romp-*-mach These configurations are obsoleted in GCC 3.1. --- 3420,3471 ---- 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. @html !
    @end html @heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim Embedded PowerPC system in big endian mode for use in running under the PSIM simulator. @html !
    @end html @heading @anchor{powerpc-*-eabi}powerpc-*-eabi Embedded PowerPC system in big endian mode. @html !
    @end html @heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4 PowerPC system in little endian mode, running System V.4. @html !
    @end html @heading @anchor{powerpcle-*-eabisim}powerpcle-*-eabisim Embedded PowerPC system in little endian mode for use in running under the PSIM simulator. @html !
    @end html @heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi Embedded PowerPC system in little endian mode. @html !
    @end html @heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe PowerPC system in little endian mode running Windows NT@. @html !
    @end html @heading @anchor{romp-*-aos}romp-*-aos, romp-*-mach These configurations are obsoleted in GCC 3.1. *************** floating-point constants and can be safe *** 3434,3455 **** is correct. @html !

    !
    @end html @heading @anchor{s390-*-linux*}s390-*-linux* S/390 system running Linux for S/390@. @html !

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

    !
    @end html @c Please use Solaris 2 to refer to all release of Solaris, starting @c with 2.0 until 2.6, 7, and 8. Solaris 1 was a marketing name for --- 3478,3496 ---- is correct. @html !
    @end html @heading @anchor{s390-*-linux*}s390-*-linux* S/390 system running Linux for S/390@. @html !
    @end html @heading @anchor{s390x-*-linux*}s390x-*-linux* zSeries system (64-bit) running Linux for zSeries@. @html !
    @end html @c Please use Solaris 2 to refer to all release of Solaris, starting @c with 2.0 until 2.6, 7, and 8. Solaris 1 was a marketing name for *************** There are patches for Solaris 2.6 (10563 *** 3502,3509 **** 108653-22 for Intel) that fix this bug. @html !

    !
    @end html @heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2* --- 3543,3549 ---- 108653-22 for Intel) that fix this bug. @html !
    @end html @heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2* *************** information. *** 3515,3522 **** Sun @command{as} 4.x is broken in that it cannot cope with long symbol names. A typical error message might look similar to the following: ! @samp{/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: ! error: can't compute value of an expression involving an external symbol.} This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris 2.6 and has been fixed in later (5.x) versions of the assembler, --- 3555,3564 ---- Sun @command{as} 4.x is broken in that it cannot cope with long symbol names. A typical error message might look similar to the following: ! @smallexample ! /usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error: ! can't compute value of an expression involving an external symbol. ! @end smallexample This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris 2.6 and has been fixed in later (5.x) versions of the assembler, *************** that supports only 32-bit binaries, one *** 3536,3543 **** 64-bit target libraries. @html !

    !
    @end html @heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7 --- 3578,3584 ---- 64-bit target libraries. @html !
    @end html @heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7 *************** the Solaris 7 Recommended Patch Cluster. *** 3579,3585 **** @html

    !


    @end html @heading @anchor{sparc-sun-sunos4*}sparc-sun-sunos4* --- 3620,3626 ---- @html

    !


    @end html @heading @anchor{sparc-sun-sunos4*}sparc-sun-sunos4* *************** be due to a bug in @command{sh}. You ca *** 3598,3605 **** @command{make}. @html !

    !
    @end html @heading @anchor{sparc-unknown-linux-gnulibc1}sparc-unknown-linux-gnulibc1 --- 3639,3645 ---- @command{make}. @html !
    @end html @heading @anchor{sparc-unknown-linux-gnulibc1}sparc-unknown-linux-gnulibc1 *************** for this platform, too. *** 3609,3616 **** @html !

    !
    @end html @heading @anchor{sparc-*-linux*}sparc-*-linux* --- 3649,3655 ---- @html !
    @end html @heading @anchor{sparc-*-linux*}sparc-*-linux* *************** releases mishandled unaligned relocation *** 3620,3627 **** @html !

    !
    @end html @heading @anchor{sparc64-*-*}sparc64-*-* --- 3659,3665 ---- @html !
    @end html @heading @anchor{sparc64-*-*}sparc64-*-* *************** invocation with an environment that caus *** 3632,3639 **** recognize (via @samp{uname -a}) the system as @samp{sparc-*-*} instead. @html !

    !
    @end html @heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2* --- 3670,3676 ---- recognize (via @samp{uname -a}) the system as @samp{sparc-*-*} instead. @html !
    @end html @heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2* *************** step in order to bootstrap this target w *** 3648,3655 **** specifies the v9 architecture to the Sun linker and assembler. @html !

    !
    @end html @heading @anchor{#*-*-sysv*}*-*-sysv* On System V release 3, you may get this error message --- 3685,3691 ---- specifies the v9 architecture to the Sun linker and assembler. @html !
    @end html @heading @anchor{#*-*-sysv*}*-*-sysv* On System V release 3, you may get this error message *************** On a System V release 4 system, make sur *** 3683,3698 **** @file{/usr/ucb} uses libraries which have bugs. @html !

    !
    @end html @heading @anchor{vax-dec-ultrix}vax-dec-ultrix Don't try compiling with VAX C (@code{vcc}). It produces incorrect code in some cases (for example, when @code{alloca} is used). @html !

    !
    @end html @heading @anchor{we32k-*-*}we32k-*-* These computers are also known as the 3b2, 3b5, 3b20 and other similar --- 3719,3732 ---- @file{/usr/ucb} uses libraries which have bugs. @html !
    @end html @heading @anchor{vax-dec-ultrix}vax-dec-ultrix Don't try compiling with VAX C (@code{vcc}). It produces incorrect code in some cases (for example, when @code{alloca} is used). @html !
    @end html @heading @anchor{we32k-*-*}we32k-*-* These computers are also known as the 3b2, 3b5, 3b20 and other similar *************** You may need to raise the ULIMIT setting *** 3730,3737 **** as the file @file{cc1plus} is larger than one megabyte. @html !

    !
    @end html @heading @anchor{xtensa-*-elf}xtensa-*-elf --- 3764,3770 ---- as the file @file{cc1plus} is larger than one megabyte. @html !
    @end html @heading @anchor{xtensa-*-elf}xtensa-*-elf *************** downloaded files include a customized co *** 3749,3756 **** which you can use to replace the default header file. @html !

    !
    @end html @heading @anchor{xtensa-*-linux*}xtensa-*-linux* --- 3782,3788 ---- which you can use to replace the default header file. @html !
    @end html @heading @anchor{xtensa-*-linux*}xtensa-*-linux* *************** respects, this target is the same as the *** 3762,3769 **** @uref{#xtensa-*-elf,,@samp{xtensa-*-elf}} target. @html !

    !
    @end html @heading @anchor{windows}Microsoft Windows (32-bit) --- 3794,3800 ---- @uref{#xtensa-*-elf,,@samp{xtensa-*-elf}} target. @html !
    @end html @heading @anchor{windows}Microsoft Windows (32-bit) *************** Current (as of early 2001) snapshots of *** 3774,3781 **** without modification. @html !

    !
    @end html @heading @anchor{os2}OS/2 --- 3805,3811 ---- without modification. @html !
    @end html @heading @anchor{os2}OS/2 *************** An older copy of GCC 2.8.1 is included w *** 3788,3795 **** ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/}. @html !

    !
    @end html @heading @anchor{older}Older systems --- 3818,3824 ---- ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/}. @html !
    @end html @heading @anchor{older}Older systems *************** about GCC on such systems (which may no *** 3839,3846 **** current GCC) is to be found in the GCC texinfo manual. @html !

    !
    @end html @heading @anchor{elf_targets}all ELF targets (SVR4, Solaris 2, etc.) --- 3868,3874 ---- current GCC) is to be found in the GCC texinfo manual. @html !
    @end html @heading @anchor{elf_targets}all ELF targets (SVR4, Solaris 2, etc.) *************** automatically. *** 3851,3858 **** @html !

    !

    @end html @ifhtml --- 3879,3885 ---- @html !


    @end html @ifhtml *************** automatically. *** 3864,3871 **** @ifset oldhtml @include install-old.texi @html !

    !

    @end html @ifhtml --- 3891,3897 ---- @ifset oldhtml @include install-old.texi @html !


    @end html @ifhtml *************** automatically. *** 3877,3884 **** @ifset gfdlhtml @include fdl.texi @html !

    !

    @end html @ifhtml --- 3903,3909 ---- @ifset gfdlhtml @include fdl.texi @html !


    @end html @ifhtml diff -Nrc3pad gcc-3.2/gcc/doc/invoke.texi gcc-3.2.1/gcc/doc/invoke.texi *** gcc-3.2/gcc/doc/invoke.texi Thu May 16 10:55:55 2002 --- gcc-3.2.1/gcc/doc/invoke.texi Tue Oct 29 16:35:04 2002 *************** in the following sections. *** 157,163 **** @xref{Overall Options,,Options Controlling the Kind of Output}. @gccoptlist{ -c -S -E -o @var{file} -pipe -pass-exit-codes -x @var{language} @gol ! -v -### --target-help --help} @item C Language Options @xref{C Dialect Options,,Options Controlling C Dialect}. --- 157,163 ---- @xref{Overall Options,,Options Controlling the Kind of Output}. @gccoptlist{ -c -S -E -o @var{file} -pipe -pass-exit-codes -x @var{language} @gol ! -v -### --help --target-help --version} @item C Language Options @xref{C Dialect Options,,Options Controlling C Dialect}. *************** in the following sections. *** 169,175 **** -fallow-single-precision -fcond-mismatch @gol -fsigned-bitfields -fsigned-char @gol -funsigned-bitfields -funsigned-char @gol ! -fwritable-strings -fshort-wchar} @item C++ Language Options @xref{C++ Dialect Options,,Options Controlling C++ Dialect}. --- 169,175 ---- -fallow-single-precision -fcond-mismatch @gol -fsigned-bitfields -fsigned-char @gol -funsigned-bitfields -funsigned-char @gol ! -fwritable-strings} @item C++ Language Options @xref{C++ Dialect Options,,Options Controlling C++ Dialect}. *************** in the following sections. *** 187,193 **** -fno-optional-diags -fpermissive @gol -frepo -fno-rtti -fstats -ftemplate-depth-@var{n} @gol -fuse-cxa-atexit -fvtable-gc -fno-weak -nostdinc++ @gol ! -fno-default-inline -Wctor-dtor-privacy @gol -Wnon-virtual-dtor -Wreorder @gol -Weffc++ -Wno-deprecated @gol -Wno-non-template-friend -Wold-style-cast @gol --- 187,193 ---- -fno-optional-diags -fpermissive @gol -frepo -fno-rtti -fstats -ftemplate-depth-@var{n} @gol -fuse-cxa-atexit -fvtable-gc -fno-weak -nostdinc++ @gol ! -fno-default-inline -Wabi -Wctor-dtor-privacy @gol -Wnon-virtual-dtor -Wreorder @gol -Weffc++ -Wno-deprecated @gol -Wno-non-template-friend -Wold-style-cast @gol *************** in the following sections. *** 211,217 **** @xref{Warning Options,,Options to Request or Suppress Warnings}. @gccoptlist{ -fsyntax-only -pedantic -pedantic-errors @gol ! -w -W -Wall -Waggregate-return @gol -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment @gol -Wconversion -Wno-deprecated-declarations @gol -Wdisabled-optimization -Wdiv-by-zero -Werror @gol --- 211,217 ---- @xref{Warning Options,,Options to Request or Suppress Warnings}. @gccoptlist{ -fsyntax-only -pedantic -pedantic-errors @gol ! -w -W -Wall -Waggregate-return @gol -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment @gol -Wconversion -Wno-deprecated-declarations @gol -Wdisabled-optimization -Wdiv-by-zero -Werror @gol *************** in the following sections. *** 222,228 **** -Werror-implicit-function-declaration @gol -Wimport -Winline @gol -Wlarger-than-@var{len} -Wlong-long @gol ! -Wmain -Wmissing-braces -Wmissing-declarations @gol -Wmissing-format-attribute -Wmissing-noreturn @gol -Wmultichar -Wno-format-extra-args -Wno-format-y2k @gol -Wno-import -Wpacked -Wpadded @gol --- 222,228 ---- -Werror-implicit-function-declaration @gol -Wimport -Winline @gol -Wlarger-than-@var{len} -Wlong-long @gol ! -Wmain -Wmissing-braces @gol -Wmissing-format-attribute -Wmissing-noreturn @gol -Wmultichar -Wno-format-extra-args -Wno-format-y2k @gol -Wno-import -Wpacked -Wpadded @gol *************** in the following sections. *** 236,242 **** @item C-only Warning Options @gccoptlist{ ! -Wbad-function-cast -Wmissing-prototypes -Wnested-externs @gol -Wstrict-prototypes -Wtraditional} @item Debugging Options --- 236,243 ---- @item C-only Warning Options @gccoptlist{ ! -Wbad-function-cast -Wmissing-declarations @gol ! -Wmissing-prototypes -Wnested-externs @gol -Wstrict-prototypes -Wtraditional} @item Debugging Options *************** in the following sections. *** 248,254 **** -fdump-tree-original@r{[}-@var{n}@r{]} -fdump-tree-optimized@r{[}-@var{n}@r{]} @gol -fdump-tree-inlined@r{[}-@var{n}@r{]} @gol -fmem-report -fpretend-float @gol ! -fprofile-arcs -ftest-coverage -ftime-report @gol -g -g@var{level} -gcoff -gdwarf -gdwarf-1 -gdwarf-1+ -gdwarf-2 @gol -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ @gol -p -pg -print-file-name=@var{library} -print-libgcc-file-name @gol --- 249,256 ---- -fdump-tree-original@r{[}-@var{n}@r{]} -fdump-tree-optimized@r{[}-@var{n}@r{]} @gol -fdump-tree-inlined@r{[}-@var{n}@r{]} @gol -fmem-report -fpretend-float @gol ! -fprofile-arcs -fsched-verbose=@var{n} @gol ! -ftest-coverage -ftime-report @gol -g -g@var{level} -gcoff -gdwarf -gdwarf-1 -gdwarf-1+ -gdwarf-2 @gol -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ @gol -p -pg -print-file-name=@var{library} -print-libgcc-file-name @gol *************** in the following sections. *** 261,266 **** --- 263,269 ---- @gccoptlist{ -falign-functions=@var{n} -falign-jumps=@var{n} @gol -falign-labels=@var{n} -falign-loops=@var{n} @gol + -fbounds-check @gol -fbranch-probabilities -fcaller-saves -fcprop-registers @gol -fcse-follow-jumps -fcse-skip-blocks -fdata-sections @gol -fdelayed-branch -fdelete-null-pointer-checks @gol *************** in the following sections. *** 269,275 **** -fgcse -fgcse-lm -fgcse-sm @gol -finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol -fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol ! -fmove-all-movables -fno-default-inline -fno-defer-pop @gol -fno-function-cse -fno-guess-branch-probability @gol -fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol -funsafe-math-optimizations -fno-trapping-math @gol --- 272,279 ---- -fgcse -fgcse-lm -fgcse-sm @gol -finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol -fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol ! -fmove-all-movables -fno-branch-count-reg @gol ! -fno-default-inline -fno-defer-pop @gol -fno-function-cse -fno-guess-branch-probability @gol -fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol -funsafe-math-optimizations -fno-trapping-math @gol *************** in the following sections. *** 278,286 **** -freduce-all-givs -fregmove -frename-registers @gol -frerun-cse-after-loop -frerun-loop-opt @gol -fschedule-insns -fschedule-insns2 @gol -fsingle-precision-constant -fssa -fssa-ccp -fssa-dce @gol ! -fstrength-reduce -fstrict-aliasing -fthread-jumps -ftrapv @gol ! -funroll-all-loops -funroll-loops @gol --param @var{name}=@var{value} -O -O0 -O1 -O2 -O3 -Os} --- 282,292 ---- -freduce-all-givs -fregmove -frename-registers @gol -frerun-cse-after-loop -frerun-loop-opt @gol -fschedule-insns -fschedule-insns2 @gol + -fno-sched-interblock -fno-sched-spec @gol + -fsched-spec-load -fsched-spec-load-dangerous @gol -fsingle-precision-constant -fssa -fssa-ccp -fssa-dce @gol ! -fstrength-reduce -fstrict-aliasing -fthread-jumps @gol ! -ftrapv -funroll-all-loops -funroll-loops @gol --param @var{name}=@var{value} -O -O0 -O1 -O2 -O3 -Os} *************** in the following sections. *** 444,450 **** -mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol -mcall-aix -mcall-sysv -mcall-netbsd @gol ! -maix-struct-return -msvr4-struct-return -mabi=altivec -mabi=no-altivec @gol -mprototype -mno-prototype @gol -msim -mmvme -mads -myellowknife -memb -msdata @gol --- 450,456 ---- -mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol -mcall-aix -mcall-sysv -mcall-netbsd @gol ! -maix-struct-return -msvr4-struct-return @gol -mabi=altivec -mabi=no-altivec @gol -mprototype -mno-prototype @gol -msim -mmvme -mads -myellowknife -memb -msdata @gol *************** in the following sections. *** 481,491 **** -mno-fp-ret-in-387 -msoft-float -msvr3-shlib @gol -mno-wide-multiply -mrtd -malign-double @gol -mpreferred-stack-boundary=@var{num} @gol ! -mmmx -msse -msse2 -msse-math -m3dnow @gol -mthreads -mno-align-stringops -minline-all-stringops @gol -mpush-args -maccumulate-outgoing-args -m128bit-long-double @gol -m96bit-long-double -mregparm=@var{num} -momit-leaf-frame-pointer @gol -mno-red-zone@gol -m32 -m64} @emph{HPPA Options} --- 487,498 ---- -mno-fp-ret-in-387 -msoft-float -msvr3-shlib @gol -mno-wide-multiply -mrtd -malign-double @gol -mpreferred-stack-boundary=@var{num} @gol ! -mmmx -msse -msse2 -m3dnow @gol -mthreads -mno-align-stringops -minline-all-stringops @gol -mpush-args -maccumulate-outgoing-args -m128bit-long-double @gol -m96bit-long-double -mregparm=@var{num} -momit-leaf-frame-pointer @gol -mno-red-zone@gol + -mcmodel=@var{code-model} @gol -m32 -m64} @emph{HPPA Options} *************** in the following sections. *** 609,616 **** @emph{D30V Options} @gccoptlist{ ! -mextmem -mextmemory -monchip -mno-asm-optimize -masm-optimize @gol ! -mbranch-cost=@var{n} -mcond-exec=@var{n}} @emph{S/390 and zSeries Options} @gccoptlist{ --- 616,623 ---- @emph{D30V Options} @gccoptlist{ ! -mextmem -mextmemory -monchip -mno-asm-optimize @gol ! -masm-optimize -mbranch-cost=@var{n} -mcond-exec=@var{n}} @emph{S/390 and zSeries Options} @gccoptlist{ *************** in the following sections. *** 669,675 **** -fno-common -fno-ident -fno-gnu-linker @gol -fpcc-struct-return -fpic -fPIC @gol -freg-struct-return -fshared-data -fshort-enums @gol ! -fshort-double -fvolatile @gol -fvolatile-global -fvolatile-static @gol -fverbose-asm -fpack-struct -fstack-check @gol -fstack-limit-register=@var{reg} -fstack-limit-symbol=@var{sym} @gol --- 676,682 ---- -fno-common -fno-ident -fno-gnu-linker @gol -fpcc-struct-return -fpic -fPIC @gol -freg-struct-return -fshared-data -fshort-enums @gol ! -fshort-double -fshort-wchar -fvolatile @gol -fvolatile-global -fvolatile-static @gol -fverbose-asm -fpack-struct -fstack-check @gol -fstack-limit-register=@var{reg} -fstack-limit-symbol=@var{sym} @gol *************** be displayed. *** 914,919 **** --- 921,930 ---- @opindex target-help Print (on the standard output) a description of target specific command line options for each tool. + + @item --version + @opindex version + Display the version number and copyrights of the invoked GCC. @end table @node Invoking G++ *************** than double precision. If you must use *** 1296,1307 **** to use single precision operations when the operands are single precision, use this option. This option has no effect when compiling with ISO or GNU C conventions (the default). - - @item -fshort-wchar - @opindex fshort-wchar - Override the underlying type for @samp{wchar_t} to be @samp{short - unsigned int} instead of the default for the target. This option is - useful for building programs to run under WINE@. @end table @node C++ Dialect Options --- 1307,1312 ---- *************** Do not assume @samp{inline} for function *** 1550,1555 **** --- 1555,1612 ---- functions will have linkage like inline functions; they just won't be inlined by default. + @item -Wabi @r{(C++ only)} + @opindex Wabi + Warn when G++ generates code that is probably not compatible with the + vendor-neutral C++ ABI. Although an effort has been made to warn about + all such cases, there are probably some cases that are not warned about, + even though G++ is generating incompatible code. There may also be + cases where warnings are emitted even though the code that is generated + will be compatible. + + You should rewrite your code to avoid these warnings if you are + concerned about the fact that code generated by G++ may not be binary + compatible with code generated by other compilers. + + The known incompatibilites at this point include: + + @itemize @bullet + + @item + Incorrect handling of tail-padding for bit-fields. G++ may attempt to + pack data into the same byte as a base class. For example: + + @smallexample + struct A @{ virtual void f(); int f1 : 1; @}; + struct B : public A @{ int f2 : 1; @}; + @end smallexample + + @noindent + In this case, G++ will place @code{B::f2} into the same byte + as@code{A::f1}; other compilers will not. You can avoid this problem + by explicitly padding @code{A} so that its size is a multiple of the + byte size on your platform; that will cause G++ and other compilers to + layout @code{B} identically. + + @item + Incorrect handling of tail-padding for virtual bases. G++ does not use + tail padding when laying out virtual bases. For example: + + @smallexample + struct A @{ virtual void f(); char c1; @}; + struct B @{ B(); char c2; @}; + struct C : public A, public virtual B @{@}; + @end smallexample + + @noindent + In this case, G++ will not place @code{B} into the tail-padding for + @code{A}; other compilers will. You can avoid this problem by + explicitly padding @code{A} so that its size is a multiple of its + alignment (ignoring virtual base classes); that will cause G++ and other + compilers to layout @code{C} identically. + + @end itemize + @item -Wctor-dtor-privacy @r{(C++ only)} @opindex Wctor-dtor-privacy Warn when a class seems unusable, because all the constructors or *************** optimization and code generation options *** 2876,2893 **** Control Optimization}). The other use of @option{-fprofile-arcs} is for use with @code{gcov}, ! when it is used with the @option{-ftest-coverage} option. GCC ! supports two methods of determining code coverage: the options that ! support @code{gcov}, and options @option{-a} and @option{-ax}, which ! write information to text files. The options that support @code{gcov} ! do not need to instrument every arc in the program, so a program compiled ! with them runs faster than a program compiled with @option{-a}, which ! adds instrumentation code to every basic block in the program. The ! tradeoff: since @code{gcov} does not have execution counts for all ! branches, it must start with the execution counts for the instrumented ! branches, and then iterate over the program flow graph until the entire ! graph has been solved. Hence, @code{gcov} runs a little more slowly than ! a program which uses information from @option{-a} and @option{-ax}. With @option{-fprofile-arcs}, for each function of your program GCC creates a program flow graph, then finds a spanning tree for the graph. --- 2933,2939 ---- Control Optimization}). The other use of @option{-fprofile-arcs} is for use with @code{gcov}, ! when it is used with the @option{-ftest-coverage} option. With @option{-fprofile-arcs}, for each function of your program GCC creates a program flow graph, then finds a spanning tree for the graph. *************** executed. When an arc is the only exit *** 2897,2907 **** instrumentation code can be added to the block; otherwise, a new basic block must be created to hold the instrumentation code. - This option makes it possible to estimate branch probabilities and to - calculate basic block execution counts. In general, basic block - execution counts as provided by @option{-a} do not give enough - information to estimate all branch probabilities. - @need 2000 @item -ftest-coverage @opindex ftest-coverage --- 2943,2948 ---- *************** Dump after all tree based optimization, *** 3133,3138 **** --- 3174,3196 ---- Dump after function inlining, to @file{@var{file}.inlined}. @end table + @item -fsched-verbose=@var{n} + @opindex fsched-verbose + On targets that use instruction scheduling, this option controls the + amount of debugging output the scheduler prints. This information is + written to standard error, unless @option{-dS} or @option{-dR} is + specified, in which case it is output to the usual dump + listing file, @file{.sched} or @file{.sched2} respectively. However + for @var{n} greater than nine, the output is always printed to standard + error. + + For @var{n} greater than zero, @option{-fsched-verbose} outputs the + same information as @option{-dRS}. For @var{n} greater than one, it + also output basic block probabilities, detailed ready list information + and unit/insn info. For @var{n} greater than two, it includes RTL + at abort point, control-flow and regions info. And for @var{n} over + four, @option{-fsched-verbose} also includes dependence info. + @item -fpretend-float @opindex fpretend-float When running a cross-compiler, pretend that the target machine uses the *************** types. Languages like C or C++ require *** 3437,3442 **** --- 3495,3508 ---- have distinct location, so using this option will result in non-conforming behavior. + @item -fno-branch-count-reg + @opindex fno-branch-count-reg + Do not use ``decrement and branch'' instructions on a count register, + but instead generate a sequence of instructions that decrement a + register, compare it against zero, then branch based upon the result. + This option is only meaningful on architectures that support such + instructions, which include x86, PowerPC, IA-64 and S/390. + @item -fno-function-cse @opindex fno-function-cse Do not put function addresses in registers; make each instruction that *************** an exact implementation of IEEE or ISO r *** 3499,3504 **** --- 3565,3578 ---- math functions. The default is @option{-ftrapping-math}. + + @item -fbounds-check + @opindex fbounds-check + For front-ends that support it, generate additional code to check that + indices used to access arrays are within the declared range. This is + currenly only supported by the Java and Fortran 77 front-ends, where + this option defaults to true and false respectively. + @end table The following options control specific optimizations. The @option{-O2} *************** instruction scheduling after register al *** 3626,3631 **** --- 3700,3729 ---- especially useful on machines with a relatively small number of registers and where memory load instructions take more than one cycle. + @item -fno-sched-interblock + @opindex fno-sched-interblock + Don't schedule instructions across basic blocks. This is normally + enabled by default when scheduling before register allocation, i.e.@: + with @option{-fschedule-insns} or at @option{-O2} or higher. + + @item -fno-sched-spec + @opindex fno-sched-spec + Don't allow speculative motion of non-load instructions. This is normally + enabled by default when scheduling before register allocation, i.e.@: + with @option{-fschedule-insns} or at @option{-O2} or higher. + + @item -fsched-spec-load + @opindex fsched-spec-load + Allow speculative motion of some load instructions. This only makes + sense when scheduling before register allocation, i.e.@: with + @option{-fschedule-insns} or at @option{-O2} or higher. + + @item -fsched-spec-load-dangerous + @opindex fsched-spec-load-dangerous + Allow speculative motion of more load instructions. This only makes + sense when scheduling before register allocation, i.e.@: with + @option{-fschedule-insns} or at @option{-O2} or higher. + @item -ffunction-sections @itemx -fdata-sections @opindex ffunction-sections *************** one @option{-I} option, the directories *** 4199,4213 **** order; the standard system directories come after. If a standard system include directory, or a directory specified with ! @option{-isystem}, is also specified with @option{-I}, it will be ! searched only in the position requested by @option{-I}. Also, it will ! not be considered a system include directory. If that directory really ! does contain system headers, there is a good chance that they will ! break. For instance, if GCC's installation procedure edited the headers ! in @file{/usr/include} to fix bugs, @samp{-I/usr/include} will cause the ! original, buggy headers to be found instead of the corrected ones. GCC ! will issue a warning when a system include directory is hidden in this ! way. @item -I- @opindex I- --- 4297,4309 ---- order; the standard system directories come after. If a standard system include directory, or a directory specified with ! @option{-isystem}, is also specified with @option{-I}, the @option{-I} ! option will be ignored. The directory will still be searched but as a ! system directory at its normal position in the system include chain. ! This is to ensure that GCC's procedure to fix buggy system headers and ! the ordering for the include_next directive are not inadvertantly changed. ! If you really need to change the search order for system directories, ! use the @option{-nostdinc} and/or @option{-isystem} options. @item -I- @opindex I- *************** direct access to the MMX, SSE and 3Dnow *** 7530,7535 **** --- 7626,7634 ---- @xref{X86 Built-in Functions}, for details of the functions enabled and disabled by these switches. + To have SSE/SSE2 instructions generated automatically from floating-point code, + see @option{-mfpmath=sse}. + @item -mpush-args @itemx -mno-push-args @opindex mpush-args *************** by the x86-64 ABI, it is a 128-byte area *** 7598,7603 **** --- 7697,7728 ---- stack pointer that will not be modified by signal or interrupt handlers and therefore can be used for temporary data without adjusting the stack pointer. The flag @option{-mno-red-zone} disables this red zone. + + @item -mcmodel=small + @opindex mcmodel=small + Generate code for the small code model: the program and its symbols must + be linked in the lower 2 GB of the address space. Pointers are 64 bits. + Programs can be statically or dynamically linked. This is the default + code model. + + @item -mcmodel=kernel + @opindex mcmodel=kernel + Generate code for the kernel code model. The kernel runs in the + negative 2 GB of the address space. + This model has to be used for Linux kernel code. + + @item -mcmodel=medium + @opindex mcmodel=medium + Generate code for the medium model: The program is linked in the lower 2 + GB of the address space but symbols can be located anywhere in the + address space. Programs can be statically or dynamically linked, but + building of shared libraries are not supported with the medium model. + + @item -mcmodel=large + @opindex mcmodel=large + Generate code for the large model: This model makes no assumptions + about addresses and sizes of sections. Currently GCC does not implement + this model. @end table @node HPPA Options *************** unwinding from asynchronous events (such *** 9637,9643 **** Return ``short'' @code{struct} and @code{union} values in memory like longer ones, rather than in registers. This convention is less efficient, but it has the advantage of allowing intercallability between ! GCC-compiled files and files compiled with other compilers. The precise convention for returning structures in memory depends on the target configuration macros. --- 9762,9769 ---- Return ``short'' @code{struct} and @code{union} values in memory like longer ones, rather than in registers. This convention is less efficient, but it has the advantage of allowing intercallability between ! GCC-compiled files and files compiled with other compilers, particularly ! the Portable C Compiler (pcc). The precise convention for returning structures in memory depends on the target configuration macros. *************** on the target configuration macros. *** 9645,9650 **** --- 9771,9781 ---- Short structures and unions are those whose size and alignment match that of some integer type. + @strong{Warning:} code compiled with the @option{-fpcc-struct-return} + switch is not binary compatible with code compiled with the + @option{-freg-struct-return} switch. + Use it to conform to a non-default application binary interface. + @item -freg-struct-return @opindex freg-struct-return Return @code{struct} and @code{union} values in registers when possible. *************** defaults to @option{-fpcc-struct-return} *** 9658,9673 **** --- 9789,9827 ---- the principal compiler. In those cases, we can choose the standard, and we chose the more efficient register return alternative. + @strong{Warning:} code compiled with the @option{-freg-struct-return} + switch is not binary compatible with code compiled with the + @option{-fpcc-struct-return} switch. + Use it to conform to a non-default application binary interface. + @item -fshort-enums @opindex fshort-enums Allocate to an @code{enum} type only as many bytes as it needs for the declared range of possible values. Specifically, the @code{enum} type will be equivalent to the smallest integer type which has enough room. + @strong{Warning:} the @option{-fshort-enums} switch causes GCC to generate + code that is not binary compatible with code generated without that switch. + Use it to conform to a non-default application binary interface. + @item -fshort-double @opindex fshort-double Use the same size for @code{double} as for @code{float}. + @strong{Warning:} the @option{-fshort-double} switch causes GCC to generate + code that is not binary compatible with code generated without that switch. + Use it to conform to a non-default application binary interface. + + @item -fshort-wchar + @opindex fshort-wchar + Override the underlying type for @samp{wchar_t} to be @samp{short + unsigned int} instead of the default for the target. This option is + useful for building programs to run under WINE@. + + @strong{Warning:} the @option{-fshort-wchar} switch causes GCC to generate + code that is not binary compatible with code generated without that switch. + Use it to conform to a non-default application binary interface. + @item -fshared-data @opindex fshared-data Requests that the data and non-@code{const} variables of this *************** three-way choice. *** 9809,9817 **** @item -fpack-struct @opindex fpack-struct ! Pack all structure members together without holes. Usually you would ! not want to use this option, since it makes the code suboptimal, and ! the offsets of structure members won't agree with system libraries. @item -finstrument-functions @opindex finstrument-functions --- 9963,9974 ---- @item -fpack-struct @opindex fpack-struct ! Pack all structure members together without holes. ! ! @strong{Warning:} the @option{-fpack-struct} switch causes GCC to generate ! code that is not binary compatible with code generated without that switch. ! Additionally, it makes the code suboptimial. ! Use it to conform to a non-default application binary interface. @item -finstrument-functions @opindex finstrument-functions *************** This option and its counterpart, @option *** 9908,9915 **** change the way C symbols are represented in the object file. One use is to help link with legacy assembly code. ! Be warned that you should know what you are doing when invoking this ! option, and that not all targets provide complete support for it. @end table @c man end --- 10065,10074 ---- change the way C symbols are represented in the object file. One use is to help link with legacy assembly code. ! @strong{Warning:} the @option{-fleading-underscore} switch causes GCC to ! generate code that is not binary compatible with code generated without that ! switch. Use it to conform to a non-default application binary interface. ! Not all targets provide complete support for this switch. @end table @c man end diff -Nrc3pad gcc-3.2/gcc/doc/makefile.texi gcc-3.2.1/gcc/doc/makefile.texi *** gcc-3.2/gcc/doc/makefile.texi Thu Jan 10 16:04:23 2002 --- gcc-3.2.1/gcc/doc/makefile.texi Wed Sep 11 16:40:28 2002 *************** You can specify specific tests by settin *** 48,56 **** of the @file{.exp} file, optionally followed by (for some tests) an equals and a file wildcard, like: ! @example make check-gcc RUNTESTFLAGS="execute.exp=19980413-*" ! @end example Note that running the testsuite may require additional tools be installed, such as TCL or dejagnu. --- 48,56 ---- of the @file{.exp} file, optionally followed by (for some tests) an equals and a file wildcard, like: ! @smallexample make check-gcc RUNTESTFLAGS="execute.exp=19980413-*" ! @end smallexample Note that running the testsuite may require additional tools be installed, such as TCL or dejagnu. diff -Nrc3pad gcc-3.2/gcc/doc/rtl.texi gcc-3.2.1/gcc/doc/rtl.texi *** gcc-3.2/gcc/doc/rtl.texi Sat Feb 23 12:59:08 2002 --- gcc-3.2.1/gcc/doc/rtl.texi Wed Sep 11 16:40:28 2002 *************** An hypothetical example might be a patte *** 2316,2326 **** either wrap around or use saturating addition depending on the value of a special control register: ! @example (parallel [(set (reg:SI 2) (unspec:SI [(reg:SI 3) (reg:SI 4)] 0)) (use (reg:SI 1))]) ! @end example @noindent --- 2316,2326 ---- either wrap around or use saturating addition depending on the value of a special control register: ! @smallexample (parallel [(set (reg:SI 2) (unspec:SI [(reg:SI 3) (reg:SI 4)] 0)) (use (reg:SI 1))]) ! @end smallexample @noindent *************** where @var{z} is an index register and @ *** 2552,2561 **** Here is an example of its use: ! @example (mem:SF (post_modify:SI (reg:SI 42) (plus (reg:SI 42) (reg:SI 48)))) ! @end example This says to modify pseudo register 42 by adding the contents of pseudo register 48 to it, after the use of what ever 42 points to. --- 2552,2561 ---- Here is an example of its use: ! @smallexample (mem:SF (post_modify:SI (reg:SI 42) (plus (reg:SI 42) (reg:SI 48)))) ! @end smallexample This says to modify pseudo register 42 by adding the contents of pseudo register 48 to it, after the use of what ever 42 points to. diff -Nrc3pad gcc-3.2/gcc/doc/sourcebuild.texi gcc-3.2.1/gcc/doc/sourcebuild.texi *** gcc-3.2/gcc/doc/sourcebuild.texi Mon Apr 15 18:59:52 2002 --- gcc-3.2.1/gcc/doc/sourcebuild.texi Wed Nov 13 21:17:09 2002 *************** here; FIXME: document the others. *** 738,743 **** --- 738,744 ---- @menu * Test Idioms:: Idioms used in test suite code. * C Tests:: The C language test suites. + * libgcj Tests:: The Java library test suites. @end menu @node Test Idioms *************** shouldn't. *** 870,872 **** --- 871,893 ---- FIXME: merge in @file{testsuite/README.gcc} and discuss the format of test cases and magic comments more. + + @node libgcj Tests + @subsection The Java library test suites. + + Runtime tests are executed via @samp{make check} from the @samp{testsuite} + directory of the libjava hierarchy in the build tree. Additional runtime + tests can be checked into this testsuite. + + Regression testing of the core packages in libgcj is also covered by the + Mauve test suite. The @uref{http://sources.redhat.com/mauve/,,Mauve Project} + develops tests for the Java Class Libraries. These tests are run as part + of libgcj testing by specifying the location of the Mauve tree when invoking + @samp{make}, as in @samp{make MAUVEDIR=~/mauve check}. + + The @uref{http://oss.software.ibm.com/developerworks/opensource/jacks/,, + Jacks} project provides a test suite for Java compilers that can be used + to test changes that affect the GCJ front end. There is no automated + mechanism to run the Jacks suite as part of GCJ testing. + + We encourage developers to contribute test cases to Mauve and Jacks. diff -Nrc3pad gcc-3.2/gcc/doc/standards.texi gcc-3.2.1/gcc/doc/standards.texi *** gcc-3.2/gcc/doc/standards.texi Mon Apr 15 18:59:52 2002 --- gcc-3.2.1/gcc/doc/standards.texi Wed Sep 11 16:40:28 2002 *************** information concerning the history of C *** 168,178 **** There is no formal written standard for Objective-C@. The most authoritative manual is ``Object-Oriented Programming and the ! Objective-C Language'', available at a number of web sites; ! @uref{http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/} has a ! recent version, while @uref{http://www.toodarkpark.org/computers/objc/} ! is an older example. @uref{http://www.gnustep.org} includes useful ! information as well. @xref{Top, GNAT Reference Manual, About This Guide, gnat_rm, GNAT Reference Manual}, for information on standard --- 168,186 ---- There is no formal written standard for Objective-C@. The most authoritative manual is ``Object-Oriented Programming and the ! Objective-C Language'', available at a number of web sites ! ! @itemize ! @item ! @uref{http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/} ! is a recent version ! @item ! @uref{http://www.toodarkpark.org/computers/objc/} ! is an older example ! @item ! @uref{http://www.gnustep.org} ! has additional useful information ! @end itemize @xref{Top, GNAT Reference Manual, About This Guide, gnat_rm, GNAT Reference Manual}, for information on standard diff -Nrc3pad gcc-3.2/gcc/doc/tm.texi gcc-3.2.1/gcc/doc/tm.texi *** gcc-3.2/gcc/doc/tm.texi Wed Aug 7 18:10:57 2002 --- gcc-3.2.1/gcc/doc/tm.texi Sat Sep 14 00:26:38 2002 *************** such as one option that enables many opt *** 156,166 **** multilibs. Example nonsensical definition, where @code{-malt-abi}, @code{-EB}, and @code{-mspoo} cause different multilibs to be chosen: ! @example #define TARGET_OPTION_TRANSLATE_TABLE \ @{ "-fast", "-march=fast-foo -malt-abi -I/usr/fast-foo" @}, \ @{ "-compat", "-EB -malign=4 -mspoo" @} ! @end example @findex CPP_SPEC @item CPP_SPEC --- 156,166 ---- multilibs. Example nonsensical definition, where @code{-malt-abi}, @code{-EB}, and @code{-mspoo} cause different multilibs to be chosen: ! @smallexample #define TARGET_OPTION_TRANSLATE_TABLE \ @{ "-fast", "-march=fast-foo -malt-abi -I/usr/fast-foo" @}, \ @{ "-compat", "-EB -malign=4 -mspoo" @} ! @end smallexample @findex CPP_SPEC @item CPP_SPEC *************** argument @var{name} is the name of an as *** 7423,7428 **** --- 7423,7433 ---- @item DBX_OUTPUT_RBRAC (@var{stream}, @var{name}) Like @code{DBX_OUTPUT_LBRAC}, but for the end of a scope level. + @findex DBX_OUTPUT_NFUN + @item DBX_OUTPUT_NFUN (@var{stream}, @var{lscope_label}, @var{decl}) + Define this macro if the target machine requires special handling to + output an @code{N_FUN} entry for the function @var{decl}. + @findex DBX_OUTPUT_ENUM @item DBX_OUTPUT_ENUM (@var{stream}, @var{type}) Define this macro if the target machine requires special handling to diff -Nrc3pad gcc-3.2/gcc/doc/trouble.texi gcc-3.2.1/gcc/doc/trouble.texi *** gcc-3.2/gcc/doc/trouble.texi Thu Jan 17 22:45:21 2002 --- gcc-3.2.1/gcc/doc/trouble.texi Wed Sep 11 16:40:29 2002 *************** libraries and debuggers on certain syste *** 105,115 **** @itemize @bullet @item ! G++ does not do name mangling in the same way as other C++ ! compilers. This means that object files compiled with one compiler ! cannot be used with another. ! This effect is intentional, to protect you from more subtle problems. Compilers differ as to many internal details of C++ implementation, including: how class instances are laid out, how multiple inheritance is implemented, and how virtual function calls are handled. If the name --- 105,117 ---- @itemize @bullet @item ! On many platforms, GCC supports a different ABI for C++ than do other ! compilers, so the object files compiled by GCC cannot be used with object ! files generated by another C++ compiler. ! An area where the difference is most apparent is name mangling. The use ! of different name mangling is intentional, to protect you from more subtle ! problems. Compilers differ as to many internal details of C++ implementation, including: how class instances are laid out, how multiple inheritance is implemented, and how virtual function calls are handled. If the name diff -Nrc3pad gcc-3.2/gcc/doloop.c gcc-3.2.1/gcc/doloop.c *** gcc-3.2/gcc/doloop.c Fri Jan 4 02:00:26 2002 --- gcc-3.2.1/gcc/doloop.c Thu Sep 26 23:10:38 2002 *************** doloop_modify_runtime (loop, iterations_ *** 552,557 **** --- 552,558 ---- { const struct loop_info *loop_info = LOOP_INFO (loop); HOST_WIDE_INT abs_inc; + HOST_WIDE_INT abs_loop_inc; int neg_inc; rtx diff; rtx sequence; *************** doloop_modify_runtime (loop, iterations_ *** 591,603 **** n = abs (final - initial) / abs_inc; n += (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. If ! abs_inc is != 1, the full calculation is ! t1 = abs_inc * unroll_number; ! n = abs (final - initial) / t1; ! n += (abs (final - initial) % t1) > t1 - abs_inc; The division and modulo operations can be avoided by requiring that the increment is a power of 2 (precondition_loop_p enforces --- 592,613 ---- n = abs (final - initial) / abs_inc; n += (abs (final - initial) % abs_inc) != 0; ! But when abs_inc is a power of two, the summation won't overflow ! except in cases where the loop never terminates. So we don't ! need to use this more costly calculation. ! If the loop has been unrolled, the full calculation is ! ! t1 = abs_inc * unroll_number; increment per loop ! n = abs (final - initial) / t1; full loops ! n += (abs (final - initial) % t1) != 0; partial loop ! ! However, in certain cases the unrolled loop will be preconditioned ! by emitting copies of the loop body with conditional branches, ! so that the unrolled loop is always a full loop and thus needs ! no exit tests. In this case we don't want to add the partial ! loop count. As above, when t1 is a power of two we don't need to ! worry about overflow. 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_ *** 658,715 **** fprintf (loop_dump_stream, "Doloop: Basic induction var skips initial incr.\n"); ! diff = expand_simple_binop (mode, PLUS, diff, increment, diff, ! unsigned_p, OPTAB_LIB_WIDEN); } } ! if (abs_inc * loop_info->unroll_number != 1) { int shift_count; - rtx extra; - rtx label; - unsigned HOST_WIDE_INT limit; ! shift_count = exact_log2 (abs_inc * loop_info->unroll_number); if (shift_count < 0) abort (); ! /* abs (final - initial) / (abs_inc * unroll_number) */ ! iterations = expand_simple_binop (GET_MODE (diff), LSHIFTRT, ! diff, GEN_INT (shift_count), ! NULL_RTX, 1, ! OPTAB_LIB_WIDEN); ! ! if (abs_inc != 1) ! { ! /* abs (final - initial) % (abs_inc * unroll_number) */ ! rtx count = GEN_INT (abs_inc * loop_info->unroll_number - 1); ! extra = expand_simple_binop (GET_MODE (iterations), AND, ! diff, count, NULL_RTX, 1, ! OPTAB_LIB_WIDEN); ! ! /* If (abs (final - initial) % (abs_inc * unroll_number) ! <= abs_inc * (unroll - 1)), ! jump past following increment instruction. */ ! label = gen_label_rtx (); ! limit = abs_inc * (loop_info->unroll_number - 1); ! emit_cmp_and_jump_insns (extra, GEN_INT (limit), ! limit == 0 ? EQ : LEU, NULL_RTX, ! GET_MODE (extra), 0, label); ! JUMP_LABEL (get_last_insn ()) = label; ! LABEL_NUSES (label)++; ! ! /* Increment the iteration count by one. */ ! iterations = expand_simple_binop (GET_MODE (iterations), PLUS, ! iterations, GEN_INT (1), ! iterations, 1, ! OPTAB_LIB_WIDEN); ! emit_label (label); ! } } ! 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 --- 668,699 ---- fprintf (loop_dump_stream, "Doloop: Basic induction var skips initial incr.\n"); ! diff = expand_simple_binop (mode, PLUS, diff, GEN_INT (abs_inc), ! diff, unsigned_p, OPTAB_LIB_WIDEN); } } ! abs_loop_inc = abs_inc * loop_info->unroll_number; ! if (abs_loop_inc != 1) { int shift_count; ! shift_count = exact_log2 (abs_loop_inc); if (shift_count < 0) abort (); ! if (!loop_info->preconditioned) ! diff = expand_simple_binop (GET_MODE (diff), PLUS, ! diff, GEN_INT (abs_loop_inc - 1), ! diff, 1, OPTAB_LIB_WIDEN); ! /* (abs (final - initial) + abs_inc * unroll_number - 1) ! / (abs_inc * unroll_number) */ ! diff = expand_simple_binop (GET_MODE (diff), LSHIFTRT, ! diff, GEN_INT (shift_count), ! diff, 1, OPTAB_LIB_WIDEN); } ! 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_ *** 722,738 **** iteration count to one if necessary. */ if (! loop->vtop) { - rtx label; - if (loop_dump_stream) fprintf (loop_dump_stream, "Doloop: Do-while loop.\n"); ! /* A `do-while' loop must iterate at least once. If the ! iteration count is bogus, we set the iteration count to 1. Note that if the loop has been unrolled, then the loop body ! 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(); --- 706,725 ---- iteration count to one if necessary. */ if (! loop->vtop) { if (loop_dump_stream) fprintf (loop_dump_stream, "Doloop: Do-while loop.\n"); ! /* A `do-while' loop must iterate at least once. For code like ! i = initial; do { ... } while (++i < final); ! we will calculate a bogus iteration count if initial > final. ! So detect this and set the iteration count to 1. Note that if the loop has been unrolled, then the loop body ! is guaranteed to execute at least once. Also, when the ! comparison is NE, our calculated count will be OK. */ ! if (loop_info->unroll_number == 1 && comparison_code != NE) { + rtx label; + /* Emit insns to test if the loop will immediately terminate and to set the iteration count to 1 if true. */ label = gen_label_rtx(); diff -Nrc3pad gcc-3.2/gcc/emit-rtl.c gcc-3.2.1/gcc/emit-rtl.c *** gcc-3.2/gcc/emit-rtl.c Mon Jul 1 21:50:14 2002 --- gcc-3.2.1/gcc/emit-rtl.c Thu Sep 12 02:27:13 2002 *************** set_mem_offset (mem, offset) *** 1903,1908 **** --- 1903,1919 ---- offset, MEM_SIZE (mem), MEM_ALIGN (mem), GET_MODE (mem)); } + + /* Set the size of MEM to SIZE. */ + + void + set_mem_size (mem, size) + rtx mem, size; + { + MEM_ATTRS (mem) = get_mem_attrs (MEM_ALIAS_SET (mem), MEM_EXPR (mem), + MEM_OFFSET (mem), size, MEM_ALIGN (mem), + GET_MODE (mem)); + } /* Return a memory reference like MEMREF, but with its mode changed to MODE and its address changed to ADDR. (VOIDmode means don't change the mode. diff -Nrc3pad gcc-3.2/gcc/explow.c gcc-3.2.1/gcc/explow.c *** gcc-3.2/gcc/explow.c Thu Feb 21 23:06:14 2002 --- gcc-3.2.1/gcc/explow.c Fri Aug 23 12:00:35 2002 *************** Software Foundation, 59 Temple Place - S *** 34,39 **** --- 34,40 ---- #include "insn-config.h" #include "ggc.h" #include "recog.h" + #include "langhooks.h" static rtx break_out_memory_refs PARAMS ((rtx)); static void emit_stack_probe PARAMS ((rtx)); *************** rtx *** 285,304 **** expr_size (exp) tree exp; { ! tree size; ! ! if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'd' ! && DECL_SIZE_UNIT (exp) != 0) ! size = DECL_SIZE_UNIT (exp); ! else ! size = size_in_bytes (TREE_TYPE (exp)); if (TREE_CODE (size) != INTEGER_CST && contains_placeholder_p (size)) size = build (WITH_RECORD_EXPR, sizetype, size, exp); return expand_expr (size, NULL_RTX, TYPE_MODE (sizetype), 0); } /* Return a copy of X in which all memory references --- 286,318 ---- expr_size (exp) tree exp; { ! tree size = (*lang_hooks.expr_size) (exp); if (TREE_CODE (size) != INTEGER_CST && contains_placeholder_p (size)) size = build (WITH_RECORD_EXPR, sizetype, size, exp); return expand_expr (size, NULL_RTX, TYPE_MODE (sizetype), 0); + } + + /* Return a wide integer for the size in bytes of the value of EXP, or -1 + if the size can vary or is larger than an integer. */ + + HOST_WIDE_INT + int_expr_size (exp) + tree exp; + { + tree t = (*lang_hooks.expr_size) (exp); + + if (t == 0 + || TREE_CODE (t) != INTEGER_CST + || TREE_OVERFLOW (t) + || TREE_INT_CST_HIGH (t) != 0 + /* If the result would appear negative, it's too big to represent. */ + || (HOST_WIDE_INT) TREE_INT_CST_LOW (t) < 0) + return -1; + return TREE_INT_CST_LOW (t); } /* Return a copy of X in which all memory references diff -Nrc3pad gcc-3.2/gcc/expmed.c gcc-3.2.1/gcc/expmed.c *** gcc-3.2/gcc/expmed.c Mon Jun 24 16:50:42 2002 --- gcc-3.2.1/gcc/expmed.c Mon Nov 4 18:39:45 2002 *************** extract_bit_field (str_rtx, bitsize, bit *** 1144,1150 **** /* Else we've got some float mode source being extracted into a different float mode destination -- this combination of subregs results in Severe Tire Damage. */ ! abort (); } if (GET_CODE (op0) == REG) op0 = gen_rtx_SUBREG (mode1, op0, byte_offset); --- 1144,1150 ---- /* Else we've got some float mode source being extracted into a different float mode destination -- this combination of subregs results in Severe Tire Damage. */ ! goto no_subreg_mode_swap; } if (GET_CODE (op0) == REG) op0 = gen_rtx_SUBREG (mode1, op0, byte_offset); *************** extract_bit_field (str_rtx, bitsize, bit *** 1155,1160 **** --- 1155,1161 ---- return convert_to_mode (tmode, op0, unsignedp); return op0; } + no_subreg_mode_swap: /* Handle fields bigger than a word. */ diff -Nrc3pad gcc-3.2/gcc/expr.c gcc-3.2.1/gcc/expr.c *** gcc-3.2/gcc/expr.c Tue May 7 05:43:11 2002 --- gcc-3.2.1/gcc/expr.c Thu Nov 7 17:46:15 2002 *************** Software Foundation, 59 Temple Place - S *** 54,62 **** --- 54,64 ---- #ifdef PUSH_ROUNDING + #ifndef PUSH_ARGS_REVERSED #if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNWARD) #define PUSH_ARGS_REVERSED /* If it's last to first. */ #endif + #endif #endif *************** rtx *** 5434,5449 **** force_operand (value, target) rtx value, target; { ! optab binoptab = 0; ! /* Use a temporary to force order of execution of calls to ! `force_operand'. */ ! rtx tmp; ! rtx op2; /* Use subtarget as the target for operand 0 of a binary operation. */ rtx subtarget = get_subtarget (target); /* Check for a PIC address load. */ ! if ((GET_CODE (value) == PLUS || GET_CODE (value) == MINUS) && XEXP (value, 0) == pic_offset_table_rtx && (GET_CODE (XEXP (value, 1)) == SYMBOL_REF || GET_CODE (XEXP (value, 1)) == LABEL_REF --- 5436,5448 ---- force_operand (value, target) rtx value, target; { ! rtx op1, op2; /* Use subtarget as the target for operand 0 of a binary operation. */ rtx subtarget = get_subtarget (target); + enum rtx_code code = GET_CODE (value); /* Check for a PIC address load. */ ! if ((code == PLUS || code == MINUS) && XEXP (value, 0) == pic_offset_table_rtx && (GET_CODE (XEXP (value, 1)) == SYMBOL_REF || GET_CODE (XEXP (value, 1)) == LABEL_REF *************** force_operand (value, target) *** 5455,5514 **** return subtarget; } ! if (GET_CODE (value) == PLUS) ! binoptab = add_optab; ! else if (GET_CODE (value) == MINUS) ! binoptab = sub_optab; ! else if (GET_CODE (value) == MULT) { ! op2 = XEXP (value, 1); ! if (!CONSTANT_P (op2) ! && !(GET_CODE (op2) == REG && op2 != subtarget)) ! subtarget = 0; ! tmp = force_operand (XEXP (value, 0), subtarget); ! return expand_mult (GET_MODE (value), tmp, ! force_operand (op2, NULL_RTX), ! target, 1); } ! if (binoptab) { op2 = XEXP (value, 1); ! if (!CONSTANT_P (op2) ! && !(GET_CODE (op2) == REG && op2 != subtarget)) subtarget = 0; ! if (binoptab == sub_optab && GET_CODE (op2) == CONST_INT) { ! binoptab = add_optab; op2 = negate_rtx (GET_MODE (value), op2); } /* Check for an addition with OP2 a constant integer and our first ! operand a PLUS of a virtual register and something else. In that ! case, we want to emit the sum of the virtual register and the ! constant first and then add the other value. This allows virtual ! register instantiation to simply modify the constant rather than ! creating another one around this addition. */ ! if (binoptab == add_optab && GET_CODE (op2) == CONST_INT && GET_CODE (XEXP (value, 0)) == PLUS && GET_CODE (XEXP (XEXP (value, 0), 0)) == REG && REGNO (XEXP (XEXP (value, 0), 0)) >= FIRST_VIRTUAL_REGISTER && REGNO (XEXP (XEXP (value, 0), 0)) <= LAST_VIRTUAL_REGISTER) { ! rtx temp = expand_binop (GET_MODE (value), binoptab, ! XEXP (XEXP (value, 0), 0), op2, ! subtarget, 0, OPTAB_LIB_WIDEN); ! return expand_binop (GET_MODE (value), binoptab, temp, ! force_operand (XEXP (XEXP (value, 0), 1), 0), ! target, 0, OPTAB_LIB_WIDEN); } ! tmp = force_operand (XEXP (value, 0), subtarget); ! return expand_binop (GET_MODE (value), binoptab, tmp, ! force_operand (op2, NULL_RTX), ! target, 0, OPTAB_LIB_WIDEN); ! /* We give UNSIGNEDP = 0 to expand_binop ! because the only operations we are expanding here are signed ones. */ } #ifdef INSN_SCHEDULING --- 5454,5541 ---- return subtarget; } ! if (code == ZERO_EXTEND || code == SIGN_EXTEND) { ! if (!target) ! target = gen_reg_rtx (GET_MODE (value)); ! convert_move (target, force_operand (XEXP (value, 0), NULL), ! code == ZERO_EXTEND); ! return target; } ! if (GET_RTX_CLASS (code) == '2' || GET_RTX_CLASS (code) == 'c') { op2 = XEXP (value, 1); ! if (!CONSTANT_P (op2) && !(GET_CODE (op2) == REG && op2 != subtarget)) subtarget = 0; ! if (code == MINUS && GET_CODE (op2) == CONST_INT) { ! code = PLUS; op2 = negate_rtx (GET_MODE (value), op2); } /* Check for an addition with OP2 a constant integer and our first ! operand a PLUS of a virtual register and something else. In that ! case, we want to emit the sum of the virtual register and the ! constant first and then add the other value. This allows virtual ! register instantiation to simply modify the constant rather than ! creating another one around this addition. */ ! if (code == PLUS && GET_CODE (op2) == CONST_INT && GET_CODE (XEXP (value, 0)) == PLUS && GET_CODE (XEXP (XEXP (value, 0), 0)) == REG && REGNO (XEXP (XEXP (value, 0), 0)) >= FIRST_VIRTUAL_REGISTER && REGNO (XEXP (XEXP (value, 0), 0)) <= LAST_VIRTUAL_REGISTER) { ! rtx temp = expand_simple_binop (GET_MODE (value), code, ! XEXP (XEXP (value, 0), 0), op2, ! subtarget, 0, OPTAB_LIB_WIDEN); ! return expand_simple_binop (GET_MODE (value), code, temp, ! force_operand (XEXP (XEXP (value, ! 0), 1), 0), ! target, 0, OPTAB_LIB_WIDEN); } ! op1 = force_operand (XEXP (value, 0), subtarget); ! op2 = force_operand (op2, NULL_RTX); ! switch (code) ! { ! case MULT: ! return expand_mult (GET_MODE (value), op1, op2, target, 1); ! case DIV: ! if (!INTEGRAL_MODE_P (GET_MODE (value))) ! return expand_simple_binop (GET_MODE (value), code, op1, op2, ! target, 1, OPTAB_LIB_WIDEN); ! else ! return expand_divmod (0, ! FLOAT_MODE_P (GET_MODE (value)) ! ? RDIV_EXPR : TRUNC_DIV_EXPR, ! GET_MODE (value), op1, op2, target, 0); ! break; ! case MOD: ! return expand_divmod (1, TRUNC_MOD_EXPR, GET_MODE (value), op1, op2, ! target, 0); ! break; ! case UDIV: ! return expand_divmod (0, TRUNC_DIV_EXPR, GET_MODE (value), op1, op2, ! target, 1); ! break; ! case UMOD: ! return expand_divmod (1, TRUNC_MOD_EXPR, GET_MODE (value), op1, op2, ! target, 1); ! break; ! case ASHIFTRT: ! return expand_simple_binop (GET_MODE (value), code, op1, op2, ! target, 0, OPTAB_LIB_WIDEN); ! break; ! default: ! return expand_simple_binop (GET_MODE (value), code, op1, op2, ! target, 1, OPTAB_LIB_WIDEN); ! } ! } ! if (GET_RTX_CLASS (code) == '1') ! { ! op1 = force_operand (XEXP (value, 0), NULL_RTX); ! return expand_simple_unop (GET_MODE (value), code, op1, target, 0); } #ifdef INSN_SCHEDULING *************** expand_expr (exp, target, tmode, modifie *** 6202,6208 **** } case PARM_DECL: ! if (DECL_RTL (exp) == 0) { error_with_decl (exp, "prior parameter's size depends on `%s'"); return CONST0_RTX (mode); --- 6229,6235 ---- } case PARM_DECL: ! if (! DECL_RTL_SET_P (exp)) { error_with_decl (exp, "prior parameter's size depends on `%s'"); return CONST0_RTX (mode); *************** expand_expr (exp, target, tmode, modifie *** 6661,6668 **** * TYPE_QUAL_CONST))), 0, TREE_ADDRESSABLE (exp), 1); ! store_constructor (exp, target, 0, ! int_size_in_bytes (TREE_TYPE (exp))); return target; } --- 6688,6694 ---- * TYPE_QUAL_CONST))), 0, TREE_ADDRESSABLE (exp), 1); ! store_constructor (exp, target, 0, int_expr_size (exp)); return target; } *************** expand_expr (exp, target, tmode, modifie *** 7564,7579 **** } } /* No sense saving up arithmetic to be done if it's all in the wrong mode to form part of an address. And force_operand won't know whether to sign-extend or zero-extend. */ if ((modifier != EXPAND_SUM && modifier != EXPAND_INITIALIZER) || mode != ptr_mode) ! goto binop; ! ! if (! safe_from_p (subtarget, TREE_OPERAND (exp, 1), 1)) ! subtarget = 0; op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, modifier); op1 = expand_expr (TREE_OPERAND (exp, 1), NULL_RTX, VOIDmode, modifier); --- 7590,7613 ---- } } + if (! safe_from_p (subtarget, TREE_OPERAND (exp, 1), 1)) + subtarget = 0; + /* No sense saving up arithmetic to be done if it's all in the wrong mode to form part of an address. And force_operand won't know whether to sign-extend or zero-extend. */ if ((modifier != EXPAND_SUM && modifier != EXPAND_INITIALIZER) || mode != ptr_mode) ! { ! op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, 0); ! op1 = expand_expr (TREE_OPERAND (exp, 1), NULL_RTX, VOIDmode, 0); ! if (op0 == const0_rtx) ! return op1; ! if (op1 == const0_rtx) ! return op0; ! goto binop2; ! } op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, modifier); op1 = expand_expr (TREE_OPERAND (exp, 1), NULL_RTX, VOIDmode, modifier); diff -Nrc3pad gcc-3.2/gcc/expr.h gcc-3.2.1/gcc/expr.h *** gcc-3.2/gcc/expr.h Sun Mar 31 09:42:05 2002 --- gcc-3.2.1/gcc/expr.h Thu Sep 12 02:27:13 2002 *************** extern unsigned int case_values_threshol *** 548,553 **** --- 548,557 ---- /* Return an rtx for the size in bytes of the value of an expr. */ extern rtx expr_size PARAMS ((tree)); + /* Return a wide integer for the size in bytes of the value of EXP, or -1 + if the size can vary or is larger than an integer. */ + extern HOST_WIDE_INT int_expr_size PARAMS ((tree)); + extern rtx lookup_static_chain PARAMS ((tree)); /* Convert a stack slot address ADDR valid in function FNDECL *************** extern void set_mem_expr PARAMS ((rtx, t *** 608,613 **** --- 612,620 ---- /* Set the offset for MEM to OFFSET. */ extern void set_mem_offset PARAMS ((rtx, rtx)); + /* Set the size for MEM to SIZE. */ + extern void set_mem_size PARAMS ((rtx, rtx)); + /* Return a memory reference like MEMREF, but with its mode changed to MODE and its address changed to ADDR. (VOIDmode means don't change the mode. diff -Nrc3pad gcc-3.2/gcc/f/BUGS gcc-3.2.1/gcc/f/BUGS *** gcc-3.2/gcc/f/BUGS Wed Aug 14 10:35:00 2002 --- gcc-3.2.1/gcc/f/BUGS Tue Nov 19 19:17:27 2002 *************** with) `g77', so it isn't worth separatin *** 23,30 **** An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available ! via `http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html'. Follow ! the "Known Bugs" link. The following information was last updated on 2002-02-01: --- 23,30 ---- An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available ! via `http://www.gnu.org/software/gcc/onlinedocs/g77/Trouble.html'. ! Follow the "Known Bugs" link. The following information was last updated on 2002-02-01: diff -Nrc3pad gcc-3.2/gcc/f/ChangeLog gcc-3.2.1/gcc/f/ChangeLog *** gcc-3.2/gcc/f/ChangeLog Wed Aug 14 09:00:13 2002 --- gcc-3.2.1/gcc/f/ChangeLog Tue Nov 19 17:49:02 2002 *************** *** 1,3 **** --- 1,43 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-10-28 Andris Pavenis + Toon Moene + + PR fortran/8308 + * lang-specs.h: Correct ratfor specs. + * news.texi: Document this fix. + + 2002-09-14 Hans-Peter Nilsson + + * target.c (ffetarget_memcpy_): Don't test nonexistent + HOST_BYTES_BIG_ENDIAN, HOST_BITS_BIG_ENDIAN. Check + HOST_WORDS_BIG_ENDIAN against both WORDS_BIG_ENDIAN and + BYTES_BIG_ENDIAN. + + 2002-09-07 Jan Hubicka + + * com.c (ffe_type_for_mode): Handle long double. + + 2002-08-30 Alan Modra + + * target.h (FFETARGET_32bit_longs): Don't define for powerpc64 or + mmix. + + 2002-08-28 Joseph S. Myers + + * bugs.texi, news.texi: Update URLs for online news and bugs + lists. + 2002-08-14 Release Manager * GCC 3.2 Released. *************** Mon Apr 15 10:59:14 2002 Mark Mitchell *** 50,56 **** * Make-lang.in (f/target.o): Depend on diagnostic.h. * target.c: Include diagnostic.h. ! (ffetarget_memcpy_): Call sorry if host and target endians are not matching. 2002-04-13 Toon Moene --- 90,96 ---- * Make-lang.in (f/target.o): Depend on diagnostic.h. * target.c: Include diagnostic.h. ! (ffetarget_memcpy_): Call sorry if host and target endians are not matching. 2002-04-13 Toon Moene *************** Mon Mar 18 18:43:22 CET 2002 Jan Hubick *** 102,108 **** * intrin.def: Use 'N' constraints in table of intrinsics. * intdoc.c: Document this constraint. * intdoc.texi: Regenerated. ! 2002-02-04 Philipp Thomas * implic.c lex.c stb.c ste.c stu.c: Update copyright dates. --- 142,148 ---- * intrin.def: Use 'N' constraints in table of intrinsics. * intdoc.c: Document this constraint. * intdoc.texi: Regenerated. ! 2002-02-04 Philipp Thomas * implic.c lex.c stb.c ste.c stu.c: Update copyright dates. diff -Nrc3pad gcc-3.2/gcc/f/NEWS gcc-3.2.1/gcc/f/NEWS *** gcc-3.2/gcc/f/NEWS Wed Aug 14 10:35:00 2002 --- gcc-3.2.1/gcc/f/NEWS Tue Nov 19 19:17:27 2002 *************** somewhat more difficult. *** 47,60 **** An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available at ! `http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'. ! The following information was last updated on 2002-08-05: In `GCC' 3.2 versus `GCC' 3.1: ============================== ! * Nothing. In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= --- 47,63 ---- An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available at ! `http://www.gnu.org/software/gcc/onlinedocs/g77/News.html'. ! The following information was last updated on 2002-10-28: In `GCC' 3.2 versus `GCC' 3.1: ============================== ! * Problem Reports fixed (in chronological order of submission): ! `8308' ! gcc-3.x does not compile files with suffix .r (RATFOR) [Fixed ! in 3.2.1] In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= diff -Nrc3pad gcc-3.2/gcc/f/bugs.texi gcc-3.2.1/gcc/f/bugs.texi *** gcc-3.2/gcc/f/bugs.texi Sat Feb 2 11:42:19 2002 --- gcc-3.2.1/gcc/f/bugs.texi Wed Aug 28 15:41:10 2002 *************** An online, ``live'' version of this docu *** 79,85 **** (derived directly from the mainline, development version of @code{g77} within @code{gcc}) is available via ! @uref{http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html}. Follow the ``Known Bugs'' link. The following information was last updated on @value{last-update-bugs}: --- 79,85 ---- (derived directly from the mainline, development version of @code{g77} within @code{gcc}) is available via ! @uref{http://www.gnu.org/software/gcc/onlinedocs/g77/Trouble.html}. Follow the ``Known Bugs'' link. The following information was last updated on @value{last-update-bugs}: diff -Nrc3pad gcc-3.2/gcc/f/com.c gcc-3.2.1/gcc/f/com.c *** gcc-3.2/gcc/f/com.c Wed Apr 17 01:44:02 2002 --- gcc-3.2.1/gcc/f/com.c Sat Sep 7 19:18:46 2002 *************** type_for_mode (mode, unsignedp) *** 15014,15020 **** if (mode == TYPE_MODE (double_type_node)) return double_type_node; ! if (mode == TYPE_MODE (build_pointer_type (char_type_node))) return build_pointer_type (char_type_node); if (mode == TYPE_MODE (build_pointer_type (integer_type_node))) --- 15014,15023 ---- if (mode == TYPE_MODE (double_type_node)) return double_type_node; ! if (mode == TYPE_MODE (long_double_type_node)) ! return long_double_type_node; ! ! if (mode == TYPE_MODE (build_pointer_type (char_type_node))) return build_pointer_type (char_type_node); if (mode == TYPE_MODE (build_pointer_type (integer_type_node))) diff -Nrc3pad gcc-3.2/gcc/f/g77.1 gcc-3.2.1/gcc/f/g77.1 *** gcc-3.2/gcc/f/g77.1 Wed Aug 14 09:36:42 2002 --- gcc-3.2.1/gcc/f/g77.1 Tue Nov 19 18:17:20 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:41 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:20 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" g77 \- \s-1GNU\s0 project Fortran 77 compiler --- 138,144 ---- .\" ====================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" g77 \- \s-1GNU\s0 project Fortran 77 compiler diff -Nrc3pad gcc-3.2/gcc/f/g77.info gcc-3.2.1/gcc/f/g77.info *** gcc-3.2/gcc/f/g77.info Wed Aug 14 09:36:34 2002 --- gcc-3.2.1/gcc/f/g77.info Tue Nov 19 18:17:13 2002 *************** g77.info-1: 1458 *** 41,63 **** g77.info-2: 49505 g77.info-3: 98812 g77.info-4: 124628 ! g77.info-5: 176633 ! g77.info-6: 224966 ! g77.info-7: 269969 ! g77.info-8: 319373 ! g77.info-9: 368833 ! g77.info-10: 418400 ! g77.info-11: 462800 ! g77.info-12: 512348 ! g77.info-13: 562339 ! g77.info-14: 609363 ! g77.info-15: 653527 ! g77.info-16: 701208 ! g77.info-17: 750756 ! g77.info-18: 799120 ! g77.info-19: 841665 ! g77.info-20: 885418 ! g77.info-21: 904408  Tag Table: (Indirect) --- 41,63 ---- g77.info-2: 49505 g77.info-3: 98812 g77.info-4: 124628 ! g77.info-5: 176789 ! g77.info-6: 225278 ! g77.info-7: 270281 ! g77.info-8: 319685 ! g77.info-9: 369145 ! g77.info-10: 418712 ! g77.info-11: 463112 ! g77.info-12: 512660 ! g77.info-13: 562651 ! g77.info-14: 609675 ! g77.info-15: 653839 ! g77.info-16: 701520 ! g77.info-17: 751070 ! g77.info-18: 799434 ! g77.info-19: 841979 ! g77.info-20: 885732 ! g77.info-21: 904722  Tag Table: (Indirect) *************** Node: Directory Options107954 *** 84,765 **** Node: Code Gen Options109266 Node: Environment Variables124173 Node: News124628 ! Node: Changes176633 ! Node: Language202068 ! Node: Direction of Language Development204271 ! Node: Standard Support210510 ! Node: No Passing External Assumed-length211231 ! Node: No Passing Dummy Assumed-length211708 ! Node: No Pathological Implied-DO212223 ! Node: No Useless Implied-DO212910 ! Node: Conformance213641 ! Node: Notation Used215664 ! Node: Terms and Concepts219870 ! Node: Syntactic Items220382 ! Node: Statements Comments Lines221064 ! Node: Scope of Names and Labels222929 ! Node: Characters Lines Sequence223359 ! Node: Character Set223965 ! Node: Lines224966 ! Node: Continuation Line227442 ! Node: Statements228397 ! Node: Statement Labels229353 ! Node: Order230045 ! Node: INCLUDE230930 ! Node: Cpp-style directives233702 ! Node: Data Types and Constants234157 ! Node: Types237678 ! Node: Double Notation238767 ! Node: Star Notation239839 ! Node: Kind Notation242784 ! Node: Constants251204 ! Node: Integer Type252720 ! Node: Character Type253318 ! Node: Expressions254082 ! Node: %LOC()254498 ! Node: Specification Statements257228 ! Node: NAMELIST257685 ! Node: DOUBLE COMPLEX258436 ! Node: Control Statements258690 ! Node: DO WHILE259182 ! Node: END DO259487 ! Node: Construct Names260494 ! Node: CYCLE and EXIT261234 ! Node: Functions and Subroutines263998 ! Node: %VAL()264644 ! Node: %REF()266008 ! Node: %DESCR()267836 ! Node: Generics and Specifics269969 ! Node: REAL() and AIMAG() of Complex277171 ! Node: CMPLX() of DOUBLE PRECISION279004 ! Node: MIL-STD 1753280730 ! Node: f77/f2c Intrinsics281072 ! Node: Table of Intrinsic Functions281642 ! Node: Abort Intrinsic298354 ! Node: Abs Intrinsic298618 ! Node: Access Intrinsic299481 ! Node: AChar Intrinsic300317 ! Node: ACos Intrinsic300839 ! Node: AdjustL Intrinsic301300 ! Node: AdjustR Intrinsic301625 ! Node: AImag Intrinsic301951 ! Node: AInt Intrinsic302756 ! Node: Alarm Intrinsic303384 ! Node: All Intrinsic304216 ! Node: Allocated Intrinsic304528 ! Node: ALog Intrinsic304857 ! Node: ALog10 Intrinsic305247 ! Node: AMax0 Intrinsic305645 ! Node: AMax1 Intrinsic306130 ! Node: AMin0 Intrinsic306583 ! Node: AMin1 Intrinsic307067 ! Node: AMod Intrinsic307519 ! Node: And Intrinsic307945 ! Node: ANInt Intrinsic308451 ! Node: Any Intrinsic309215 ! Node: ASin Intrinsic309522 ! Node: Associated Intrinsic309980 ! Node: ATan Intrinsic310314 ! Node: ATan2 Intrinsic310780 ! Node: BesJ0 Intrinsic311331 ! Node: BesJ1 Intrinsic311792 ! Node: BesJN Intrinsic312253 ! Node: BesY0 Intrinsic312784 ! Node: BesY1 Intrinsic313246 ! Node: BesYN Intrinsic313708 ! Node: Bit_Size Intrinsic314243 ! Node: BTest Intrinsic314902 ! Node: CAbs Intrinsic315622 ! Node: CCos Intrinsic316009 ! Node: Ceiling Intrinsic316401 ! Node: CExp Intrinsic316723 ! Node: Char Intrinsic317115 ! Node: ChDir Intrinsic (subroutine)318369 ! Node: ChMod Intrinsic (subroutine)319373 ! Node: CLog Intrinsic320644 ! Node: Cmplx Intrinsic321048 ! Node: Complex Intrinsic321849 ! Node: Conjg Intrinsic323295 ! Node: Cos Intrinsic323719 ! Node: CosH Intrinsic324182 ! Node: Count Intrinsic324557 ! Node: CPU_Time Intrinsic324875 ! Node: CShift Intrinsic325666 ! Node: CSin Intrinsic325988 ! Node: CSqRt Intrinsic326380 ! Node: CTime Intrinsic (subroutine)326790 ! Node: CTime Intrinsic (function)327545 ! Node: DAbs Intrinsic328179 ! Node: DACos Intrinsic328575 ! Node: DASin Intrinsic328966 ! Node: DATan Intrinsic329358 ! Node: DATan2 Intrinsic329751 ! Node: Date_and_Time Intrinsic330206 ! Node: DbesJ0 Intrinsic331570 ! Node: DbesJ1 Intrinsic331963 ! Node: DbesJN Intrinsic332349 ! Node: DbesY0 Intrinsic332805 ! Node: DbesY1 Intrinsic333191 ! Node: DbesYN Intrinsic333577 ! Node: Dble Intrinsic334031 ! Node: DCos Intrinsic334737 ! Node: DCosH Intrinsic335121 ! Node: DDiM Intrinsic335511 ! Node: DErF Intrinsic335943 ! Node: DErFC Intrinsic336312 ! Node: DExp Intrinsic336687 ! Node: Digits Intrinsic337073 ! Node: DiM Intrinsic337390 ! Node: DInt Intrinsic337889 ! Node: DLog Intrinsic338273 ! Node: DLog10 Intrinsic338658 ! Node: DMax1 Intrinsic339056 ! Node: DMin1 Intrinsic339510 ! Node: DMod Intrinsic339962 ! Node: DNInt Intrinsic340390 ! Node: Dot_Product Intrinsic340789 ! Node: DProd Intrinsic341129 ! Node: DSign Intrinsic341511 ! Node: DSin Intrinsic341950 ! Node: DSinH Intrinsic342335 ! Node: DSqRt Intrinsic342726 ! Node: DTan Intrinsic343117 ! Node: DTanH Intrinsic343502 ! Node: DTime Intrinsic (subroutine)343906 ! Node: EOShift Intrinsic345177 ! Node: Epsilon Intrinsic345516 ! Node: ErF Intrinsic345840 ! Node: ErFC Intrinsic346246 ! Node: ETime Intrinsic (subroutine)346806 ! Node: ETime Intrinsic (function)347969 ! Node: Exit Intrinsic349009 ! Node: Exp Intrinsic349518 ! Node: Exponent Intrinsic349980 ! Node: FDate Intrinsic (subroutine)350319 ! Node: FDate Intrinsic (function)351229 ! Node: FGet Intrinsic (subroutine)352001 ! Node: FGetC Intrinsic (subroutine)352838 ! Node: Float Intrinsic353715 ! Node: Floor Intrinsic354115 ! Node: Flush Intrinsic354431 ! Node: FNum Intrinsic355010 ! Node: FPut Intrinsic (subroutine)355458 ! Node: FPutC Intrinsic (subroutine)356255 ! Node: Fraction Intrinsic357102 ! Node: FSeek Intrinsic357443 ! Node: FStat Intrinsic (subroutine)358168 ! Node: FStat Intrinsic (function)359693 ! Node: FTell Intrinsic (subroutine)360983 ! Node: FTell Intrinsic (function)361656 ! Node: GError Intrinsic362173 ! Node: GetArg Intrinsic362547 ! Node: GetCWD Intrinsic (subroutine)363215 ! Node: GetCWD Intrinsic (function)364071 ! Node: GetEnv Intrinsic364691 ! Node: GetGId Intrinsic365278 ! Node: GetLog Intrinsic365584 ! Node: GetPId Intrinsic366122 ! Node: GetUId Intrinsic366430 ! Node: GMTime Intrinsic366735 ! Node: HostNm Intrinsic (subroutine)367743 ! Node: HostNm Intrinsic (function)368833 ! Node: Huge Intrinsic369676 ! Node: IAbs Intrinsic369999 ! Node: IAChar Intrinsic370390 ! Node: IAnd Intrinsic370930 ! Node: IArgC Intrinsic371418 ! Node: IBClr Intrinsic371794 ! Node: IBits Intrinsic372305 ! Node: IBSet Intrinsic373019 ! Node: IChar Intrinsic373521 ! Node: IDate Intrinsic (UNIX)374740 ! Node: IDiM Intrinsic375543 ! Node: IDInt Intrinsic375992 ! Node: IDNInt Intrinsic376385 ! Node: IEOr Intrinsic376784 ! Node: IErrNo Intrinsic377282 ! Node: IFix Intrinsic377609 ! Node: Imag Intrinsic377997 ! Node: ImagPart Intrinsic379002 ! Node: Index Intrinsic380028 ! Node: Int Intrinsic380581 ! Node: Int2 Intrinsic381296 ! Node: Int8 Intrinsic382006 ! Node: IOr Intrinsic382716 ! Node: IRand Intrinsic383196 ! Node: IsaTty Intrinsic384116 ! Node: IShft Intrinsic384540 ! Node: IShftC Intrinsic385370 ! Node: ISign Intrinsic386299 ! Node: ITime Intrinsic386749 ! Node: Kill Intrinsic (subroutine)387151 ! Node: Kind Intrinsic387988 ! Node: LBound Intrinsic388313 ! Node: Len Intrinsic388630 ! Node: Len_Trim Intrinsic389266 ! Node: LGe Intrinsic389678 ! Node: LGt Intrinsic391091 ! Node: Link Intrinsic (subroutine)391996 ! Node: LLe Intrinsic392961 ! Node: LLt Intrinsic393866 ! Node: LnBlnk Intrinsic394760 ! Node: Loc Intrinsic395163 ! Node: Log Intrinsic395594 ! Node: Log10 Intrinsic396185 ! Node: Logical Intrinsic396727 ! Node: Long Intrinsic397050 ! Node: LShift Intrinsic397574 ! Node: LStat Intrinsic (subroutine)398610 ! Node: LStat Intrinsic (function)400422 ! Node: LTime Intrinsic401985 ! Node: MatMul Intrinsic402989 ! Node: Max Intrinsic403307 ! Node: Max0 Intrinsic403858 ! Node: Max1 Intrinsic404309 ! Node: MaxExponent Intrinsic404793 ! Node: MaxLoc Intrinsic405133 ! Node: MaxVal Intrinsic405460 ! Node: MClock Intrinsic405782 ! Node: MClock8 Intrinsic406680 ! Node: Merge Intrinsic407868 ! Node: Min Intrinsic408184 ! Node: Min0 Intrinsic408735 ! Node: Min1 Intrinsic409186 ! Node: MinExponent Intrinsic409670 ! Node: MinLoc Intrinsic410010 ! Node: MinVal Intrinsic410337 ! Node: Mod Intrinsic410656 ! Node: Modulo Intrinsic411179 ! Node: MvBits Intrinsic411498 ! Node: Nearest Intrinsic412364 ! Node: NInt Intrinsic412688 ! Node: Not Intrinsic413526 ! Node: Or Intrinsic413921 ! Node: Pack Intrinsic414419 ! Node: PError Intrinsic414729 ! Node: Precision Intrinsic415183 ! Node: Present Intrinsic415518 ! Node: Product Intrinsic415848 ! Node: Radix Intrinsic416174 ! Node: Rand Intrinsic416491 ! Node: Random_Number Intrinsic417378 ! Node: Random_Seed Intrinsic417731 ! Node: Range Intrinsic418079 ! Node: Real Intrinsic418400 ! Node: RealPart Intrinsic419406 ! Node: Rename Intrinsic (subroutine)420439 ! Node: Repeat Intrinsic421411 ! Node: Reshape Intrinsic421747 ! Node: RRSpacing Intrinsic422076 ! Node: RShift Intrinsic422411 ! Node: Scale Intrinsic423409 ! Node: Scan Intrinsic423725 ! Node: Second Intrinsic (function)424049 ! Node: Second Intrinsic (subroutine)424880 ! Node: Selected_Int_Kind Intrinsic425855 ! Node: Selected_Real_Kind Intrinsic426246 ! Node: Set_Exponent Intrinsic426633 ! Node: Shape Intrinsic426990 ! Node: Short Intrinsic427313 ! Node: Sign Intrinsic428009 ! Node: Signal Intrinsic (subroutine)428609 ! Node: Sin Intrinsic430823 ! Node: SinH Intrinsic431298 ! Node: Sleep Intrinsic431671 ! Node: Sngl Intrinsic432013 ! Node: Spacing Intrinsic432402 ! Node: Spread Intrinsic432726 ! Node: SqRt Intrinsic433047 ! Node: SRand Intrinsic433651 ! Node: Stat Intrinsic (subroutine)434028 ! Node: Stat Intrinsic (function)435643 ! Node: Sum Intrinsic437007 ! Node: SymLnk Intrinsic (subroutine)437339 ! Node: System Intrinsic (subroutine)438371 ! Node: System_Clock Intrinsic439310 ! Node: Tan Intrinsic440434 ! Node: TanH Intrinsic440894 ! Node: Time Intrinsic (UNIX)441276 ! Node: Time8 Intrinsic442261 ! Node: Tiny Intrinsic443440 ! Node: Transfer Intrinsic443755 ! Node: Transpose Intrinsic444086 ! Node: Trim Intrinsic444420 ! Node: TtyNam Intrinsic (subroutine)444750 ! Node: TtyNam Intrinsic (function)445452 ! Node: UBound Intrinsic446021 ! Node: UMask Intrinsic (subroutine)446366 ! Node: Unlink Intrinsic (subroutine)447063 ! Node: Unpack Intrinsic447961 ! Node: Verify Intrinsic448296 ! Node: XOr Intrinsic448615 ! Node: ZAbs Intrinsic449131 ! Node: ZCos Intrinsic449500 ! Node: ZExp Intrinsic449873 ! Node: ZLog Intrinsic450246 ! Node: ZSin Intrinsic450619 ! Node: ZSqRt Intrinsic450993 ! Node: Scope and Classes of Names451350 ! Node: Underscores in Symbol Names451832 ! Node: I/O452079 ! Node: Fortran 90 Features452852 ! Node: Other Dialects455654 ! Node: Source Form456813 ! Node: Carriage Returns458028 ! Node: Tabs458357 ! Node: Short Lines459230 ! Node: Long Lines460204 ! Node: Ampersands460815 ! Node: Trailing Comment461069 ! Node: Debug Line461845 ! Node: Dollar Signs462514 ! Node: Case Sensitivity462800 ! Node: VXT Fortran471416 ! Node: Double Quote Meaning472599 ! Node: Exclamation Point473527 ! Node: Fortran 90474570 ! Node: Pedantic Compilation475622 ! Node: Distensions479586 ! Node: Ugly Implicit Argument Conversion480550 ! Node: Ugly Assumed-Size Arrays481164 ! Node: Ugly Complex Part Extraction482885 ! Node: Ugly Null Arguments484507 ! Node: Ugly Conversion of Initializers486110 ! Node: Ugly Integer Conversions487875 ! Node: Ugly Assigned Labels488983 ! Node: Compiler490914 ! Node: Compiler Limits491552 ! Node: Run-time Environment Limits492443 ! Node: Timer Wraparounds494385 ! Node: Year 2000 (Y2K) Problems495664 ! Node: Array Size500170 ! Node: Character-variable Length501355 ! Node: Year 10000 (Y10K) Problems501864 ! Node: Compiler Types502410 ! Node: Compiler Constants507121 ! Node: Compiler Intrinsics507980 ! Node: Intrinsic Groups508907 ! Node: Other Intrinsics512348 ! Node: ACosD Intrinsic519946 ! Node: AIMax0 Intrinsic520227 ! Node: AIMin0 Intrinsic520536 ! Node: AJMax0 Intrinsic520846 ! Node: AJMin0 Intrinsic521156 ! Node: ASinD Intrinsic521465 ! Node: ATan2D Intrinsic521771 ! Node: ATanD Intrinsic522079 ! Node: BITest Intrinsic522385 ! Node: BJTest Intrinsic522694 ! Node: CDAbs Intrinsic523003 ! Node: CDCos Intrinsic523376 ! Node: CDExp Intrinsic523751 ! Node: CDLog Intrinsic524126 ! Node: CDSin Intrinsic524501 ! Node: CDSqRt Intrinsic524877 ! Node: ChDir Intrinsic (function)525270 ! Node: ChMod Intrinsic (function)526099 ! Node: CosD Intrinsic527213 ! Node: DACosD Intrinsic527525 ! Node: DASinD Intrinsic527833 ! Node: DATan2D Intrinsic528144 ! Node: DATanD Intrinsic528458 ! Node: Date Intrinsic528767 ! Node: DbleQ Intrinsic529486 ! Node: DCmplx Intrinsic529790 ! Node: DConjg Intrinsic531421 ! Node: DCosD Intrinsic531806 ! Node: DFloat Intrinsic532112 ! Node: DFlotI Intrinsic532484 ! Node: DFlotJ Intrinsic532794 ! Node: DImag Intrinsic533103 ! Node: DReal Intrinsic533480 ! Node: DSinD Intrinsic534627 ! Node: DTanD Intrinsic534931 ! Node: DTime Intrinsic (function)535246 ! Node: FGet Intrinsic (function)536476 ! Node: FGetC Intrinsic (function)537249 ! Node: FloatI Intrinsic538065 ! Node: FloatJ Intrinsic538385 ! Node: FPut Intrinsic (function)538704 ! Node: FPutC Intrinsic (function)539440 ! Node: IDate Intrinsic (VXT)540233 ! Node: IIAbs Intrinsic541277 ! Node: IIAnd Intrinsic541587 ! Node: IIBClr Intrinsic541892 ! Node: IIBits Intrinsic542201 ! Node: IIBSet Intrinsic542511 ! Node: IIDiM Intrinsic542820 ! Node: IIDInt Intrinsic543126 ! Node: IIDNnt Intrinsic543435 ! Node: IIEOr Intrinsic543744 ! Node: IIFix Intrinsic544049 ! Node: IInt Intrinsic544352 ! Node: IIOr Intrinsic544651 ! Node: IIQint Intrinsic544951 ! Node: IIQNnt Intrinsic545259 ! Node: IIShftC Intrinsic545570 ! Node: IISign Intrinsic545884 ! Node: IMax0 Intrinsic546194 ! Node: IMax1 Intrinsic546499 ! Node: IMin0 Intrinsic546803 ! Node: IMin1 Intrinsic547107 ! Node: IMod Intrinsic547410 ! Node: INInt Intrinsic547710 ! Node: INot Intrinsic548012 ! Node: IZExt Intrinsic548312 ! Node: JIAbs Intrinsic548615 ! Node: JIAnd Intrinsic548919 ! Node: JIBClr Intrinsic549224 ! Node: JIBits Intrinsic549533 ! Node: JIBSet Intrinsic549843 ! Node: JIDiM Intrinsic550152 ! Node: JIDInt Intrinsic550458 ! Node: JIDNnt Intrinsic550767 ! Node: JIEOr Intrinsic551076 ! Node: JIFix Intrinsic551381 ! Node: JInt Intrinsic551684 ! Node: JIOr Intrinsic551983 ! Node: JIQint Intrinsic552283 ! Node: JIQNnt Intrinsic552591 ! Node: JIShft Intrinsic552901 ! Node: JIShftC Intrinsic553212 ! Node: JISign Intrinsic553526 ! Node: JMax0 Intrinsic553836 ! Node: JMax1 Intrinsic554141 ! Node: JMin0 Intrinsic554445 ! Node: JMin1 Intrinsic554749 ! Node: JMod Intrinsic555052 ! Node: JNInt Intrinsic555352 ! Node: JNot Intrinsic555654 ! Node: JZExt Intrinsic555954 ! Node: Kill Intrinsic (function)556267 ! Node: Link Intrinsic (function)556949 ! Node: QAbs Intrinsic557761 ! Node: QACos Intrinsic558071 ! Node: QACosD Intrinsic558375 ! Node: QASin Intrinsic558683 ! Node: QASinD Intrinsic558989 ! Node: QATan Intrinsic559297 ! Node: QATan2 Intrinsic559603 ! Node: QATan2D Intrinsic559913 ! Node: QATanD Intrinsic560227 ! Node: QCos Intrinsic560536 ! Node: QCosD Intrinsic560837 ! Node: QCosH Intrinsic561140 ! Node: QDiM Intrinsic561443 ! Node: QExp Intrinsic561742 ! Node: QExt Intrinsic562040 ! Node: QExtD Intrinsic562339 ! Node: QFloat Intrinsic562643 ! Node: QInt Intrinsic562950 ! Node: QLog Intrinsic563250 ! Node: QLog10 Intrinsic563550 ! Node: QMax1 Intrinsic563857 ! Node: QMin1 Intrinsic564162 ! Node: QMod Intrinsic564465 ! Node: QNInt Intrinsic564765 ! Node: QSin Intrinsic565067 ! Node: QSinD Intrinsic565367 ! Node: QSinH Intrinsic565670 ! Node: QSqRt Intrinsic565974 ! Node: QTan Intrinsic566277 ! Node: QTanD Intrinsic566577 ! Node: QTanH Intrinsic566880 ! Node: Rename Intrinsic (function)567196 ! Node: Secnds Intrinsic568001 ! Node: Signal Intrinsic (function)568600 ! Node: SinD Intrinsic571429 ! Node: SnglQ Intrinsic571741 ! Node: SymLnk Intrinsic (function)572056 ! Node: System Intrinsic (function)572924 ! Node: TanD Intrinsic574251 ! Node: Time Intrinsic (VXT)574568 ! Node: UMask Intrinsic (function)575322 ! Node: Unlink Intrinsic (function)575930 ! Node: ZExt Intrinsic576659 ! Node: Other Compilers576947 ! Node: Dropping f2c Compatibility579467 ! Node: Compilers Other Than f2c582539 ! Node: Other Languages584337 ! Node: Interoperating with C and C++584602 ! Node: C Interfacing Tools585635 ! Node: C Access to Type Information586563 ! Node: f2c Skeletons and Prototypes587250 ! Ref: f2c Skeletons and Prototypes-Footnote-1588697 ! Node: C++ Considerations588951 ! Node: Startup Code589606 ! Node: Debugging and Interfacing594395 ! Node: Main Program Unit597082 ! Node: Procedures599576 ! Node: Functions602234 ! Node: Names603852 ! Node: Common Blocks606995 ! Node: Local Equivalence Areas607259 ! Node: Complex Variables608243 ! Node: Arrays609363 ! Node: Adjustable Arrays612697 ! Node: Alternate Entry Points615556 ! Node: Alternate Returns622258 ! Node: Assigned Statement Labels623159 ! Node: Run-time Library Errors625004 ! Node: Collected Fortran Wisdom626956 ! Node: Advantages Over f2c628392 ! Node: Language Extensions629373 ! Node: Diagnostic Abilities630547 ! Node: Compiler Options630938 ! Node: Compiler Speed631986 ! Node: Program Speed632696 ! Node: Ease of Debugging634281 ! Node: Character and Hollerith Constants636711 ! Node: Block Data and Libraries637683 ! Node: Loops641012 ! Node: Working Programs646238 ! Node: Not My Type646982 ! Node: Variables Assumed To Be Zero648913 ! Node: Variables Assumed To Be Saved649967 ! Node: Unwanted Variables651337 ! Node: Unused Arguments652217 ! Node: Surprising Interpretations of Code652680 ! Node: Aliasing Assumed To Work653527 ! Node: Output Assumed To Flush659724 ! Node: Large File Unit Numbers662497 ! Node: Floating-point precision664649 ! Node: Inconsistent Calling Sequences665910 ! Node: Overly Convenient Options666890 ! Node: Faster Programs670196 ! Node: Aligned Data670642 ! Node: Prefer Automatic Uninitialized Variables675519 ! Node: Avoid f2c Compatibility676885 ! Node: Use Submodel Options677353 ! Node: Trouble678357 ! Node: But-bugs679819 ! Node: Signal 11 and Friends681592 ! Node: Cannot Link Fortran Programs683672 ! Node: Large Common Blocks684955 ! Node: Debugger Problems685381 ! Node: NeXTStep Problems686096 ! Node: Stack Overflow687922 ! Node: Nothing Happens690811 ! Node: Strange Behavior at Run Time692425 ! Node: Floating-point Errors694914 ! Node: Known Bugs701208 ! Node: Missing Features708507 ! Node: Better Source Model710434 ! Node: Fortran 90 Support712203 ! Node: Intrinsics in PARAMETER Statements713304 ! Node: Arbitrary Concatenation714055 ! Node: SELECT CASE on CHARACTER Type714458 ! Node: RECURSIVE Keyword714745 ! Node: Increasing Precision/Range715172 ! Node: Popular Non-standard Types716710 ! Node: Full Support for Compiler Types717049 ! Node: Array Bounds Expressions717685 ! Node: POINTER Statements718132 ! Node: Sensible Non-standard Constructs719015 ! Node: READONLY Keyword721341 ! Node: FLUSH Statement722251 ! Node: Expressions in FORMAT Statements722621 ! Node: Explicit Assembler Code723796 ! Node: Q Edit Descriptor724085 ! Node: Old-style PARAMETER Statements724589 ! Node: TYPE and ACCEPT I/O Statements725323 ! Node: STRUCTURE UNION RECORD MAP725889 ! Node: OPEN CLOSE and INQUIRE Keywords726375 ! Node: ENCODE and DECODE727355 ! Node: AUTOMATIC Statement728450 ! Node: Suppressing Space Padding729697 ! Node: Fortran Preprocessor730924 ! Node: Bit Operations on Floating-point Data731497 ! Node: Really Ugly Character Assignments732030 ! Node: POSIX Standard732405 ! Node: Floating-point Exception Handling732645 ! Node: Nonportable Conversions734049 ! Node: Large Automatic Arrays734592 ! Node: Support for Threads734999 ! Node: Enabling Debug Lines735424 ! Node: Better Warnings735801 ! Node: Gracefully Handle Sensible Bad Code737437 ! Node: Non-standard Conversions738181 ! Node: Non-standard Intrinsics738524 ! Node: Modifying DO Variable738940 ! Node: Better Pedantic Compilation739616 ! Node: Warn About Implicit Conversions740244 ! Node: Invalid Use of Hollerith Constant740831 ! Node: Dummy Array Without Dimensioning Dummy741374 ! Node: Invalid FORMAT Specifiers742287 ! Node: Ambiguous Dialects742688 ! Node: Unused Labels743099 ! Node: Informational Messages743321 ! Node: Uninitialized Variables at Run Time743724 ! Node: Portable Unformatted Files744330 ! Ref: Portable Unformatted Files-Footnote-1747286 ! Node: Better List-directed I/O747314 ! Node: Default to Console I/O748219 ! Node: Labels Visible to Debugger748867 ! Node: Disappointments749268 ! Node: Mangling of Names749906 ! Node: Multiple Definitions of External Names750756 ! Node: Limitation on Implicit Declarations752119 ! Node: Non-bugs752403 ! Node: Backslash in Constants753528 ! Node: Initializing Before Specifying758417 ! Node: Context-Sensitive Intrinsicness759559 ! Node: Context-Sensitive Constants761455 ! Node: Equivalence Versus Equality764411 ! Node: Order of Side Effects767454 ! Node: Warnings and Errors769182 ! Node: Open Questions770580 ! Node: Bugs771049 ! Node: Bug Criteria772488 ! Node: Bug Lists778721 ! Node: Bug Reporting779510 ! Node: Service793126 ! Node: Adding Options793592 ! Node: Projects798185 ! Node: Efficiency799120 ! Node: Better Optimization802017 ! Node: Simplify Porting805387 ! Node: More Extensions807142 ! Node: Machine Model810230 ! Node: Internals Documentation811516 ! Node: Internals Improvements811823 ! Node: Better Diagnostics815367 ! Node: Front End816284 ! Node: Overview of Sources817071 ! Node: Overview of Translation Process824460 ! Node: g77stripcard828738 ! Node: lex.c831215 ! Node: sta.c840755 ! Node: sti.c840866 ! Node: stq.c840977 ! Node: stb.c841088 ! Node: expr.c841200 ! Node: stc.c841314 ! Node: std.c841426 ! Node: ste.c841537 ! Node: Gotchas (Transforming)841665 ! Node: TBD (Transforming)849784 ! Node: Philosophy of Code Generation852480 ! Node: Two-pass Design858384 ! Node: Two-pass Code859541 ! Node: Why Two Passes860274 ! Node: Challenges Posed866342 ! Node: Transforming Statements868826 ! Node: Statements Needing Temporaries869676 ! Node: Transforming DO WHILE872440 ! Node: Transforming Iterative DO873623 ! Node: Transforming Block IF874452 ! Node: Transforming SELECT CASE875817 ! Node: Transforming Expressions879039 ! Node: Internal Naming Conventions881028 ! Node: Diagnostics884028 ! Node: CMPAMBIG885418 ! Node: EXPIMP891835 ! Node: INTGLOB893071 ! Node: LEX895315 ! Node: GLOBALS900770 ! Node: LINKFAIL903434 ! Node: Y2KBAD904058 ! Node: Index904408  End Tag Table --- 84,765 ---- Node: Code Gen Options109266 Node: Environment Variables124173 Node: News124628 ! Node: Changes176789 ! Node: Language202380 ! Node: Direction of Language Development204583 ! Node: Standard Support210822 ! Node: No Passing External Assumed-length211543 ! Node: No Passing Dummy Assumed-length212020 ! Node: No Pathological Implied-DO212535 ! Node: No Useless Implied-DO213222 ! Node: Conformance213953 ! Node: Notation Used215976 ! Node: Terms and Concepts220182 ! Node: Syntactic Items220694 ! Node: Statements Comments Lines221376 ! Node: Scope of Names and Labels223241 ! Node: Characters Lines Sequence223671 ! Node: Character Set224277 ! Node: Lines225278 ! Node: Continuation Line227754 ! Node: Statements228709 ! Node: Statement Labels229665 ! Node: Order230357 ! Node: INCLUDE231242 ! Node: Cpp-style directives234014 ! Node: Data Types and Constants234469 ! Node: Types237990 ! Node: Double Notation239079 ! Node: Star Notation240151 ! Node: Kind Notation243096 ! Node: Constants251516 ! Node: Integer Type253032 ! Node: Character Type253630 ! Node: Expressions254394 ! Node: %LOC()254810 ! Node: Specification Statements257540 ! Node: NAMELIST257997 ! Node: DOUBLE COMPLEX258748 ! Node: Control Statements259002 ! Node: DO WHILE259494 ! Node: END DO259799 ! Node: Construct Names260806 ! Node: CYCLE and EXIT261546 ! Node: Functions and Subroutines264310 ! Node: %VAL()264956 ! Node: %REF()266320 ! Node: %DESCR()268148 ! Node: Generics and Specifics270281 ! Node: REAL() and AIMAG() of Complex277483 ! Node: CMPLX() of DOUBLE PRECISION279316 ! Node: MIL-STD 1753281042 ! Node: f77/f2c Intrinsics281384 ! Node: Table of Intrinsic Functions281954 ! Node: Abort Intrinsic298666 ! Node: Abs Intrinsic298930 ! Node: Access Intrinsic299793 ! Node: AChar Intrinsic300629 ! Node: ACos Intrinsic301151 ! Node: AdjustL Intrinsic301612 ! Node: AdjustR Intrinsic301937 ! Node: AImag Intrinsic302263 ! Node: AInt Intrinsic303068 ! Node: Alarm Intrinsic303696 ! Node: All Intrinsic304528 ! Node: Allocated Intrinsic304840 ! Node: ALog Intrinsic305169 ! Node: ALog10 Intrinsic305559 ! Node: AMax0 Intrinsic305957 ! Node: AMax1 Intrinsic306442 ! Node: AMin0 Intrinsic306895 ! Node: AMin1 Intrinsic307379 ! Node: AMod Intrinsic307831 ! Node: And Intrinsic308257 ! Node: ANInt Intrinsic308763 ! Node: Any Intrinsic309527 ! Node: ASin Intrinsic309834 ! Node: Associated Intrinsic310292 ! Node: ATan Intrinsic310626 ! Node: ATan2 Intrinsic311092 ! Node: BesJ0 Intrinsic311643 ! Node: BesJ1 Intrinsic312104 ! Node: BesJN Intrinsic312565 ! Node: BesY0 Intrinsic313096 ! Node: BesY1 Intrinsic313558 ! Node: BesYN Intrinsic314020 ! Node: Bit_Size Intrinsic314555 ! Node: BTest Intrinsic315214 ! Node: CAbs Intrinsic315934 ! Node: CCos Intrinsic316321 ! Node: Ceiling Intrinsic316713 ! Node: CExp Intrinsic317035 ! Node: Char Intrinsic317427 ! Node: ChDir Intrinsic (subroutine)318681 ! Node: ChMod Intrinsic (subroutine)319685 ! Node: CLog Intrinsic320956 ! Node: Cmplx Intrinsic321360 ! Node: Complex Intrinsic322161 ! Node: Conjg Intrinsic323607 ! Node: Cos Intrinsic324031 ! Node: CosH Intrinsic324494 ! Node: Count Intrinsic324869 ! Node: CPU_Time Intrinsic325187 ! Node: CShift Intrinsic325978 ! Node: CSin Intrinsic326300 ! Node: CSqRt Intrinsic326692 ! Node: CTime Intrinsic (subroutine)327102 ! Node: CTime Intrinsic (function)327857 ! Node: DAbs Intrinsic328491 ! Node: DACos Intrinsic328887 ! Node: DASin Intrinsic329278 ! Node: DATan Intrinsic329670 ! Node: DATan2 Intrinsic330063 ! Node: Date_and_Time Intrinsic330518 ! Node: DbesJ0 Intrinsic331882 ! Node: DbesJ1 Intrinsic332275 ! Node: DbesJN Intrinsic332661 ! Node: DbesY0 Intrinsic333117 ! Node: DbesY1 Intrinsic333503 ! Node: DbesYN Intrinsic333889 ! Node: Dble Intrinsic334343 ! Node: DCos Intrinsic335049 ! Node: DCosH Intrinsic335433 ! Node: DDiM Intrinsic335823 ! Node: DErF Intrinsic336255 ! Node: DErFC Intrinsic336624 ! Node: DExp Intrinsic336999 ! Node: Digits Intrinsic337385 ! Node: DiM Intrinsic337702 ! Node: DInt Intrinsic338201 ! Node: DLog Intrinsic338585 ! Node: DLog10 Intrinsic338970 ! Node: DMax1 Intrinsic339368 ! Node: DMin1 Intrinsic339822 ! Node: DMod Intrinsic340274 ! Node: DNInt Intrinsic340702 ! Node: Dot_Product Intrinsic341101 ! Node: DProd Intrinsic341441 ! Node: DSign Intrinsic341823 ! Node: DSin Intrinsic342262 ! Node: DSinH Intrinsic342647 ! Node: DSqRt Intrinsic343038 ! Node: DTan Intrinsic343429 ! Node: DTanH Intrinsic343814 ! Node: DTime Intrinsic (subroutine)344218 ! Node: EOShift Intrinsic345489 ! Node: Epsilon Intrinsic345828 ! Node: ErF Intrinsic346152 ! Node: ErFC Intrinsic346558 ! Node: ETime Intrinsic (subroutine)347118 ! Node: ETime Intrinsic (function)348281 ! Node: Exit Intrinsic349321 ! Node: Exp Intrinsic349830 ! Node: Exponent Intrinsic350292 ! Node: FDate Intrinsic (subroutine)350631 ! Node: FDate Intrinsic (function)351541 ! Node: FGet Intrinsic (subroutine)352313 ! Node: FGetC Intrinsic (subroutine)353150 ! Node: Float Intrinsic354027 ! Node: Floor Intrinsic354427 ! Node: Flush Intrinsic354743 ! Node: FNum Intrinsic355322 ! Node: FPut Intrinsic (subroutine)355770 ! Node: FPutC Intrinsic (subroutine)356567 ! Node: Fraction Intrinsic357414 ! Node: FSeek Intrinsic357755 ! Node: FStat Intrinsic (subroutine)358480 ! Node: FStat Intrinsic (function)360005 ! Node: FTell Intrinsic (subroutine)361295 ! Node: FTell Intrinsic (function)361968 ! Node: GError Intrinsic362485 ! Node: GetArg Intrinsic362859 ! Node: GetCWD Intrinsic (subroutine)363527 ! Node: GetCWD Intrinsic (function)364383 ! Node: GetEnv Intrinsic365003 ! Node: GetGId Intrinsic365590 ! Node: GetLog Intrinsic365896 ! Node: GetPId Intrinsic366434 ! Node: GetUId Intrinsic366742 ! Node: GMTime Intrinsic367047 ! Node: HostNm Intrinsic (subroutine)368055 ! Node: HostNm Intrinsic (function)369145 ! Node: Huge Intrinsic369988 ! Node: IAbs Intrinsic370311 ! Node: IAChar Intrinsic370702 ! Node: IAnd Intrinsic371242 ! Node: IArgC Intrinsic371730 ! Node: IBClr Intrinsic372106 ! Node: IBits Intrinsic372617 ! Node: IBSet Intrinsic373331 ! Node: IChar Intrinsic373833 ! Node: IDate Intrinsic (UNIX)375052 ! Node: IDiM Intrinsic375855 ! Node: IDInt Intrinsic376304 ! Node: IDNInt Intrinsic376697 ! Node: IEOr Intrinsic377096 ! Node: IErrNo Intrinsic377594 ! Node: IFix Intrinsic377921 ! Node: Imag Intrinsic378309 ! Node: ImagPart Intrinsic379314 ! Node: Index Intrinsic380340 ! Node: Int Intrinsic380893 ! Node: Int2 Intrinsic381608 ! Node: Int8 Intrinsic382318 ! Node: IOr Intrinsic383028 ! Node: IRand Intrinsic383508 ! Node: IsaTty Intrinsic384428 ! Node: IShft Intrinsic384852 ! Node: IShftC Intrinsic385682 ! Node: ISign Intrinsic386611 ! Node: ITime Intrinsic387061 ! Node: Kill Intrinsic (subroutine)387463 ! Node: Kind Intrinsic388300 ! Node: LBound Intrinsic388625 ! Node: Len Intrinsic388942 ! Node: Len_Trim Intrinsic389578 ! Node: LGe Intrinsic389990 ! Node: LGt Intrinsic391403 ! Node: Link Intrinsic (subroutine)392308 ! Node: LLe Intrinsic393273 ! Node: LLt Intrinsic394178 ! Node: LnBlnk Intrinsic395072 ! Node: Loc Intrinsic395475 ! Node: Log Intrinsic395906 ! Node: Log10 Intrinsic396497 ! Node: Logical Intrinsic397039 ! Node: Long Intrinsic397362 ! Node: LShift Intrinsic397886 ! Node: LStat Intrinsic (subroutine)398922 ! Node: LStat Intrinsic (function)400734 ! Node: LTime Intrinsic402297 ! Node: MatMul Intrinsic403301 ! Node: Max Intrinsic403619 ! Node: Max0 Intrinsic404170 ! Node: Max1 Intrinsic404621 ! Node: MaxExponent Intrinsic405105 ! Node: MaxLoc Intrinsic405445 ! Node: MaxVal Intrinsic405772 ! Node: MClock Intrinsic406094 ! Node: MClock8 Intrinsic406992 ! Node: Merge Intrinsic408180 ! Node: Min Intrinsic408496 ! Node: Min0 Intrinsic409047 ! Node: Min1 Intrinsic409498 ! Node: MinExponent Intrinsic409982 ! Node: MinLoc Intrinsic410322 ! Node: MinVal Intrinsic410649 ! Node: Mod Intrinsic410968 ! Node: Modulo Intrinsic411491 ! Node: MvBits Intrinsic411810 ! Node: Nearest Intrinsic412676 ! Node: NInt Intrinsic413000 ! Node: Not Intrinsic413838 ! Node: Or Intrinsic414233 ! Node: Pack Intrinsic414731 ! Node: PError Intrinsic415041 ! Node: Precision Intrinsic415495 ! Node: Present Intrinsic415830 ! Node: Product Intrinsic416160 ! Node: Radix Intrinsic416486 ! Node: Rand Intrinsic416803 ! Node: Random_Number Intrinsic417690 ! Node: Random_Seed Intrinsic418043 ! Node: Range Intrinsic418391 ! Node: Real Intrinsic418712 ! Node: RealPart Intrinsic419718 ! Node: Rename Intrinsic (subroutine)420751 ! Node: Repeat Intrinsic421723 ! Node: Reshape Intrinsic422059 ! Node: RRSpacing Intrinsic422388 ! Node: RShift Intrinsic422723 ! Node: Scale Intrinsic423721 ! Node: Scan Intrinsic424037 ! Node: Second Intrinsic (function)424361 ! Node: Second Intrinsic (subroutine)425192 ! Node: Selected_Int_Kind Intrinsic426167 ! Node: Selected_Real_Kind Intrinsic426558 ! Node: Set_Exponent Intrinsic426945 ! Node: Shape Intrinsic427302 ! Node: Short Intrinsic427625 ! Node: Sign Intrinsic428321 ! Node: Signal Intrinsic (subroutine)428921 ! Node: Sin Intrinsic431135 ! Node: SinH Intrinsic431610 ! Node: Sleep Intrinsic431983 ! Node: Sngl Intrinsic432325 ! Node: Spacing Intrinsic432714 ! Node: Spread Intrinsic433038 ! Node: SqRt Intrinsic433359 ! Node: SRand Intrinsic433963 ! Node: Stat Intrinsic (subroutine)434340 ! Node: Stat Intrinsic (function)435955 ! Node: Sum Intrinsic437319 ! Node: SymLnk Intrinsic (subroutine)437651 ! Node: System Intrinsic (subroutine)438683 ! Node: System_Clock Intrinsic439622 ! Node: Tan Intrinsic440746 ! Node: TanH Intrinsic441206 ! Node: Time Intrinsic (UNIX)441588 ! Node: Time8 Intrinsic442573 ! Node: Tiny Intrinsic443752 ! Node: Transfer Intrinsic444067 ! Node: Transpose Intrinsic444398 ! Node: Trim Intrinsic444732 ! Node: TtyNam Intrinsic (subroutine)445062 ! Node: TtyNam Intrinsic (function)445764 ! Node: UBound Intrinsic446333 ! Node: UMask Intrinsic (subroutine)446678 ! Node: Unlink Intrinsic (subroutine)447375 ! Node: Unpack Intrinsic448273 ! Node: Verify Intrinsic448608 ! Node: XOr Intrinsic448927 ! Node: ZAbs Intrinsic449443 ! Node: ZCos Intrinsic449812 ! Node: ZExp Intrinsic450185 ! Node: ZLog Intrinsic450558 ! Node: ZSin Intrinsic450931 ! Node: ZSqRt Intrinsic451305 ! Node: Scope and Classes of Names451662 ! Node: Underscores in Symbol Names452144 ! Node: I/O452391 ! Node: Fortran 90 Features453164 ! Node: Other Dialects455966 ! Node: Source Form457125 ! Node: Carriage Returns458340 ! Node: Tabs458669 ! Node: Short Lines459542 ! Node: Long Lines460516 ! Node: Ampersands461127 ! Node: Trailing Comment461381 ! Node: Debug Line462157 ! Node: Dollar Signs462826 ! Node: Case Sensitivity463112 ! Node: VXT Fortran471728 ! Node: Double Quote Meaning472911 ! Node: Exclamation Point473839 ! Node: Fortran 90474882 ! Node: Pedantic Compilation475934 ! Node: Distensions479898 ! Node: Ugly Implicit Argument Conversion480862 ! Node: Ugly Assumed-Size Arrays481476 ! Node: Ugly Complex Part Extraction483197 ! Node: Ugly Null Arguments484819 ! Node: Ugly Conversion of Initializers486422 ! Node: Ugly Integer Conversions488187 ! Node: Ugly Assigned Labels489295 ! Node: Compiler491226 ! Node: Compiler Limits491864 ! Node: Run-time Environment Limits492755 ! Node: Timer Wraparounds494697 ! Node: Year 2000 (Y2K) Problems495976 ! Node: Array Size500482 ! Node: Character-variable Length501667 ! Node: Year 10000 (Y10K) Problems502176 ! Node: Compiler Types502722 ! Node: Compiler Constants507433 ! Node: Compiler Intrinsics508292 ! Node: Intrinsic Groups509219 ! Node: Other Intrinsics512660 ! Node: ACosD Intrinsic520258 ! Node: AIMax0 Intrinsic520539 ! Node: AIMin0 Intrinsic520848 ! Node: AJMax0 Intrinsic521158 ! Node: AJMin0 Intrinsic521468 ! Node: ASinD Intrinsic521777 ! Node: ATan2D Intrinsic522083 ! Node: ATanD Intrinsic522391 ! Node: BITest Intrinsic522697 ! Node: BJTest Intrinsic523006 ! Node: CDAbs Intrinsic523315 ! Node: CDCos Intrinsic523688 ! Node: CDExp Intrinsic524063 ! Node: CDLog Intrinsic524438 ! Node: CDSin Intrinsic524813 ! Node: CDSqRt Intrinsic525189 ! Node: ChDir Intrinsic (function)525582 ! Node: ChMod Intrinsic (function)526411 ! Node: CosD Intrinsic527525 ! Node: DACosD Intrinsic527837 ! Node: DASinD Intrinsic528145 ! Node: DATan2D Intrinsic528456 ! Node: DATanD Intrinsic528770 ! Node: Date Intrinsic529079 ! Node: DbleQ Intrinsic529798 ! Node: DCmplx Intrinsic530102 ! Node: DConjg Intrinsic531733 ! Node: DCosD Intrinsic532118 ! Node: DFloat Intrinsic532424 ! Node: DFlotI Intrinsic532796 ! Node: DFlotJ Intrinsic533106 ! Node: DImag Intrinsic533415 ! Node: DReal Intrinsic533792 ! Node: DSinD Intrinsic534939 ! Node: DTanD Intrinsic535243 ! Node: DTime Intrinsic (function)535558 ! Node: FGet Intrinsic (function)536788 ! Node: FGetC Intrinsic (function)537561 ! Node: FloatI Intrinsic538377 ! Node: FloatJ Intrinsic538697 ! Node: FPut Intrinsic (function)539016 ! Node: FPutC Intrinsic (function)539752 ! Node: IDate Intrinsic (VXT)540545 ! Node: IIAbs Intrinsic541589 ! Node: IIAnd Intrinsic541899 ! Node: IIBClr Intrinsic542204 ! Node: IIBits Intrinsic542513 ! Node: IIBSet Intrinsic542823 ! Node: IIDiM Intrinsic543132 ! Node: IIDInt Intrinsic543438 ! Node: IIDNnt Intrinsic543747 ! Node: IIEOr Intrinsic544056 ! Node: IIFix Intrinsic544361 ! Node: IInt Intrinsic544664 ! Node: IIOr Intrinsic544963 ! Node: IIQint Intrinsic545263 ! Node: IIQNnt Intrinsic545571 ! Node: IIShftC Intrinsic545882 ! Node: IISign Intrinsic546196 ! Node: IMax0 Intrinsic546506 ! Node: IMax1 Intrinsic546811 ! Node: IMin0 Intrinsic547115 ! Node: IMin1 Intrinsic547419 ! Node: IMod Intrinsic547722 ! Node: INInt Intrinsic548022 ! Node: INot Intrinsic548324 ! Node: IZExt Intrinsic548624 ! Node: JIAbs Intrinsic548927 ! Node: JIAnd Intrinsic549231 ! Node: JIBClr Intrinsic549536 ! Node: JIBits Intrinsic549845 ! Node: JIBSet Intrinsic550155 ! Node: JIDiM Intrinsic550464 ! Node: JIDInt Intrinsic550770 ! Node: JIDNnt Intrinsic551079 ! Node: JIEOr Intrinsic551388 ! Node: JIFix Intrinsic551693 ! Node: JInt Intrinsic551996 ! Node: JIOr Intrinsic552295 ! Node: JIQint Intrinsic552595 ! Node: JIQNnt Intrinsic552903 ! Node: JIShft Intrinsic553213 ! Node: JIShftC Intrinsic553524 ! Node: JISign Intrinsic553838 ! Node: JMax0 Intrinsic554148 ! Node: JMax1 Intrinsic554453 ! Node: JMin0 Intrinsic554757 ! Node: JMin1 Intrinsic555061 ! Node: JMod Intrinsic555364 ! Node: JNInt Intrinsic555664 ! Node: JNot Intrinsic555966 ! Node: JZExt Intrinsic556266 ! Node: Kill Intrinsic (function)556579 ! Node: Link Intrinsic (function)557261 ! Node: QAbs Intrinsic558073 ! Node: QACos Intrinsic558383 ! Node: QACosD Intrinsic558687 ! Node: QASin Intrinsic558995 ! Node: QASinD Intrinsic559301 ! Node: QATan Intrinsic559609 ! Node: QATan2 Intrinsic559915 ! Node: QATan2D Intrinsic560225 ! Node: QATanD Intrinsic560539 ! Node: QCos Intrinsic560848 ! Node: QCosD Intrinsic561149 ! Node: QCosH Intrinsic561452 ! Node: QDiM Intrinsic561755 ! Node: QExp Intrinsic562054 ! Node: QExt Intrinsic562352 ! Node: QExtD Intrinsic562651 ! Node: QFloat Intrinsic562955 ! Node: QInt Intrinsic563262 ! Node: QLog Intrinsic563562 ! Node: QLog10 Intrinsic563862 ! Node: QMax1 Intrinsic564169 ! Node: QMin1 Intrinsic564474 ! Node: QMod Intrinsic564777 ! Node: QNInt Intrinsic565077 ! Node: QSin Intrinsic565379 ! Node: QSinD Intrinsic565679 ! Node: QSinH Intrinsic565982 ! Node: QSqRt Intrinsic566286 ! Node: QTan Intrinsic566589 ! Node: QTanD Intrinsic566889 ! Node: QTanH Intrinsic567192 ! Node: Rename Intrinsic (function)567508 ! Node: Secnds Intrinsic568313 ! Node: Signal Intrinsic (function)568912 ! Node: SinD Intrinsic571741 ! Node: SnglQ Intrinsic572053 ! Node: SymLnk Intrinsic (function)572368 ! Node: System Intrinsic (function)573236 ! Node: TanD Intrinsic574563 ! Node: Time Intrinsic (VXT)574880 ! Node: UMask Intrinsic (function)575634 ! Node: Unlink Intrinsic (function)576242 ! Node: ZExt Intrinsic576971 ! Node: Other Compilers577259 ! Node: Dropping f2c Compatibility579779 ! Node: Compilers Other Than f2c582851 ! Node: Other Languages584649 ! Node: Interoperating with C and C++584914 ! Node: C Interfacing Tools585947 ! Node: C Access to Type Information586875 ! Node: f2c Skeletons and Prototypes587562 ! Ref: f2c Skeletons and Prototypes-Footnote-1589009 ! Node: C++ Considerations589263 ! Node: Startup Code589918 ! Node: Debugging and Interfacing594707 ! Node: Main Program Unit597394 ! Node: Procedures599888 ! Node: Functions602546 ! Node: Names604164 ! Node: Common Blocks607307 ! Node: Local Equivalence Areas607571 ! Node: Complex Variables608555 ! Node: Arrays609675 ! Node: Adjustable Arrays613009 ! Node: Alternate Entry Points615868 ! Node: Alternate Returns622570 ! Node: Assigned Statement Labels623471 ! Node: Run-time Library Errors625316 ! Node: Collected Fortran Wisdom627268 ! Node: Advantages Over f2c628704 ! Node: Language Extensions629685 ! Node: Diagnostic Abilities630859 ! Node: Compiler Options631250 ! Node: Compiler Speed632298 ! Node: Program Speed633008 ! Node: Ease of Debugging634593 ! Node: Character and Hollerith Constants637023 ! Node: Block Data and Libraries637995 ! Node: Loops641324 ! Node: Working Programs646550 ! Node: Not My Type647294 ! Node: Variables Assumed To Be Zero649225 ! Node: Variables Assumed To Be Saved650279 ! Node: Unwanted Variables651649 ! Node: Unused Arguments652529 ! Node: Surprising Interpretations of Code652992 ! Node: Aliasing Assumed To Work653839 ! Node: Output Assumed To Flush660036 ! Node: Large File Unit Numbers662809 ! Node: Floating-point precision664961 ! Node: Inconsistent Calling Sequences666222 ! Node: Overly Convenient Options667202 ! Node: Faster Programs670508 ! Node: Aligned Data670954 ! Node: Prefer Automatic Uninitialized Variables675831 ! Node: Avoid f2c Compatibility677197 ! Node: Use Submodel Options677665 ! Node: Trouble678669 ! Node: But-bugs680131 ! Node: Signal 11 and Friends681904 ! Node: Cannot Link Fortran Programs683984 ! Node: Large Common Blocks685267 ! Node: Debugger Problems685693 ! Node: NeXTStep Problems686408 ! Node: Stack Overflow688234 ! Node: Nothing Happens691123 ! Node: Strange Behavior at Run Time692737 ! Node: Floating-point Errors695226 ! Node: Known Bugs701520 ! Node: Missing Features708821 ! Node: Better Source Model710748 ! Node: Fortran 90 Support712517 ! Node: Intrinsics in PARAMETER Statements713618 ! Node: Arbitrary Concatenation714369 ! Node: SELECT CASE on CHARACTER Type714772 ! Node: RECURSIVE Keyword715059 ! Node: Increasing Precision/Range715486 ! Node: Popular Non-standard Types717024 ! Node: Full Support for Compiler Types717363 ! Node: Array Bounds Expressions717999 ! Node: POINTER Statements718446 ! Node: Sensible Non-standard Constructs719329 ! Node: READONLY Keyword721655 ! Node: FLUSH Statement722565 ! Node: Expressions in FORMAT Statements722935 ! Node: Explicit Assembler Code724110 ! Node: Q Edit Descriptor724399 ! Node: Old-style PARAMETER Statements724903 ! Node: TYPE and ACCEPT I/O Statements725637 ! Node: STRUCTURE UNION RECORD MAP726203 ! Node: OPEN CLOSE and INQUIRE Keywords726689 ! Node: ENCODE and DECODE727669 ! Node: AUTOMATIC Statement728764 ! Node: Suppressing Space Padding730011 ! Node: Fortran Preprocessor731238 ! Node: Bit Operations on Floating-point Data731811 ! Node: Really Ugly Character Assignments732344 ! Node: POSIX Standard732719 ! Node: Floating-point Exception Handling732959 ! Node: Nonportable Conversions734363 ! Node: Large Automatic Arrays734906 ! Node: Support for Threads735313 ! Node: Enabling Debug Lines735738 ! Node: Better Warnings736115 ! Node: Gracefully Handle Sensible Bad Code737751 ! Node: Non-standard Conversions738495 ! Node: Non-standard Intrinsics738838 ! Node: Modifying DO Variable739254 ! Node: Better Pedantic Compilation739930 ! Node: Warn About Implicit Conversions740558 ! Node: Invalid Use of Hollerith Constant741145 ! Node: Dummy Array Without Dimensioning Dummy741688 ! Node: Invalid FORMAT Specifiers742601 ! Node: Ambiguous Dialects743002 ! Node: Unused Labels743413 ! Node: Informational Messages743635 ! Node: Uninitialized Variables at Run Time744038 ! Node: Portable Unformatted Files744644 ! Ref: Portable Unformatted Files-Footnote-1747600 ! Node: Better List-directed I/O747628 ! Node: Default to Console I/O748533 ! Node: Labels Visible to Debugger749181 ! Node: Disappointments749582 ! Node: Mangling of Names750220 ! Node: Multiple Definitions of External Names751070 ! Node: Limitation on Implicit Declarations752433 ! Node: Non-bugs752717 ! Node: Backslash in Constants753842 ! Node: Initializing Before Specifying758731 ! Node: Context-Sensitive Intrinsicness759873 ! Node: Context-Sensitive Constants761769 ! Node: Equivalence Versus Equality764725 ! Node: Order of Side Effects767768 ! Node: Warnings and Errors769496 ! Node: Open Questions770894 ! Node: Bugs771363 ! Node: Bug Criteria772802 ! Node: Bug Lists779035 ! Node: Bug Reporting779824 ! Node: Service793440 ! Node: Adding Options793906 ! Node: Projects798499 ! Node: Efficiency799434 ! Node: Better Optimization802331 ! Node: Simplify Porting805701 ! Node: More Extensions807456 ! Node: Machine Model810544 ! Node: Internals Documentation811830 ! Node: Internals Improvements812137 ! Node: Better Diagnostics815681 ! Node: Front End816598 ! Node: Overview of Sources817385 ! Node: Overview of Translation Process824774 ! Node: g77stripcard829052 ! Node: lex.c831529 ! Node: sta.c841069 ! Node: sti.c841180 ! Node: stq.c841291 ! Node: stb.c841402 ! Node: expr.c841514 ! Node: stc.c841628 ! Node: std.c841740 ! Node: ste.c841851 ! Node: Gotchas (Transforming)841979 ! Node: TBD (Transforming)850098 ! Node: Philosophy of Code Generation852794 ! Node: Two-pass Design858698 ! Node: Two-pass Code859855 ! Node: Why Two Passes860588 ! Node: Challenges Posed866656 ! Node: Transforming Statements869140 ! Node: Statements Needing Temporaries869990 ! Node: Transforming DO WHILE872754 ! Node: Transforming Iterative DO873937 ! Node: Transforming Block IF874766 ! Node: Transforming SELECT CASE876131 ! Node: Transforming Expressions879353 ! Node: Internal Naming Conventions881342 ! Node: Diagnostics884342 ! Node: CMPAMBIG885732 ! Node: EXPIMP892149 ! Node: INTGLOB893385 ! Node: LEX895629 ! Node: GLOBALS901084 ! Node: LINKFAIL903748 ! Node: Y2KBAD904372 ! Node: Index904722  End Tag Table diff -Nrc3pad gcc-3.2/gcc/f/g77.info-16 gcc-3.2.1/gcc/f/g77.info-16 *** gcc-3.2/gcc/f/g77.info-16 Wed Aug 14 09:36:34 2002 --- gcc-3.2.1/gcc/f/g77.info-16 Tue Nov 19 18:17:13 2002 *************** versions. *** 54,61 **** An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available ! via `http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html'. Follow ! the "Known Bugs" link. The following information was last updated on 2002-02-01: --- 54,61 ---- An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available ! via `http://www.gnu.org/software/gcc/onlinedocs/g77/Trouble.html'. ! Follow the "Known Bugs" link. The following information was last updated on 2002-02-01: diff -Nrc3pad gcc-3.2/gcc/f/g77.info-4 gcc-3.2.1/gcc/f/g77.info-4 *** gcc-3.2/gcc/f/g77.info-4 Wed Aug 14 09:36:34 2002 --- gcc-3.2.1/gcc/f/g77.info-4 Tue Nov 19 18:17:13 2002 *************** Known Bugs In GNU Fortran: Known Bugs. *** 80,93 **** An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available at ! `http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'. ! The following information was last updated on 2002-08-05: In `GCC' 3.2 versus `GCC' 3.1: ============================== ! * Nothing. In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= --- 80,96 ---- An online, "live" version of this document (derived directly from the mainline, development version of `g77' within `gcc') is available at ! `http://www.gnu.org/software/gcc/onlinedocs/g77/News.html'. ! The following information was last updated on 2002-10-28: In `GCC' 3.2 versus `GCC' 3.1: ============================== ! * Problem Reports fixed (in chronological order of submission): ! `8308' ! gcc-3.x does not compile files with suffix .r (RATFOR) [Fixed ! in 3.2.1] In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= diff -Nrc3pad gcc-3.2/gcc/f/g77.info-5 gcc-3.2.1/gcc/f/g77.info-5 *** gcc-3.2/gcc/f/g77.info-5 Wed Aug 14 09:36:34 2002 --- gcc-3.2.1/gcc/f/g77.info-5 Tue Nov 19 18:17:13 2002 *************** somewhat more difficult. *** 62,73 **** For information on bugs in the GCC-3.2 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2002-08-05: In `GCC' 3.2 versus `GCC' 3.1: ============================== ! * Nothing. In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= --- 62,76 ---- For information on bugs in the GCC-3.2 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. ! The following information was last updated on 2002-10-28: In `GCC' 3.2 versus `GCC' 3.1: ============================== ! * Problem Reports fixed (in chronological order of submission): ! `8308' ! gcc-3.x does not compile files with suffix .r (RATFOR) [Fixed ! in 3.2.1] In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0: ============================================================= diff -Nrc3pad gcc-3.2/gcc/f/lang-specs.h gcc-3.2.1/gcc/f/lang-specs.h *** gcc-3.2/gcc/f/lang-specs.h Sat Nov 24 21:36:56 2001 --- gcc-3.2.1/gcc/f/lang-specs.h Mon Oct 28 21:53:38 2002 *************** *** 1,5 **** /* lang-specs.h file for Fortran ! Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. Contributed by James Craig Burley. This file is part of GNU Fortran. --- 1,6 ---- /* lang-specs.h file for Fortran ! Copyright (C) 1995, 1996, 1997, 1999, 2000, 2002 ! Free Software Foundation, Inc. Contributed by James Craig Burley. This file is part of GNU Fortran. *************** the Free Software Foundation, 59 Temple *** 33,39 **** {".r", "@ratfor", 0}, {"@ratfor", "%{C:%{!E:%eGNU C does not support -C without using -E}}\ ! ratfor %{C} %{v} %i %{E:%W{o*}} %{!E: %{!pipe:-o %g.f} |\n\ f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!fsyntax-only:%(invoke_as)}}", 0}, {".f", "@f77", 0}, {".for", "@f77", 0}, --- 34,40 ---- {".r", "@ratfor", 0}, {"@ratfor", "%{C:%{!E:%eGNU C does not support -C without using -E}}\ ! ratfor %{C} %{v} %{E:%W{o*}} %{!E: %{!pipe:-o %g.f} %i |\n\ f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!fsyntax-only:%(invoke_as)}}", 0}, {".f", "@f77", 0}, {".for", "@f77", 0}, diff -Nrc3pad gcc-3.2/gcc/f/news.texi gcc-3.2.1/gcc/f/news.texi *** gcc-3.2/gcc/f/news.texi Sun Aug 4 21:28:02 2002 --- gcc-3.2.1/gcc/f/news.texi Mon Oct 28 21:53:38 2002 *************** *** 10,16 **** @c in the standalone derivations of this file (e.g. NEWS). @set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002 ! @set last-update-news 2002-08-05 @include root.texi --- 10,16 ---- @c in the standalone derivations of this file (e.g. NEWS). @set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002 ! @set last-update-news 2002-10-28 @include root.texi *************** An online, ``live'' version of this docu *** 148,154 **** (derived directly from the mainline, development version of @command{g77} within @command{gcc}) is available at ! @uref{http://www.gnu.org/software/gcc/onlinedocs/g77_news.html}. @end ifclear The following information was last updated on @value{last-update-news}: --- 148,154 ---- (derived directly from the mainline, development version of @command{g77} within @command{gcc}) is available at ! @uref{http://www.gnu.org/software/gcc/onlinedocs/g77/News.html}. @end ifclear The following information was last updated on @value{last-update-news}: *************** The following information was last updat *** 156,162 **** @heading In @code{GCC} 3.2 versus @code{GCC} 3.1: @itemize @bullet @item ! Nothing. @end itemize @heading In @code{GCC} 3.1 (formerly known as g77-0.5.27) versus @code{GCC} 3.0: --- 156,166 ---- @heading In @code{GCC} 3.2 versus @code{GCC} 3.1: @itemize @bullet @item ! Problem Reports fixed (in chronological order of submission): ! @table @code ! @item 8308 ! gcc-3.x does not compile files with suffix .r (RATFOR) [Fixed in 3.2.1] ! @end table @end itemize @heading In @code{GCC} 3.1 (formerly known as g77-0.5.27) versus @code{GCC} 3.0: diff -Nrc3pad gcc-3.2/gcc/f/target.c gcc-3.2.1/gcc/f/target.c *** gcc-3.2/gcc/f/target.c Sun Apr 14 16:21:51 2002 --- gcc-3.2.1/gcc/f/target.c Sat Sep 14 20:27:12 2002 *************** void * *** 2521,2526 **** --- 2521,2529 ---- ffetarget_memcpy_ (void *dst, void *src, size_t len) { #ifdef CROSS_COMPILE + /* HOST_WORDS_BIG_ENDIAN corresponds to both WORDS_BIG_ENDIAN and + BYTES_BIG_ENDIAN (i.e. there are no HOST_ macros to represent a + difference in the two latter). */ int host_words_big_endian = #ifndef HOST_WORDS_BIG_ENDIAN 0 *************** ffetarget_memcpy_ (void *dst, void *src, *** 2529,2550 **** #endif ; - int host_bytes_big_endian = - #ifndef HOST_BYTES_BIG_ENDIAN - 0 - #else - HOST_BYTES_BIG_ENDIAN - #endif - ; - - int host_bits_big_endian = - #ifndef HOST_BITS_BIG_ENDIAN - 0 - #else - HOST_BITS_BIG_ENDIAN - #endif - ; - /* This is just hands thrown up in the air over bits coming through this function representing a number being memcpy:d as-is from host to target. We can't generally adjust endianness here since we don't --- 2532,2537 ---- *************** ffetarget_memcpy_ (void *dst, void *src, *** 2555,2562 **** for instance in g77.f-torture/execute/980628-[4-6].f and alpha2.f. Still, we compile *some* code. FIXME: Rewrite handling of numbers. */ if (!WORDS_BIG_ENDIAN != !host_words_big_endian ! || !BYTES_BIG_ENDIAN != !host_bytes_big_endian ! || !BITS_BIG_ENDIAN != !host_bits_big_endian) sorry ("data initializer on host with different endianness"); #endif /* CROSS_COMPILE */ --- 2542,2548 ---- for instance in g77.f-torture/execute/980628-[4-6].f and alpha2.f. Still, we compile *some* code. FIXME: Rewrite handling of numbers. */ if (!WORDS_BIG_ENDIAN != !host_words_big_endian ! || !BYTES_BIG_ENDIAN != !host_words_big_endian) sorry ("data initializer on host with different endianness"); #endif /* CROSS_COMPILE */ diff -Nrc3pad gcc-3.2/gcc/f/target.h gcc-3.2.1/gcc/f/target.h *** gcc-3.2/gcc/f/target.h Mon Mar 18 17:47:23 2002 --- gcc-3.2.1/gcc/f/target.h Fri Aug 30 07:29:48 2002 *************** *** 1,5 **** /* target.h -- Public #include File (module.h template V1.0) ! Copyright (C) 1995, 1996 Free Software Foundation, Inc. Contributed by James Craig Burley. This file is part of GNU Fortran. --- 1,5 ---- /* target.h -- Public #include File (module.h template V1.0) ! Copyright (C) 1995, 1996, 2002 Free Software Foundation, Inc. Contributed by James Craig Burley. This file is part of GNU Fortran. *************** 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(__hppa__) || !defined(__LP64__)) && !defined(__s390x__) && !defined(__x86_64__) #define FFETARGET_32bit_longs #endif --- 234,248 ---- #define FFETARGET_f2cTYLOGICAL2 13 #define FFETARGET_f2cTYQUAD 14 ! #if (!defined(__alpha__) \ ! && (!defined(__hppa__) || !defined(__LP64__)) \ ! && (!defined(__ia64__) || !defined(__LP64__)) \ ! && !defined(__MMIX__) \ ! && (!defined (_ARCH_PPC) || !defined (__64BIT__)) \ ! && !defined(__powerpc64__) \ ! && !defined(__s390x__) \ ! && (!defined(__sparc__) || (!defined(__sparcv9) && !defined(__arch64__)))\ ! && !defined(__x86_64__)) #define FFETARGET_32bit_longs #endif diff -Nrc3pad gcc-3.2/gcc/f/version.c gcc-3.2.1/gcc/f/version.c *** gcc-3.2/gcc/f/version.c Wed Aug 14 09:01:21 2002 --- gcc-3.2.1/gcc/f/version.c Tue Nov 19 08:16:37 2002 *************** *** 1,4 **** #include "ansidecl.h" #include "f/version.h" ! const char *const ffe_version_string = "3.2 20020814 (release)"; --- 1,4 ---- #include "ansidecl.h" #include "f/version.h" ! const char *const ffe_version_string = "3.2.1 20021119 (release)"; diff -Nrc3pad gcc-3.2/gcc/flags.h gcc-3.2.1/gcc/flags.h *** gcc-3.2/gcc/flags.h Thu Mar 21 23:12:21 2002 --- gcc-3.2.1/gcc/flags.h Sun Oct 6 23:02:05 2002 *************** extern int align_labels_max_skip; *** 604,609 **** --- 604,613 ---- extern int align_functions; extern int align_functions_log; + /* Like align_functions_log above, but used by front-ends to force the + minimum function alignment. Zero means no alignment is forced. */ + extern int force_align_functions_log; + /* Nonzero if we dump in VCG format, not plain text. */ extern int dump_for_graph; diff -Nrc3pad gcc-3.2/gcc/flow.c gcc-3.2.1/gcc/flow.c *** gcc-3.2/gcc/flow.c Thu Apr 18 20:21:09 2002 --- gcc-3.2.1/gcc/flow.c Sat Nov 16 00:46:44 2002 *************** life_analysis (f, file, flags) *** 499,504 **** --- 499,507 ---- } } #endif + + rebuild_jump_labels (get_insns ()); + /* Removing dead insns should've made jumptables really dead. */ delete_dead_jumptables (); } *************** propagate_one_insn (pbi, insn) *** 1626,1632 **** if (libcall_is_dead) prev = propagate_block_delete_libcall ( insn, note); else ! propagate_block_delete_insn (pbi->bb, insn); return prev; } --- 1629,1670 ---- if (libcall_is_dead) prev = propagate_block_delete_libcall ( insn, note); else ! { ! ! /* If INSN contains a RETVAL note and is dead, but the libcall ! as a whole is not dead, then we want to remove INSN, but ! not the whole libcall sequence. ! ! However, we need to also remove the dangling REG_LIBCALL ! note so that we do not have mis-matched LIBCALL/RETVAL ! notes. In theory we could find a new location for the ! REG_RETVAL note, but it hardly seems worth the effort. ! ! NOTE at this point will be the RETVAL note if it exists. */ ! if (note) ! { ! rtx libcall_note; ! ! libcall_note ! = find_reg_note (XEXP (note, 0), REG_LIBCALL, NULL_RTX); ! remove_note (XEXP (note, 0), libcall_note); ! } ! ! /* Similarly if INSN contains a LIBCALL note, remove the ! dangling REG_RETVAL note. */ ! note = find_reg_note (insn, REG_LIBCALL, NULL_RTX); ! if (note) ! { ! rtx retval_note; ! ! retval_note ! = find_reg_note (XEXP (note, 0), REG_RETVAL, NULL_RTX); ! remove_note (XEXP (note, 0), retval_note); ! } ! ! /* Now delete INSN. */ ! propagate_block_delete_insn (pbi->bb, insn); ! } return prev; } diff -Nrc3pad gcc-3.2/gcc/fold-const.c gcc-3.2.1/gcc/fold-const.c *** gcc-3.2/gcc/fold-const.c Sat Jun 15 00:42:25 2002 --- gcc-3.2.1/gcc/fold-const.c Tue Oct 22 09:06:18 2002 *************** fold_binary_op_with_conditional_arg (cod *** 4869,4874 **** --- 4869,4875 ---- /* And these are the types of the expressions. */ tree lhs_type = type; tree rhs_type = type; + int save = 0; if (cond_first_p) { *************** fold_binary_op_with_conditional_arg (cod *** 4927,4937 **** if an arm is a COND_EXPR since we get exponential behavior in that case. */ ! if (TREE_CODE (arg) != SAVE_EXPR && ! TREE_CONSTANT (arg) ! && global_bindings_p () == 0 ! && ((TREE_CODE (arg) != VAR_DECL ! && TREE_CODE (arg) != PARM_DECL) ! || TREE_SIDE_EFFECTS (arg))) { if (TREE_CODE (true_value) != COND_EXPR) lhs = fold (build (lhs_code, lhs_type, *true_lhs, *true_rhs)); --- 4928,4939 ---- if an arm is a COND_EXPR since we get exponential behavior in that case. */ ! if (TREE_CODE (arg) == SAVE_EXPR) ! save = 1; ! else if (! TREE_CONSTANT (arg) ! && global_bindings_p () == 0 ! && ((TREE_CODE (arg) != VAR_DECL && TREE_CODE (arg) != PARM_DECL) ! || TREE_SIDE_EFFECTS (arg))) { if (TREE_CODE (true_value) != COND_EXPR) lhs = fold (build (lhs_code, lhs_type, *true_lhs, *true_rhs)); *************** fold_binary_op_with_conditional_arg (cod *** 4941,4947 **** if ((lhs == 0 || ! TREE_CONSTANT (lhs)) && (rhs == 0 || !TREE_CONSTANT (rhs))) ! arg = save_expr (arg), lhs = rhs = 0; } if (lhs == 0) --- 4943,4953 ---- if ((lhs == 0 || ! TREE_CONSTANT (lhs)) && (rhs == 0 || !TREE_CONSTANT (rhs))) ! { ! arg = save_expr (arg); ! lhs = rhs = 0; ! save = 1; ! } } if (lhs == 0) *************** fold_binary_op_with_conditional_arg (cod *** 4951,4957 **** test = fold (build (COND_EXPR, type, test, lhs, rhs)); ! if (TREE_CODE (arg) == SAVE_EXPR) return build (COMPOUND_EXPR, type, convert (void_type_node, arg), strip_compound_expr (test, arg)); --- 4957,4963 ---- test = fold (build (COND_EXPR, type, test, lhs, rhs)); ! if (save) return build (COMPOUND_EXPR, type, convert (void_type_node, arg), strip_compound_expr (test, arg)); *************** fold (expr) *** 6535,6541 **** else if (TREE_INT_CST_HIGH (arg1) == -1 && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 1 << (width - 1))) && ! TREE_UNSIGNED (TREE_TYPE (arg1))) switch (TREE_CODE (t)) { --- 6541,6547 ---- else if (TREE_INT_CST_HIGH (arg1) == -1 && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) -1 << (width - 1))) && ! TREE_UNSIGNED (TREE_TYPE (arg1))) switch (TREE_CODE (t)) { diff -Nrc3pad gcc-3.2/gcc/function.c gcc-3.2.1/gcc/function.c *** gcc-3.2/gcc/function.c Sat Jun 22 14:29:26 2002 --- gcc-3.2.1/gcc/function.c Mon Oct 14 21:04:17 2002 *************** Software Foundation, 59 Temple Place - S *** 59,64 **** --- 59,65 ---- #include "ggc.h" #include "tm_p.h" #include "integrate.h" + #include "langhooks.h" #ifndef TRAMPOLINE_ALIGNMENT #define TRAMPOLINE_ALIGNMENT FUNCTION_BOUNDARY *************** assign_stack_temp_for_type (mode, size, *** 826,832 **** /* If a type is specified, set the relevant flags. */ if (type != 0) { ! RTX_UNCHANGING_P (slot) = TYPE_READONLY (type); MEM_VOLATILE_P (slot) = TYPE_VOLATILE (type); MEM_SET_IN_STRUCT_P (slot, AGGREGATE_TYPE_P (type)); } --- 827,834 ---- /* If a type is specified, set the relevant flags. */ if (type != 0) { ! RTX_UNCHANGING_P (slot) = (lang_hooks.honor_readonly ! && TYPE_READONLY (type)); MEM_VOLATILE_P (slot) = TYPE_VOLATILE (type); MEM_SET_IN_STRUCT_P (slot, AGGREGATE_TYPE_P (type)); } diff -Nrc3pad gcc-3.2/gcc/gcc.c gcc-3.2.1/gcc/gcc.c *** gcc-3.2/gcc/gcc.c Thu Aug 1 20:14:57 2002 --- gcc-3.2.1/gcc/gcc.c Mon Oct 14 21:55:26 2002 *************** static const char *print_prog_name = NUL *** 172,177 **** --- 172,182 ---- static int print_multi_directory; + /* Flag saying to print the relative path we'd use to + find OS libraries given the current compiler flags. */ + + static int print_multi_os_directory; + /* Flag saying to print the list of subdirectories and compiler flags used to select them in a standard form. */ *************** static struct compiler *lookup_compiler *** 285,293 **** static char *build_search_list PARAMS ((struct path_prefix *, const char *, int)); static void putenv_from_prefixes PARAMS ((struct path_prefix *, const char *)); static int access_check PARAMS ((const char *, int)); ! static char *find_a_file PARAMS ((struct path_prefix *, const char *, int)); static void add_prefix PARAMS ((struct path_prefix *, const char *, ! const char *, int, int, int *)); static void translate_options PARAMS ((int *, const char *const **)); static char *skip_whitespace PARAMS ((char *)); static void delete_if_ordinary PARAMS ((const char *)); --- 290,299 ---- static char *build_search_list PARAMS ((struct path_prefix *, const char *, int)); static void putenv_from_prefixes PARAMS ((struct path_prefix *, const char *)); static int access_check PARAMS ((const char *, int)); ! static char *find_a_file PARAMS ((struct path_prefix *, const char *, ! int, int)); static void add_prefix PARAMS ((struct path_prefix *, const char *, ! const char *, int, int, int *, int)); static void translate_options PARAMS ((int *, const char *const **)); static char *skip_whitespace PARAMS ((char *)); static void delete_if_ordinary PARAMS ((const char *)); *************** static const char *link_libgcc_spec = LI *** 668,679 **** static const char *trad_capable_cpp = "%{traditional|ftraditional|traditional-cpp:trad}cpp0"; static const char *cpp_unique_options = "%{C:%{!E:%eGNU C does not support -C without using -E}}\ %{nostdinc*} %{C} %{v} %{I*} %{P} %{$} %I\ ! %{MD:-MD %W{!o: %b.d}%W{o*:%.d%*}}\ ! %{MMD:-MMD %W{!o: %b.d}%W{o*:%.d%*}}\ ! %{M} %{MM} %W{MF*} %{MG} %{MP} %{MQ*} %{MT*}\ %{!E:%{!M:%{!MM:%{MD|MMD:%{o*:-MQ %*}}}}}\ %{!no-gcc:-D__GNUC__=%v1 -D__GNUC_MINOR__=%v2 -D__GNUC_PATCHLEVEL__=%v3 -D__GXX_ABI_VERSION=102}\ %{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\ --- 674,688 ---- static const char *trad_capable_cpp = "%{traditional|ftraditional|traditional-cpp:trad}cpp0"; + /* We don't wrap .d files in %W{} since a missing .d file, and + therefore no dependency entry, confuses make into thinking a .o + file that happens to exist is up-to-date. */ static const char *cpp_unique_options = "%{C:%{!E:%eGNU C does not support -C without using -E}}\ %{nostdinc*} %{C} %{v} %{I*} %{P} %{$} %I\ ! %{MD:-MD %{!o:%b.d}%{o*:%.d%*}}\ ! %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}}\ ! %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*}\ %{!E:%{!M:%{!MM:%{MD|MMD:%{o*:-MQ %*}}}}}\ %{!no-gcc:-D__GNUC__=%v1 -D__GNUC_MINOR__=%v2 -D__GNUC_PATCHLEVEL__=%v3 -D__GXX_ABI_VERSION=102}\ %{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\ *************** static const struct option_map option_ma *** 963,968 **** --- 972,978 ---- {"--print-missing-file-dependencies", "-MG", 0}, {"--print-multi-lib", "-print-multi-lib", 0}, {"--print-multi-directory", "-print-multi-directory", 0}, + {"--print-multi-os-directory", "-print-multi-os-directory", 0}, {"--print-prog-name", "-print-prog-name=", "aj"}, {"--profile", "-p", 0}, {"--profile-blocks", "-a", 0}, *************** struct prefix_list *** 1248,1254 **** int require_machine_suffix; /* Don't use without machine_suffix. */ /* 2 means try both machine_suffix and just_machine_suffix. */ int *used_flag_ptr; /* 1 if a file was found with this prefix. */ ! int priority; /* Sort key - priority within list */ }; struct path_prefix --- 1258,1266 ---- int require_machine_suffix; /* Don't use without machine_suffix. */ /* 2 means try both machine_suffix and just_machine_suffix. */ int *used_flag_ptr; /* 1 if a file was found with this prefix. */ ! int priority; /* Sort key - priority within list. */ ! int os_multilib; /* 1 if OS multilib scheme should be used, ! 0 for GCC multilib scheme. */ }; struct path_prefix *************** static const char *const standard_bindir *** 1337,1342 **** --- 1349,1359 ---- set_multilib_dir based on the compilation options. */ static const char *multilib_dir; + + /* Subdirectory to use for locating libraries in OS conventions. Set by + set_multilib_dir based on the compilation options. */ + + static const char *multilib_os_dir; /* Structure to keep track of the specs that have been defined so far. These are accessed using %(specname) or %[specname] in a compiler *************** static struct spec_list static_specs[] = *** 1390,1395 **** --- 1407,1413 ---- INIT_STATIC_SPEC ("multilib_extra", &multilib_extra), INIT_STATIC_SPEC ("multilib_matches", &multilib_matches), INIT_STATIC_SPEC ("multilib_exclusions", &multilib_exclusions), + INIT_STATIC_SPEC ("multilib_options", &multilib_options), INIT_STATIC_SPEC ("linker", &linker_name_spec), INIT_STATIC_SPEC ("link_libgcc", &link_libgcc_spec), INIT_STATIC_SPEC ("md_exec_prefix", &md_exec_prefix), *************** read_specs (filename, main_p) *** 1832,1838 **** (long) (p1 - buffer + 1)); p[-2] = '\0'; ! new_filename = find_a_file (&startfile_prefixes, p1, R_OK); read_specs (new_filename ? new_filename : p1, FALSE); continue; } --- 1850,1856 ---- (long) (p1 - buffer + 1)); p[-2] = '\0'; ! new_filename = find_a_file (&startfile_prefixes, p1, R_OK, 0); read_specs (new_filename ? new_filename : p1, FALSE); continue; } *************** read_specs (filename, main_p) *** 1851,1857 **** (long) (p1 - buffer + 1)); p[-2] = '\0'; ! new_filename = find_a_file (&startfile_prefixes, p1, R_OK); if (new_filename) read_specs (new_filename, FALSE); else if (verbose_flag) --- 1869,1875 ---- (long) (p1 - buffer + 1)); p[-2] = '\0'; ! new_filename = find_a_file (&startfile_prefixes, p1, R_OK, 0); if (new_filename) read_specs (new_filename, FALSE); else if (verbose_flag) *************** access_check (name, mode) *** 2480,2495 **** Return 0 if not found, otherwise return its name, allocated with malloc. */ static char * ! find_a_file (pprefix, name, mode) struct path_prefix *pprefix; const char *name; ! int mode; { char *temp; const char *const file_suffix = ((mode & X_OK) != 0 ? HOST_EXECUTABLE_SUFFIX : ""); struct prefix_list *pl; int len = pprefix->max_len + strlen (name) + strlen (file_suffix) + 1; #ifdef DEFAULT_ASSEMBLER if (! strcmp (name, "as") && access (DEFAULT_ASSEMBLER, mode) == 0) --- 2498,2514 ---- Return 0 if not found, otherwise return its name, allocated with malloc. */ static char * ! find_a_file (pprefix, name, mode, multilib) struct path_prefix *pprefix; const char *name; ! int mode, multilib; { char *temp; const char *const file_suffix = ((mode & X_OK) != 0 ? HOST_EXECUTABLE_SUFFIX : ""); struct prefix_list *pl; int len = pprefix->max_len + strlen (name) + strlen (file_suffix) + 1; + const char *multilib_name, *multilib_os_name; #ifdef DEFAULT_ASSEMBLER if (! strcmp (name, "as") && access (DEFAULT_ASSEMBLER, mode) == 0) *************** find_a_file (pprefix, name, mode) *** 2504,2509 **** --- 2523,2544 ---- if (machine_suffix) len += strlen (machine_suffix); + multilib_name = name; + multilib_os_name = name; + if (multilib && multilib_os_dir) + { + int len1 = multilib_dir ? strlen (multilib_dir) + 1 : 0; + int len2 = strlen (multilib_os_dir) + 1; + + len += len1 > len2 ? len1 : len2; + if (multilib_dir) + multilib_name = ACONCAT ((multilib_dir, dir_separator_str, name, + NULL)); + if (strcmp (multilib_os_dir, ".") != 0) + multilib_os_name = ACONCAT ((multilib_os_dir, dir_separator_str, name, + NULL)); + } + temp = xmalloc (len); /* Determine the filename to execute (special case for absolute paths). */ *************** find_a_file (pprefix, name, mode) *** 2519,2524 **** --- 2554,2562 ---- else for (pl = pprefix->plist; pl; pl = pl->next) { + const char *this_name + = pl->os_multilib ? multilib_os_name : multilib_name; + if (machine_suffix) { /* Some systems have a suffix for executable files. *************** find_a_file (pprefix, name, mode) *** 2527,2533 **** { strcpy (temp, pl->prefix); strcat (temp, machine_suffix); ! strcat (temp, name); strcat (temp, file_suffix); if (access_check (temp, mode) == 0) { --- 2565,2571 ---- { strcpy (temp, pl->prefix); strcat (temp, machine_suffix); ! strcat (temp, multilib_name); strcat (temp, file_suffix); if (access_check (temp, mode) == 0) { *************** find_a_file (pprefix, name, mode) *** 2537,2546 **** } } ! /* Now try just the name. */ strcpy (temp, pl->prefix); strcat (temp, machine_suffix); ! strcat (temp, name); if (access_check (temp, mode) == 0) { if (pl->used_flag_ptr != 0) --- 2575,2584 ---- } } ! /* Now try just the multilib_name. */ strcpy (temp, pl->prefix); strcat (temp, machine_suffix); ! strcat (temp, multilib_name); if (access_check (temp, mode) == 0) { if (pl->used_flag_ptr != 0) *************** find_a_file (pprefix, name, mode) *** 2559,2565 **** { strcpy (temp, pl->prefix); strcat (temp, just_machine_suffix); ! strcat (temp, name); strcat (temp, file_suffix); if (access_check (temp, mode) == 0) { --- 2597,2603 ---- { strcpy (temp, pl->prefix); strcat (temp, just_machine_suffix); ! strcat (temp, multilib_name); strcat (temp, file_suffix); if (access_check (temp, mode) == 0) { *************** find_a_file (pprefix, name, mode) *** 2571,2577 **** strcpy (temp, pl->prefix); strcat (temp, just_machine_suffix); ! strcat (temp, name); if (access_check (temp, mode) == 0) { if (pl->used_flag_ptr != 0) --- 2609,2615 ---- strcpy (temp, pl->prefix); strcat (temp, just_machine_suffix); ! strcat (temp, multilib_name); if (access_check (temp, mode) == 0) { if (pl->used_flag_ptr != 0) *************** find_a_file (pprefix, name, mode) *** 2589,2595 **** if (file_suffix[0] != 0) { strcpy (temp, pl->prefix); ! strcat (temp, name); strcat (temp, file_suffix); if (access_check (temp, mode) == 0) { --- 2627,2633 ---- if (file_suffix[0] != 0) { strcpy (temp, pl->prefix); ! strcat (temp, this_name); strcat (temp, file_suffix); if (access_check (temp, mode) == 0) { *************** find_a_file (pprefix, name, mode) *** 2600,2606 **** } strcpy (temp, pl->prefix); ! strcat (temp, name); if (access_check (temp, mode) == 0) { if (pl->used_flag_ptr != 0) --- 2638,2644 ---- } strcpy (temp, pl->prefix); ! strcat (temp, this_name); if (access_check (temp, mode) == 0) { if (pl->used_flag_ptr != 0) *************** enum path_prefix_priority *** 2638,2650 **** 2 means try both machine_suffix and just_machine_suffix. */ static void ! add_prefix (pprefix, prefix, component, priority, require_machine_suffix, warn) struct path_prefix *pprefix; const char *prefix; const char *component; /* enum prefix_priority */ int priority; int require_machine_suffix; int *warn; { struct prefix_list *pl, **prev; int len; --- 2676,2690 ---- 2 means try both machine_suffix and just_machine_suffix. */ static void ! add_prefix (pprefix, prefix, component, priority, require_machine_suffix, ! warn, os_multilib) struct path_prefix *pprefix; const char *prefix; const char *component; /* enum prefix_priority */ int priority; int require_machine_suffix; int *warn; + int os_multilib; { struct prefix_list *pl, **prev; int len; *************** add_prefix (pprefix, prefix, component, *** 2666,2671 **** --- 2706,2712 ---- pl->require_machine_suffix = require_machine_suffix; pl->used_flag_ptr = warn; pl->priority = priority; + pl->os_multilib = os_multilib; if (warn) *warn = 0; *************** execute () *** 2709,2715 **** commands[0].prog = argbuf[0]; /* first command. */ commands[0].argv = &argbuf[0]; ! string = find_a_file (&exec_prefixes, commands[0].prog, X_OK); if (string) commands[0].argv[0] = string; --- 2750,2756 ---- commands[0].prog = argbuf[0]; /* first command. */ commands[0].argv = &argbuf[0]; ! string = find_a_file (&exec_prefixes, commands[0].prog, X_OK, 0); if (string) commands[0].argv[0] = string; *************** execute () *** 2723,2729 **** argbuf[i] = 0; /* termination of command args. */ commands[n_commands].prog = argbuf[i + 1]; commands[n_commands].argv = &argbuf[i + 1]; ! string = find_a_file (&exec_prefixes, commands[n_commands].prog, X_OK); if (string) commands[n_commands].argv[0] = string; n_commands++; --- 2764,2771 ---- argbuf[i] = 0; /* termination of command args. */ commands[n_commands].prog = argbuf[i + 1]; commands[n_commands].argv = &argbuf[i + 1]; ! string = find_a_file (&exec_prefixes, commands[n_commands].prog, ! X_OK, 0); if (string) commands[n_commands].argv[0] = string; n_commands++; *************** display_help () *** 3041,3046 **** --- 3083,3089 ---- fputs (_("\ -print-multi-lib Display the mapping between command line options and\n\ multiple library search directories\n"), stdout); + fputs (_(" -print-multi-os-directory Display the relative path to OS libraries\n"), stdout); fputs (_(" -Wa, Pass comma-separated on to the assembler\n"), stdout); fputs (_(" -Wp, Pass comma-separated on to the preprocessor\n"), stdout); fputs (_(" -Wl, Pass comma-separated on to the linker\n"), stdout); *************** process_command (argc, argv) *** 3202,3210 **** set_std_prefix (gcc_exec_prefix, len); add_prefix (&exec_prefixes, gcc_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL); add_prefix (&startfile_prefixes, gcc_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL); } /* COMPILER_PATH and LIBRARY_PATH have values --- 3245,3253 ---- set_std_prefix (gcc_exec_prefix, len); add_prefix (&exec_prefixes, gcc_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL, 0); add_prefix (&startfile_prefixes, gcc_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL, 0); } /* COMPILER_PATH and LIBRARY_PATH have values *************** process_command (argc, argv) *** 3232,3241 **** else nstore[endp - startp] = 0; add_prefix (&exec_prefixes, nstore, 0, ! PREFIX_PRIORITY_LAST, 0, NULL); add_prefix (&include_prefixes, concat (nstore, "include", NULL), ! 0, PREFIX_PRIORITY_LAST, 0, NULL); if (*endp == 0) break; endp = startp = endp + 1; --- 3275,3284 ---- else nstore[endp - startp] = 0; add_prefix (&exec_prefixes, nstore, 0, ! PREFIX_PRIORITY_LAST, 0, NULL, 0); add_prefix (&include_prefixes, concat (nstore, "include", NULL), ! 0, PREFIX_PRIORITY_LAST, 0, NULL, 0); if (*endp == 0) break; endp = startp = endp + 1; *************** process_command (argc, argv) *** 3267,3273 **** else nstore[endp - startp] = 0; add_prefix (&startfile_prefixes, nstore, NULL, ! PREFIX_PRIORITY_LAST, 0, NULL); if (*endp == 0) break; endp = startp = endp + 1; --- 3310,3316 ---- else nstore[endp - startp] = 0; add_prefix (&startfile_prefixes, nstore, NULL, ! PREFIX_PRIORITY_LAST, 0, NULL, 1); if (*endp == 0) break; endp = startp = endp + 1; *************** process_command (argc, argv) *** 3300,3306 **** else nstore[endp - startp] = 0; add_prefix (&startfile_prefixes, nstore, NULL, ! PREFIX_PRIORITY_LAST, 0, NULL); if (*endp == 0) break; endp = startp = endp + 1; --- 3343,3349 ---- else nstore[endp - startp] = 0; add_prefix (&startfile_prefixes, nstore, NULL, ! PREFIX_PRIORITY_LAST, 0, NULL, 1); if (*endp == 0) break; endp = startp = endp + 1; *************** warranty; not even for MERCHANTABILITY o *** 3401,3406 **** --- 3444,3451 ---- print_multi_lib = 1; else if (! strcmp (argv[i], "-print-multi-directory")) print_multi_directory = 1; + else if (! strcmp (argv[i], "-print-multi-os-directory")) + print_multi_os_directory = 1; else if (! strncmp (argv[i], "-Wa,", 4)) { int prev, j; *************** warranty; not even for MERCHANTABILITY o *** 3570,3576 **** { if (len == 7) add_prefix (&include_prefixes, "include", NULL, ! PREFIX_PRIORITY_B_OPT, 0, NULL); else { char * string = xmalloc (len + 1); --- 3615,3621 ---- { if (len == 7) add_prefix (&include_prefixes, "include", NULL, ! PREFIX_PRIORITY_B_OPT, 0, NULL, 0); else { char * string = xmalloc (len + 1); *************** warranty; not even for MERCHANTABILITY o *** 3578,3593 **** strncpy (string, value, len - 7); strcpy (string + len - 7, "include"); add_prefix (&include_prefixes, string, NULL, ! PREFIX_PRIORITY_B_OPT, 0, NULL); } } add_prefix (&exec_prefixes, value, NULL, ! PREFIX_PRIORITY_B_OPT, 0, &warn_B); add_prefix (&startfile_prefixes, value, NULL, ! PREFIX_PRIORITY_B_OPT, 0, &warn_B); add_prefix (&include_prefixes, concat (value, "include", NULL), ! NULL, PREFIX_PRIORITY_B_OPT, 0, NULL); n_switches++; } break; --- 3623,3638 ---- strncpy (string, value, len - 7); strcpy (string + len - 7, "include"); add_prefix (&include_prefixes, string, NULL, ! PREFIX_PRIORITY_B_OPT, 0, NULL, 0); } } add_prefix (&exec_prefixes, value, NULL, ! PREFIX_PRIORITY_B_OPT, 0, &warn_B, 0); add_prefix (&startfile_prefixes, value, NULL, ! PREFIX_PRIORITY_B_OPT, 0, &warn_B, 0); add_prefix (&include_prefixes, concat (value, "include", NULL), ! NULL, PREFIX_PRIORITY_B_OPT, 0, NULL, 0); n_switches++; } break; *************** warranty; not even for MERCHANTABILITY o *** 3760,3776 **** as well as trying the machine and the version. */ #ifndef OS2 add_prefix (&exec_prefixes, standard_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 1, warn_std_ptr); add_prefix (&exec_prefixes, standard_exec_prefix, "BINUTILS", ! PREFIX_PRIORITY_LAST, 2, warn_std_ptr); add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS", ! PREFIX_PRIORITY_LAST, 2, warn_std_ptr); #endif add_prefix (&startfile_prefixes, standard_exec_prefix, "BINUTILS", ! PREFIX_PRIORITY_LAST, 1, warn_std_ptr); add_prefix (&startfile_prefixes, standard_exec_prefix_1, "BINUTILS", ! PREFIX_PRIORITY_LAST, 1, warn_std_ptr); tooldir_prefix = concat (tooldir_base_prefix, spec_machine, dir_separator_str, NULL); --- 3805,3821 ---- as well as trying the machine and the version. */ #ifndef OS2 add_prefix (&exec_prefixes, standard_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 1, warn_std_ptr, 0); add_prefix (&exec_prefixes, standard_exec_prefix, "BINUTILS", ! PREFIX_PRIORITY_LAST, 2, warn_std_ptr, 0); add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS", ! PREFIX_PRIORITY_LAST, 2, warn_std_ptr, 0); #endif add_prefix (&startfile_prefixes, standard_exec_prefix, "BINUTILS", ! PREFIX_PRIORITY_LAST, 1, warn_std_ptr, 0); add_prefix (&startfile_prefixes, standard_exec_prefix_1, "BINUTILS", ! PREFIX_PRIORITY_LAST, 1, warn_std_ptr, 0); tooldir_prefix = concat (tooldir_base_prefix, spec_machine, dir_separator_str, NULL); *************** warranty; not even for MERCHANTABILITY o *** 3793,3803 **** add_prefix (&exec_prefixes, concat (gcc_exec_tooldir_prefix, "bin", dir_separator_str, NULL), ! NULL, PREFIX_PRIORITY_LAST, 0, NULL); add_prefix (&startfile_prefixes, concat (gcc_exec_tooldir_prefix, "lib", dir_separator_str, NULL), ! NULL, PREFIX_PRIORITY_LAST, 0, NULL); } tooldir_prefix = concat (standard_exec_prefix, spec_machine, --- 3838,3848 ---- add_prefix (&exec_prefixes, concat (gcc_exec_tooldir_prefix, "bin", dir_separator_str, NULL), ! NULL, PREFIX_PRIORITY_LAST, 0, NULL, 0); add_prefix (&startfile_prefixes, concat (gcc_exec_tooldir_prefix, "lib", dir_separator_str, NULL), ! NULL, PREFIX_PRIORITY_LAST, 0, NULL, 1); } tooldir_prefix = concat (standard_exec_prefix, spec_machine, *************** warranty; not even for MERCHANTABILITY o *** 3807,3816 **** add_prefix (&exec_prefixes, concat (tooldir_prefix, "bin", dir_separator_str, NULL), ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL); add_prefix (&startfile_prefixes, concat (tooldir_prefix, "lib", dir_separator_str, NULL), ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL); /* More prefixes are enabled in main, after we read the specs file and determine whether this is cross-compilation or not. */ --- 3852,3861 ---- add_prefix (&exec_prefixes, concat (tooldir_prefix, "bin", dir_separator_str, NULL), ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 0); add_prefix (&startfile_prefixes, concat (tooldir_prefix, "lib", dir_separator_str, NULL), ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1); /* More prefixes are enabled in main, after we read the specs file and determine whether this is cross-compilation or not. */ *************** warranty; not even for MERCHANTABILITY o *** 3860,3865 **** --- 3905,3912 ---- ; else if (! strcmp (argv[i], "-print-multi-directory")) ; + else if (! strcmp (argv[i], "-print-multi-os-directory")) + ; else if (! strcmp (argv[i], "-ftarget-help")) ; else if (! strcmp (argv[i], "-fhelp")) *************** do_spec_1 (spec, inswitch, soft_matched_ *** 4363,4371 **** continue; #endif /* Try subdirectory if there is one. */ ! if (multilib_dir != NULL) { ! if (machine_suffix) { if (strlen (pl->prefix) + strlen (machine_suffix) >= bufsize) --- 4410,4423 ---- continue; #endif /* Try subdirectory if there is one. */ ! if (multilib_dir != NULL ! || (pl->os_multilib && multilib_os_dir != NULL)) { ! const char *multi_dir; ! ! multi_dir = pl->os_multilib ? multilib_os_dir ! : multilib_dir; ! if (machine_suffix && multilib_dir) { if (strlen (pl->prefix) + strlen (machine_suffix) >= bufsize) *************** do_spec_1 (spec, inswitch, soft_matched_ *** 4388,4401 **** } if (!pl->require_machine_suffix) { ! if (is_directory (pl->prefix, multilib_dir, 1)) { do_spec_1 ("-L", 0, NULL); #ifdef SPACE_AFTER_L_OPTION do_spec_1 (" ", 0, NULL); #endif do_spec_1 (pl->prefix, 1, NULL); ! do_spec_1 (multilib_dir, 1, NULL); /* Make this a separate argument. */ do_spec_1 (" ", 0, NULL); } --- 4440,4453 ---- } if (!pl->require_machine_suffix) { ! if (is_directory (pl->prefix, multi_dir, 1)) { do_spec_1 ("-L", 0, NULL); #ifdef SPACE_AFTER_L_OPTION do_spec_1 (" ", 0, NULL); #endif do_spec_1 (pl->prefix, 1, NULL); ! do_spec_1 (multi_dir, 1, NULL); /* Make this a separate argument. */ do_spec_1 (" ", 0, NULL); } *************** find_file (name) *** 5616,5626 **** char *newname; /* Try multilib_dir if it is defined. */ ! if (multilib_dir != NULL) { ! const char *const try = ACONCAT ((multilib_dir, dir_separator_str, name, NULL)); ! ! newname = find_a_file (&startfile_prefixes, try, R_OK); /* If we don't find it in the multi library dir, then fall through and look for it in the normal places. */ --- 5668,5676 ---- char *newname; /* Try multilib_dir if it is defined. */ ! if (multilib_os_dir != NULL) { ! newname = find_a_file (&startfile_prefixes, name, R_OK, 1); /* If we don't find it in the multi library dir, then fall through and look for it in the normal places. */ *************** find_file (name) *** 5628,5634 **** return newname; } ! newname = find_a_file (&startfile_prefixes, name, R_OK); return newname ? newname : name; } --- 5678,5684 ---- return newname; } ! newname = find_a_file (&startfile_prefixes, name, R_OK, 0); return newname ? newname : name; } *************** main (argc, argv) *** 5863,5869 **** spec_version, dir_separator_str, NULL); just_machine_suffix = concat (spec_machine, dir_separator_str, NULL); ! specs_file = find_a_file (&startfile_prefixes, "specs", R_OK); /* Read the specs file unless it is a default one. */ if (specs_file != 0 && strcmp (specs_file, "specs")) read_specs (specs_file, TRUE); --- 5913,5919 ---- spec_version, dir_separator_str, NULL); just_machine_suffix = concat (spec_machine, dir_separator_str, NULL); ! specs_file = find_a_file (&startfile_prefixes, "specs", R_OK, 0); /* Read the specs file unless it is a default one. */ if (specs_file != 0 && strcmp (specs_file, "specs")) read_specs (specs_file, TRUE); *************** main (argc, argv) *** 5888,5905 **** if (*md_exec_prefix) { add_prefix (&exec_prefixes, md_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL); add_prefix (&startfile_prefixes, md_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL); } if (*md_startfile_prefix) add_prefix (&startfile_prefixes, md_startfile_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL); if (*md_startfile_prefix_1) add_prefix (&startfile_prefixes, md_startfile_prefix_1, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL); /* If standard_startfile_prefix is relative, base it on standard_exec_prefix. This lets us move the installed tree --- 5938,5955 ---- if (*md_exec_prefix) { add_prefix (&exec_prefixes, md_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL, 0); add_prefix (&startfile_prefixes, md_exec_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL, 0); } if (*md_startfile_prefix) add_prefix (&startfile_prefixes, md_startfile_prefix, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL, 1); if (*md_startfile_prefix_1) add_prefix (&startfile_prefixes, md_startfile_prefix_1, "GCC", ! PREFIX_PRIORITY_LAST, 0, NULL, 1); /* If standard_startfile_prefix is relative, base it on standard_exec_prefix. This lets us move the installed tree *************** main (argc, argv) *** 5907,5934 **** standard_startfile_prefix on that as well. */ if (IS_ABSOLUTE_PATHNAME (standard_startfile_prefix)) add_prefix (&startfile_prefixes, standard_startfile_prefix, "BINUTILS", ! PREFIX_PRIORITY_LAST, 0, NULL); else { if (gcc_exec_prefix) add_prefix (&startfile_prefixes, concat (gcc_exec_prefix, machine_suffix, standard_startfile_prefix, NULL), ! NULL, PREFIX_PRIORITY_LAST, 0, NULL); add_prefix (&startfile_prefixes, concat (standard_exec_prefix, machine_suffix, standard_startfile_prefix, NULL), ! NULL, PREFIX_PRIORITY_LAST, 0, NULL); } add_prefix (&startfile_prefixes, standard_startfile_prefix_1, ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL); add_prefix (&startfile_prefixes, standard_startfile_prefix_2, ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL); #if 0 /* Can cause surprises, and one can use -B./ instead. */ add_prefix (&startfile_prefixes, "./", NULL, ! PREFIX_PRIORITY_LAST, 1, NULL); #endif } else --- 5957,5984 ---- standard_startfile_prefix on that as well. */ if (IS_ABSOLUTE_PATHNAME (standard_startfile_prefix)) add_prefix (&startfile_prefixes, standard_startfile_prefix, "BINUTILS", ! PREFIX_PRIORITY_LAST, 0, NULL, 1); else { if (gcc_exec_prefix) add_prefix (&startfile_prefixes, concat (gcc_exec_prefix, machine_suffix, standard_startfile_prefix, NULL), ! NULL, PREFIX_PRIORITY_LAST, 0, NULL, 1); add_prefix (&startfile_prefixes, concat (standard_exec_prefix, machine_suffix, standard_startfile_prefix, NULL), ! NULL, PREFIX_PRIORITY_LAST, 0, NULL, 1); } add_prefix (&startfile_prefixes, standard_startfile_prefix_1, ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1); add_prefix (&startfile_prefixes, standard_startfile_prefix_2, ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1); #if 0 /* Can cause surprises, and one can use -B./ instead. */ add_prefix (&startfile_prefixes, "./", NULL, ! PREFIX_PRIORITY_LAST, 1, NULL, 0); #endif } else *************** main (argc, argv) *** 5938,5951 **** add_prefix (&startfile_prefixes, concat (gcc_exec_prefix, machine_suffix, standard_startfile_prefix, NULL), ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL); } /* Process any user specified specs in the order given on the command line. */ for (uptr = user_specs_head; uptr; uptr = uptr->next) { ! char *filename = find_a_file (&startfile_prefixes, uptr->filename, R_OK); read_specs (filename ? filename : uptr->filename, FALSE); } --- 5988,6002 ---- add_prefix (&startfile_prefixes, concat (gcc_exec_prefix, machine_suffix, standard_startfile_prefix, NULL), ! "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1); } /* Process any user specified specs in the order given on the command line. */ for (uptr = user_specs_head; uptr; uptr = uptr->next) { ! char *filename = find_a_file (&startfile_prefixes, uptr->filename, ! R_OK, 0); read_specs (filename ? filename : uptr->filename, FALSE); } *************** main (argc, argv) *** 5987,5993 **** if (print_prog_name) { ! char *newname = find_a_file (&exec_prefixes, print_prog_name, X_OK); printf ("%s\n", (newname ? newname : print_prog_name)); return (0); } --- 6038,6044 ---- if (print_prog_name) { ! char *newname = find_a_file (&exec_prefixes, print_prog_name, X_OK, 0); printf ("%s\n", (newname ? newname : print_prog_name)); return (0); } *************** main (argc, argv) *** 6007,6012 **** --- 6058,6072 ---- return (0); } + if (print_multi_os_directory) + { + if (multilib_os_dir == NULL) + printf (".\n"); + else + printf ("%s\n", multilib_os_dir); + return (0); + } + if (target_help_flag) { /* Print if any target specific options. */ *************** main (argc, argv) *** 6166,6172 **** /* We'll use ld if we can't find collect2. */ if (! strcmp (linker_name_spec, "collect2")) { ! char *s = find_a_file (&exec_prefixes, "collect2", X_OK); if (s == NULL) linker_name_spec = "ld"; } --- 6226,6232 ---- /* We'll use ld if we can't find collect2. */ if (! strcmp (linker_name_spec, "collect2")) { ! char *s = find_a_file (&exec_prefixes, "collect2", X_OK, 0); if (s == NULL) linker_name_spec = "ld"; } *************** next_member: *** 6460,6465 **** --- 6520,6534 ---- goto next_member; } + struct mdswitchstr + { + const char *str; + int len; + }; + + static struct mdswitchstr *mdswitches; + static int n_mdswitches; + /* Check whether a particular argument was used. The first time we canonicalize the switches to keep only the ones we care about. */ *************** used_arg (p, len) *** 6525,6532 **** xmalloc from calling fatal, and prevents us from re-executing this block of code. */ mswitches ! = (struct mswitchstr *) xmalloc ((sizeof (struct mswitchstr)) ! * (n_switches ? n_switches : 1)); for (i = 0; i < n_switches; i++) { int xlen = strlen (switches[i].part1); --- 6594,6602 ---- xmalloc from calling fatal, and prevents us from re-executing this block of code. */ mswitches ! = (struct mswitchstr *) ! xmalloc (sizeof (struct mswitchstr) ! * (n_mdswitches + (n_switches ? n_switches : 1))); for (i = 0; i < n_switches; i++) { int xlen = strlen (switches[i].part1); *************** used_arg (p, len) *** 6542,6547 **** --- 6612,6668 ---- break; } } + + /* Add MULTILIB_DEFAULTS switches too, as long as they were not present + on the command line nor any options mutually incompatible with + them. */ + for (i = 0; i < n_mdswitches; i++) + { + const char *r; + + for (q = multilib_options; *q != '\0'; q++) + { + while (*q == ' ') + q++; + + r = q; + while (strncmp (q, mdswitches[i].str, mdswitches[i].len) != 0 + || strchr (" /", q[mdswitches[i].len]) == NULL) + { + while (*q != ' ' && *q != '/' && *q != '\0') + q++; + if (*q != '/') + break; + q++; + } + + if (*q != ' ' && *q != '\0') + { + while (*r != ' ' && *r != '\0') + { + q = r; + while (*q != ' ' && *q != '/' && *q != '\0') + q++; + + if (used_arg (r, q - r)) + break; + + if (*q != '/') + { + mswitches[n_mswitches].str = mdswitches[i].str; + mswitches[n_mswitches].len = mdswitches[i].len; + mswitches[n_mswitches].replace = (char *) 0; + mswitches[n_mswitches].rep_len = 0; + n_mswitches++; + break; + } + + r = q + 1; + } + break; + } + } + } } for (i = 0; i < n_mswitches; i++) *************** default_arg (p, len) *** 6556,6580 **** const char *p; int len; { ! const char *start, *end; ! ! for (start = multilib_defaults; *start != '\0'; start = end + 1) ! { ! while (*start == ' ' || *start == '\t') ! start++; ! ! if (*start == '\0') ! break; ! ! for (end = start + 1; *end != ' ' && *end != '\t' && *end != '\0'; end++) ! ; ! ! if ((end - start) == len && strncmp (p, start, len) == 0) ! return 1; ! if (*end == '\0') ! break; ! } return 0; } --- 6677,6687 ---- const char *p; int len; { ! int i; ! for (i = 0; i < n_mdswitches; i++) ! if (len == mdswitches[i].len && ! strncmp (p, mdswitches[i].str, len)) ! return 1; return 0; } *************** set_multilib_dir () *** 6596,6603 **** const char *p; unsigned int this_path_len; const char *this_path, *this_arg; int not_arg; ! int ok; p = multilib_exclusions; while (*p != '\0') --- 6703,6753 ---- const char *p; unsigned int this_path_len; const char *this_path, *this_arg; + const char *start, *end; int not_arg; ! int ok, ndfltok, first; ! ! n_mdswitches = 0; ! start = multilib_defaults; ! while (*start == ' ' || *start == '\t') ! start++; ! while (*start != '\0') ! { ! n_mdswitches++; ! while (*start != ' ' && *start != '\t' && *start != '\0') ! start++; ! while (*start == ' ' || *start == '\t') ! start++; ! } ! ! if (n_mdswitches) ! { ! int i = 0; ! ! mdswitches ! = (struct mdswitchstr *) xmalloc (sizeof (struct mdswitchstr) ! * n_mdswitches); ! for (start = multilib_defaults; *start != '\0'; start = end + 1) ! { ! while (*start == ' ' || *start == '\t') ! start++; ! ! if (*start == '\0') ! break; ! ! for (end = start + 1; ! *end != ' ' && *end != '\t' && *end != '\0'; end++) ! ; ! ! obstack_grow (&multilib_obstack, start, end - start); ! obstack_1grow (&multilib_obstack, 0); ! mdswitches[i].str = obstack_finish (&multilib_obstack); ! mdswitches[i++].len = end - start; ! ! if (*end == '\0') ! break; ! } ! } p = multilib_exclusions; while (*p != '\0') *************** set_multilib_dir () *** 6652,6657 **** --- 6802,6808 ---- ++p; } + first = 1; p = multilib_select; while (*p != '\0') { *************** set_multilib_dir () *** 6674,6679 **** --- 6825,6831 ---- /* Check the arguments. */ ok = 1; + ndfltok = 1; ++p; while (*p != ';') { *************** set_multilib_dir () *** 6709,6740 **** there is a more specific library which uses this argument. If this argument is a default, we need not consider that more specific library. */ ! if (! default_arg (this_arg, p - this_arg)) ! { ! ok = used_arg (this_arg, p - this_arg); ! if (not_arg) ! ok = ! ok; ! } if (*p == ' ') ++p; } ! if (ok) { if (this_path_len != 1 || this_path[0] != '.') { char *new_multilib_dir = xmalloc (this_path_len + 1); strncpy (new_multilib_dir, this_path, this_path_len); new_multilib_dir[this_path_len] = '\0'; multilib_dir = new_multilib_dir; } ! break; } ++p; } } /* Print out the multiple library subdirectory selection --- 6861,6925 ---- there is a more specific library which uses this argument. If this argument is a default, we need not consider that more specific library. */ ! ok = used_arg (this_arg, p - this_arg); ! if (not_arg) ! ok = ! ok; ! ! if (! ok) ! ndfltok = 0; ! ! if (default_arg (this_arg, p - this_arg)) ! ok = 1; if (*p == ' ') ++p; } ! if (ok && first) { if (this_path_len != 1 || this_path[0] != '.') { char *new_multilib_dir = xmalloc (this_path_len + 1); + char *q; + strncpy (new_multilib_dir, this_path, this_path_len); new_multilib_dir[this_path_len] = '\0'; + q = strchr (new_multilib_dir, ':'); + if (q != NULL) + *q = '\0'; multilib_dir = new_multilib_dir; } ! first = 0; ! } ! ! if (ndfltok) ! { ! const char *q = this_path, *end = this_path + this_path_len; ! ! while (q < end && *q != ':') ! q++; ! if (q < end) ! { ! char *new_multilib_os_dir = xmalloc (end - q); ! memcpy (new_multilib_os_dir, q + 1, end - q - 1); ! new_multilib_os_dir[end - q - 1] = '\0'; ! multilib_os_dir = new_multilib_os_dir; ! break; ! } } ++p; } + + if (multilib_dir == NULL && multilib_os_dir != NULL + && strcmp (multilib_os_dir, ".") == 0) + { + free ((char *) multilib_os_dir); + multilib_os_dir = NULL; + } + else if (multilib_dir != NULL && multilib_os_dir == NULL) + multilib_os_dir = multilib_dir; } /* Print out the multiple library subdirectory selection *************** print_multilib_info () *** 6774,6779 **** --- 6959,6970 ---- ++p; } + /* When --disable-multilib was used but target defines + MULTILIB_OSDIRNAMES, entries starting with .: are there just + to find multilib_os_dir, so skip them from output. */ + if (this_path[0] == '.' && this_path[1] == ':') + skip = 1; + /* Check for matches with the multilib_exclusions. We don't bother with the '!' in either list. If any of the exclusion rules match all of its options with the select rule, we skip it. */ *************** print_multilib_info () *** 6915,6921 **** { const char *p1; ! for (p1 = last_path; p1 < p; p1++) putchar (*p1); putchar (';'); } --- 7106,7112 ---- { const char *p1; ! for (p1 = last_path; p1 < p && *p1 != ':'; p1++) putchar (*p1); putchar (';'); } diff -Nrc3pad gcc-3.2/gcc/genmultilib gcc-3.2.1/gcc/genmultilib *** gcc-3.2/gcc/genmultilib Sun Oct 7 18:02:43 2001 --- gcc-3.2.1/gcc/genmultilib Sat Oct 5 21:32:06 2002 *************** *** 63,68 **** --- 63,76 ---- # for the rule to exclude a set. Options can be preceded with a '!' to # match a logical NOT. + # The optional sevenths argument is a list of OS subdirectory names. + # The format is the same as of the second argument. + # The difference is that second argument describes multilib directories + # in GCC conventions, while this one the OS multilib convention. + + # The last option should be "yes" if multilibs are enabled. If it is not + # "yes", all GCC multilib dir names will be ".". + # The output looks like # #define MULTILIB_MATCHES "\ # SUBDIRECTORY OPTIONS;\ *************** *** 79,95 **** # Here is an example (this is from the actual sparc64 case): # genmultilib 'm64/m32 mno-app-regs|mcmodel=medany' '64 32 alt' # 'mcmodel?medany=mcmodel?medmid' 'm32/mno-app-regs* m32/mcmodel=*' ! # 'm32/!m64/mno-app-regs m32/!m64/mcmodel=medany' # This produces: # ". !m64 !m32 !mno-app-regs !mcmodel=medany;", ! # "64 m64 !m32 !mno-app-regs !mcmodel=medany;", ! # "32 !m64 m32 !mno-app-regs !mcmodel=medany;", # "alt !m64 !m32 mno-app-regs mcmodel=medany;", # "alt !m64 !m32 mno-app-regs !mcmodel=medany;", # "alt !m64 !m32 !mno-app-regs mcmodel=medany;", ! # "64/alt m64 !m32 mno-app-regs mcmodel=medany;", ! # "64/alt m64 !m32 mno-app-regs !mcmodel=medany;", ! # "64/alt m64 !m32 !mno-app-regs mcmodel=medany;", # # The effect is that `gcc -mno-app-regs' (for example) will append "alt" # to the directory name when searching for libraries or startup files and --- 87,104 ---- # Here is an example (this is from the actual sparc64 case): # genmultilib 'm64/m32 mno-app-regs|mcmodel=medany' '64 32 alt' # 'mcmodel?medany=mcmodel?medmid' 'm32/mno-app-regs* m32/mcmodel=*' ! # '' 'm32/!m64/mno-app-regs m32/!m64/mcmodel=medany' ! # '../lib64 ../lib32 alt' yes # This produces: # ". !m64 !m32 !mno-app-regs !mcmodel=medany;", ! # "64:../lib64 m64 !m32 !mno-app-regs !mcmodel=medany;", ! # "32:../lib32 !m64 m32 !mno-app-regs !mcmodel=medany;", # "alt !m64 !m32 mno-app-regs mcmodel=medany;", # "alt !m64 !m32 mno-app-regs !mcmodel=medany;", # "alt !m64 !m32 !mno-app-regs mcmodel=medany;", ! # "64/alt:../lib64/alt m64 !m32 mno-app-regs mcmodel=medany;", ! # "64/alt:../lib64/alt m64 !m32 mno-app-regs !mcmodel=medany;", ! # "64/alt:../lib64/alt m64 !m32 !mno-app-regs mcmodel=medany;", # # The effect is that `gcc -mno-app-regs' (for example) will append "alt" # to the directory name when searching for libraries or startup files and *************** matches=$3 *** 106,111 **** --- 115,122 ---- exceptions=$4 extra=$5 exclusions=$6 + osdirnames=$7 + enable_multilib=$8 echo "static const char *const multilib_raw[] = {" *************** if [ -n "${dirnames}" ]; then *** 202,207 **** --- 213,241 ---- done fi + # Construct a sed pattern which will convert option names to OS directory + # names. + toosdirnames= + if [ -n "${osdirnames}" ]; then + set x ${osdirnames} + shift + for set in ${options}; do + for opts in `echo ${set} | sed -e 's|/| |'g`; do + patt="/" + for opt in `echo ${opts} | sed -e 's_|_ _'g`; do + if [ "$1" != "${opt}" ]; then + toosdirnames="${toosdirnames} -e s|/${opt}/|/${1}/|g" + patt="${patt}${1}/" + if [ "${patt}" != "/${1}/" ]; then + toosdirnames="${toosdirnames} -e s|${patt}|/${1}/|g" + fi + fi + done + shift + done + done + fi + # We need another recursive shell script to correctly handle positive # matches. If we are invoked as # genmultilib "opt1 opt2" "" "opt1=nopt1 opt2=nopt2" *************** for combo in ${combinations}; do *** 257,262 **** --- 291,315 ---- # Remove the leading and trailing slashes. dirout=`echo ${dirout} | sed -e 's|^/||' -e 's|/$||g'` + # Use the OS directory names rather than the option names. + if [ -n "${toosdirnames}" ]; then + osdirout=`echo ${combo} | sed ${toosdirnames}` + # Remove the leading and trailing slashes. + osdirout=`echo ${osdirout} | sed -e 's|^/||' -e 's|/$||g'` + if [ "x${enable_multilib}" != xyes ]; then + dirout=".:${osdirout}" + else + dirout="${dirout}:${osdirout}" + fi + else + if [ "x${enable_multilib}" != xyes ]; then + # genmultilib with --disable-multilib should be + # called with '' '' '' '' '' '' '' no + # if MULTILIB_OSDIRNAMES is empty. + exit 1 + fi + fi + # Look through the options. We must output each option that is # present, and negate each option that is not present. optout= *************** done *** 313,318 **** --- 366,376 ---- echo "NULL" echo "};" + # Output the options now + moptions=`echo ${options} | sed -e 's,[ ][ ]*, ,g'` + echo "" + echo "static const char *multilib_options = \"${moptions}\";" + rm -f tmpmultilib2 exit 0 diff -Nrc3pad gcc-3.2/gcc/haifa-sched.c gcc-3.2.1/gcc/haifa-sched.c *** gcc-3.2/gcc/haifa-sched.c Thu Feb 28 18:29:05 2002 --- gcc-3.2.1/gcc/haifa-sched.c Mon Aug 19 18:59:31 2002 *************** move_insn (insn, last) *** 1601,1606 **** --- 1601,1608 ---- retval = reemit_notes (insn, insn); else reemit_notes (insn, insn); + /* Consume SCHED_GROUP_P flag. */ + SCHED_GROUP_P (insn) = 0; insn = prev; } *************** schedule_block (b, rgn_n_insns) *** 1764,1770 **** can_issue_more = (*targetm.sched.variable_issue) (sched_dump, sched_verbose, insn, can_issue_more); ! else can_issue_more--; schedule_insn (insn, &ready, clock_var); --- 1766,1775 ---- can_issue_more = (*targetm.sched.variable_issue) (sched_dump, sched_verbose, insn, can_issue_more); ! /* A naked CLOBBER or USE generates no instruction, so do ! not count them against the issue rate. */ ! else if (GET_CODE (PATTERN (insn)) != USE ! && GET_CODE (PATTERN (insn)) != CLOBBER) can_issue_more--; schedule_insn (insn, &ready, clock_var); diff -Nrc3pad gcc-3.2/gcc/hooks.c gcc-3.2.1/gcc/hooks.c *** gcc-3.2/gcc/hooks.c Thu May 23 17:57:27 2002 --- gcc-3.2.1/gcc/hooks.c Fri Oct 25 22:11:08 2002 *************** hook_void_bool_false () *** 38,40 **** --- 38,48 ---- { return false; } + + /* Generic hook that takes (tree) and returns false. */ + bool + hook_tree_bool_false (a) + tree a ATTRIBUTE_UNUSED; + { + return false; + } diff -Nrc3pad gcc-3.2/gcc/hooks.h gcc-3.2.1/gcc/hooks.h *** gcc-3.2/gcc/hooks.h Thu May 23 17:57:27 2002 --- gcc-3.2.1/gcc/hooks.h Fri Oct 25 22:11:08 2002 *************** Foundation, 59 Temple Place - Suite 330, *** 24,28 **** --- 24,29 ---- bool hook_void_bool_false PARAMS ((void)); void hook_void_void PARAMS ((void)); + bool hook_tree_bool_false PARAMS ((tree)); #endif diff -Nrc3pad gcc-3.2/gcc/intl/ChangeLog gcc-3.2.1/gcc/intl/ChangeLog *** gcc-3.2/gcc/intl/ChangeLog Wed Aug 14 09:00:18 2002 --- gcc-3.2.1/gcc/intl/ChangeLog Tue Nov 19 17:49:05 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/gcc/java/ChangeLog gcc-3.2.1/gcc/java/ChangeLog *** gcc-3.2/gcc/java/ChangeLog Wed Aug 14 09:00:24 2002 --- gcc-3.2.1/gcc/java/ChangeLog Tue Nov 19 17:49:12 2002 *************** *** 1,3 **** --- 1,38 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-10-21 Matthias Klose + + * Backport, without whitespace change: + + 2002-06-10 Akim Demaille + * parse.y (interface_type_list, class_member_declaration) + (unary_expression_not_plus_minus): Remove duplicate %type. + Whitespace changes. + + 2002-06-13 Akim Demaille + * parse.y (class_declaration, interface_declaration): Make sure + all their rules have an action, in order to avoid meaningless `$$ + = $1' and their type clashes. + + * parse.y (catch_clause): Terminate with `;'. + + 2002-10-06 Roger Sayle + + PR optimization/6627 + * java/lang.c (java_init): If storing the vbit in function + pointers, ensure that force_align_functions_log is atleast + one to aid compatability with g++ vtables. + 2002-08-14 Release Manager * GCC 3.2 Released. *************** Tue Apr 23 14:31:23 2002 Anthony Green *** 104,110 **** * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned HOST_WIDE_INT for num. Use JPOOL_UINT to get it. CONSTANT_Double: Use JPOOL_UINT to get both halves of a double. ! 2002-04-18 Bryce McKinlay * class.c (make_class_data): Set DECL_ALIGN on static class data, --- 139,145 ---- * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned HOST_WIDE_INT for num. Use JPOOL_UINT to get it. CONSTANT_Double: Use JPOOL_UINT to get both halves of a double. ! 2002-04-18 Bryce McKinlay * class.c (make_class_data): Set DECL_ALIGN on static class data, *************** Tue Apr 23 14:31:23 2002 Anthony Green *** 112,118 **** * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects. * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for class_type_node. ! 2002-04-16 Mark Wielaard * jcf-write.c (generate_bytecode_insns): Only write const_0 if not --- 147,153 ---- * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects. * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for class_type_node. ! 2002-04-16 Mark Wielaard * jcf-write.c (generate_bytecode_insns): Only write const_0 if not diff -Nrc3pad gcc-3.2/gcc/java/gcj.1 gcc-3.2.1/gcc/java/gcj.1 *** gcc-3.2/gcc/java/gcj.1 Wed Aug 14 09:36:43 2002 --- gcc-3.2.1/gcc/java/gcj.1 Tue Nov 19 18:17:21 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:42 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:21 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCJ 1" ! .TH GCJ 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" gcj \- Ahead-of-time compiler for the Java language --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCJ 1" ! .TH GCJ 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" gcj \- Ahead-of-time compiler for the Java language diff -Nrc3pad gcc-3.2/gcc/java/gcjh.1 gcc-3.2.1/gcc/java/gcjh.1 *** gcc-3.2/gcc/java/gcjh.1 Wed Aug 14 09:36:43 2002 --- gcc-3.2.1/gcc/java/gcjh.1 Tue Nov 19 18:17:21 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:43 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:21 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCJH 1" ! .TH GCJH 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" gcjh \- generate header files from Java class files --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCJH 1" ! .TH GCJH 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" gcjh \- generate header files from Java class files diff -Nrc3pad gcc-3.2/gcc/java/gij.1 gcc-3.2.1/gcc/java/gij.1 *** gcc-3.2/gcc/java/gij.1 Wed Aug 14 09:36:44 2002 --- gcc-3.2.1/gcc/java/gij.1 Tue Nov 19 18:17:22 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:43 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:22 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GIJ 1" ! .TH GIJ 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" gij \- \s-1GNU\s0 interpreter for Java bytecode --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GIJ 1" ! .TH GIJ 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" gij \- \s-1GNU\s0 interpreter for Java bytecode diff -Nrc3pad gcc-3.2/gcc/java/jcf-dump.1 gcc-3.2.1/gcc/java/jcf-dump.1 *** gcc-3.2/gcc/java/jcf-dump.1 Wed Aug 14 09:36:43 2002 --- gcc-3.2.1/gcc/java/jcf-dump.1 Tue Nov 19 18:17:22 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:43 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:22 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "JCF-DUMP 1" ! .TH JCF-DUMP 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" jcf-dump \- print information about Java class files --- 138,144 ---- .\" ====================================================================== .\" .IX Title "JCF-DUMP 1" ! .TH JCF-DUMP 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" jcf-dump \- print information about Java class files diff -Nrc3pad gcc-3.2/gcc/java/jv-convert.1 gcc-3.2.1/gcc/java/jv-convert.1 *** gcc-3.2/gcc/java/jv-convert.1 Wed Aug 14 09:36:44 2002 --- gcc-3.2.1/gcc/java/jv-convert.1 Tue Nov 19 18:17:22 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:44 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:22 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "JV-CONVERT 1" ! .TH JV-CONVERT 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" jv-convert \- Convert file from one encoding to another --- 138,144 ---- .\" ====================================================================== .\" .IX Title "JV-CONVERT 1" ! .TH JV-CONVERT 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" jv-convert \- Convert file from one encoding to another diff -Nrc3pad gcc-3.2/gcc/java/jv-scan.1 gcc-3.2.1/gcc/java/jv-scan.1 *** gcc-3.2/gcc/java/jv-scan.1 Wed Aug 14 09:36:43 2002 --- gcc-3.2.1/gcc/java/jv-scan.1 Tue Nov 19 18:17:21 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:43 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:21 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "JV-SCAN 1" ! .TH JV-SCAN 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" jv-scan \- print information about Java source file --- 138,144 ---- .\" ====================================================================== .\" .IX Title "JV-SCAN 1" ! .TH JV-SCAN 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" jv-scan \- print information about Java source file diff -Nrc3pad gcc-3.2/gcc/java/lang.c gcc-3.2.1/gcc/java/lang.c *** gcc-3.2/gcc/java/lang.c Tue Jun 11 06:20:12 2002 --- gcc-3.2.1/gcc/java/lang.c Sun Oct 6 23:02:12 2002 *************** java_init (filename) *** 458,463 **** --- 458,470 ---- flag_minimal_debug = 0; #endif + /* Force minimum function alignment if g++ uses the least significant + bit of function pointers to store the virtual bit. This is required + to keep vtables compatible. */ + if (TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_pfn + && force_align_functions_log < 1) + force_align_functions_log = 1; + /* Open input file. */ if (filename == 0 || !strcmp (filename, "-")) diff -Nrc3pad gcc-3.2/gcc/java/parse-scan.c gcc-3.2.1/gcc/java/parse-scan.c *** gcc-3.2/gcc/java/parse-scan.c Wed Aug 14 09:51:19 2002 --- gcc-3.2.1/gcc/java/parse-scan.c Tue Nov 19 18:32:06 2002 *************** *** 1,5 **** ! /* A Bison parser, made from /home/mitchell/gcc-3.2/gcc-3.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 /home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ *************** *** 113,119 **** #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 37 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" #define JC1_LITE --- 113,119 ---- #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 37 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" #define JC1_LITE *************** void report PARAMS ((void)); *** 189,201 **** #include "lex.h" #include "parse.h" ! #line 113 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" typedef union { char *node; struct method_declarator *declarator; int value; /* For modifiers */ } YYSTYPE; ! #line 119 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" #include "lex.c" #ifndef YYDEBUG --- 189,201 ---- #include "lex.h" #include "parse.h" ! #line 113 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" typedef union { char *node; struct method_declarator *declarator; int value; /* For modifiers */ } YYSTYPE; ! #line 119 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" #include "lex.c" #ifndef YYDEBUG *************** yyreduce: *** 1939,1990 **** switch (yyn) { case 10: ! #line 211 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("int"); ; break;} case 11: ! #line 216 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("double"); ; break;} case 12: ! #line 221 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("boolean"); ; break;} case 18: ! #line 246 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 19: ! #line 251 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 23: ! #line 269 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); ; break;} case 37: ! #line 301 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { package_name = yyvsp[-1].node; ; break;} case 45: ! #line 328 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; --- 1939,1990 ---- switch (yyn) { case 10: ! #line 211 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("int"); ; break;} case 11: ! #line 216 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("double"); ; break;} case 12: ! #line 221 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { /* use preset global here. FIXME */ yyval.node = xstrdup ("boolean"); ; break;} case 18: ! #line 246 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 19: ! #line 251 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { while (bracket_count-- > 0) yyval.node = concat ("[", yyvsp[-1].node, NULL); ; break;} case 23: ! #line 269 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL); ; break;} case 37: ! #line 301 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { package_name = yyvsp[-1].node; ; break;} case 45: ! #line 328 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; *************** case 45: *** 1994,2000 **** ; break;} case 46: ! #line 336 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; --- 1994,2000 ---- ; break;} case 46: ! #line 336 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { if (yyvsp[0].value == PUBLIC_TK) modifier_value++; *************** case 46: *** 2004,2068 **** ; break;} case 47: ! #line 348 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); modifier_value = 0; ; break;} case 49: ! #line 354 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); ; break;} case 55: ! #line 368 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 56: ! #line 370 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 57: ! #line 375 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 58: ! #line 377 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 70: ! #line 403 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 71: ! #line 405 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 76: ! #line 421 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { bracket_count = 0; USE_ABSORBER; ; break;} case 77: ! #line 423 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++bracket_count; ; break;} case 81: ! #line 438 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 83: ! #line 441 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 84: ! #line 443 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_main_declaration (yyvsp[-1].declarator); modifier_value = 0; ; break;} case 85: ! #line 451 "/home/mitchell/gcc-3.2/gcc-3.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 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); modifier_value = 0; ; break;} case 49: ! #line 354 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_class_declaration(yyvsp[-2].node); ; break;} case 55: ! #line 368 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 56: ! #line 370 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 57: ! #line 375 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 58: ! #line 377 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 70: ! #line 403 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 71: ! #line 405 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 76: ! #line 421 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { bracket_count = 0; USE_ABSORBER; ; break;} case 77: ! #line 423 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++bracket_count; ; break;} case 81: ! #line 438 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 83: ! #line 441 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 84: ! #line 443 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_main_declaration (yyvsp[-1].declarator); modifier_value = 0; ; break;} case 85: ! #line 451 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL); *************** case 85: *** 2070,2076 **** ; break;} case 86: ! #line 457 "/home/mitchell/gcc-3.2/gcc-3.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 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { struct method_declarator *d; NEW_METHOD_DECLARATOR (d, yyvsp[-3].node, yyvsp[-1].node); *************** case 86: *** 2078,2090 **** ; break;} case 89: ! #line 468 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); ; break;} case 90: ! #line 475 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; if (bracket_count) --- 2078,2090 ---- ; break;} case 89: ! #line 468 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL); ; break;} case 90: ! #line 475 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; if (bracket_count) *************** case 90: *** 2101,2107 **** ; break;} case 91: ! #line 490 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { if (bracket_count) { --- 2101,2107 ---- ; break;} case 91: ! #line 490 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { if (bracket_count) { *************** case 91: *** 2117,2327 **** ; break;} case 94: ! #line 511 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 95: ! #line 513 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 99: ! #line 528 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 101: ! #line 539 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 103: ! #line 544 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 104: ! #line 551 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 105: ! #line 553 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 112: ! #line 570 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 113: ! #line 572 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 116: ! #line 584 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 118: ! #line 587 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 120: ! #line 590 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 122: ! #line 593 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 126: ! #line 604 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 127: ! #line 606 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 150: ! #line 665 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 151: ! #line 667 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 175: ! #line 707 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 186: ! #line 735 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 187: ! #line 740 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 188: ! #line 745 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 196: ! #line 765 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 201: ! #line 780 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 205: ! #line 797 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 211: ! #line 815 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 222: ! #line 840 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 225: ! #line 849 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 228: ! #line 859 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 234: ! #line 874 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 235: ! #line 878 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 246: ! #line 900 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 247: ! #line 905 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 248: ! #line 907 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 249: ! #line 909 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 250: ! #line 911 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 258: ! #line 926 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 260: ! #line 929 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 262: ! #line 935 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 276: ! #line 967 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { bracket_count = 1; ; break;} case 277: ! #line 969 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { bracket_count++; ; break;} case 280: ! #line 982 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 281: ! #line 984 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 282: ! #line 985 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 283: ! #line 986 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 284: ! #line 987 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 285: ! #line 988 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 286: ! #line 993 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 289: ! #line 1000 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 336: ! #line 1096 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 338: ! #line 1102 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 340: ! #line 1108 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { ++complexity; ; break;} case 344: ! #line 1122 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} } --- 2117,2327 ---- ; break;} case 94: ! #line 511 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 95: ! #line 513 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 99: ! #line 528 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 101: ! #line 539 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 103: ! #line 544 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 104: ! #line 551 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 105: ! #line 553 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 112: ! #line 570 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 113: ! #line 572 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 116: ! #line 584 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 118: ! #line 587 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[0].node); modifier_value = 0; ; break;} case 120: ! #line 590 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 122: ! #line 593 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_class_declaration (yyvsp[-1].node); modifier_value = 0; ; break;} case 126: ! #line 604 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 127: ! #line 606 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { pop_class_context (); ; break;} case 150: ! #line 665 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 151: ! #line 667 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { modifier_value = 0; ; break;} case 175: ! #line 707 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 186: ! #line 735 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 187: ! #line 740 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 188: ! #line 745 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 196: ! #line 765 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 201: ! #line 780 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 205: ! #line 797 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 211: ! #line 815 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 222: ! #line 840 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 225: ! #line 849 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 228: ! #line 859 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 234: ! #line 874 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 235: ! #line 878 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 246: ! #line 900 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 247: ! #line 905 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 248: ! #line 907 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 249: ! #line 909 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 250: ! #line 911 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 258: ! #line 926 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 260: ! #line 929 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { report_class_declaration (NULL); ; break;} case 262: ! #line 935 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 276: ! #line 967 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { bracket_count = 1; ; break;} case 277: ! #line 969 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { bracket_count++; ; break;} case 280: ! #line 982 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 281: ! #line 984 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ++complexity; ; break;} case 282: ! #line 985 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 283: ! #line 986 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 284: ! #line 987 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 285: ! #line 988 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 286: ! #line 993 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 289: ! #line 1000 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} case 336: ! #line 1096 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 338: ! #line 1102 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 340: ! #line 1108 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { ++complexity; ; break;} case 344: ! #line 1122 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" { USE_ABSORBER; ; break;} } *************** yyerrhandle: *** 2546,2552 **** } return 1; } ! #line 1140 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse-scan.y" /* Create a new parser context */ --- 2546,2552 ---- } return 1; } ! #line 1140 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse-scan.y" /* Create a new parser context */ diff -Nrc3pad gcc-3.2/gcc/java/parse.c gcc-3.2.1/gcc/java/parse.c *** gcc-3.2/gcc/java/parse.c Wed Aug 14 09:49:51 2002 --- gcc-3.2.1/gcc/java/parse.c Tue Nov 19 18:30:39 2002 *************** *** 1,5 **** ! /* A Bison parser, made from /home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ --- 1,5 ---- ! /* A Bison parser, made from /home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ *************** *** 120,126 **** #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 48 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" #include "config.h" #include "system.h" --- 120,126 ---- #define BOOL_LIT_TK 363 #define NULL_TK 364 ! #line 48 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" #include "config.h" #include "system.h" *************** static tree src_parse_roots[1]; *** 518,524 **** } while (0) ! #line 446 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" typedef union { tree node; int sub_token; --- 518,524 ---- } while (0) ! #line 446 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" typedef union { tree node; int sub_token; *************** typedef union { *** 528,534 **** } operator; int value; } YYSTYPE; ! #line 456 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" #include "lex.c" #ifndef YYDEBUG --- 528,534 ---- } operator; int value; } YYSTYPE; ! #line 456 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" #include "lex.c" #ifndef YYDEBUG *************** static const short yyrhs[] = { -1, *** 826,882 **** #if YYDEBUG != 0 static const short yyrline[] = { 0, ! 606, 632, 636, 638, 639, 640, 641, 642, 646, 648, ! 651, 653, 654, 657, 659, 662, 666, 670, 674, 683, ! 694, 696, 699, 703, 708, 713, 715, 716, 717, 718, ! 719, 720, 721, 724, 729, 735, 737, 740, 746, 748, ! 752, 754, 757, 784, 786, 790, 809, 811, 815, 818, ! 820, 821, 831, 836, 851, 855, 855, 858, 858, 860, ! 862, 867, 871, 873, 875, 877, 881, 883, 885, 892, ! 898, 903, 907, 916, 926, 928, 931, 933, 934, 935, ! 945, 947, 948, 950, 952, 956, 959, 969, 972, 974, ! 978, 981, 988, 994, 1002, 1004, 1006, 1008, 1018, 1022, ! 1024, 1028, 1039, 1040, 1044, 1047, 1049, 1051, 1053, 1058, ! 1060, 1062, 1064, 1071, 1077, 1079, 1088, 1090, 1094, 1099, ! 1104, 1108, 1113, 1118, 1123, 1130, 1140, 1142, 1144, 1148, ! 1151, 1153, 1157, 1159, 1163, 1172, 1188, 1195, 1198, 1201, ! 1205, 1211, 1215, 1224, 1226, 1228, 1232, 1237, 1244, 1252, ! 1254, 1258, 1265, 1275, 1279, 1279, 1282, 1282, 1285, 1285, ! 1288, 1288, 1290, 1294, 1300, 1305, 1307, 1311, 1314, 1318, ! 1320, 1323, 1325, 1326, 1328, 1332, 1336, 1342, 1347, 1350, ! 1352, 1354, 1358, 1364, 1368, 1373, 1382, 1386, 1391, 1405, ! 1407, 1410, 1412, 1414, 1421, 1425, 1428, 1432, 1434, 1435, ! 1436, 1437, 1438, 1442, 1444, 1445, 1446, 1447, 1451, 1453, ! 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1465, ! 1483, 1494, 1497, 1501, 1508, 1518, 1523, 1528, 1533, 1535, ! 1540, 1542, 1547, 1549, 1551, 1553, 1555, 1559, 1561, 1562, ! 1563, 1564, 1565, 1566, 1569, 1575, 1577, 1579, 1583, 1588, ! 1593, 1599, 1609, 1615, 1617, 1619, 1626, 1629, 1631, 1633, ! 1637, 1639, 1642, 1646, 1648, 1651, 1658, 1664, 1666, 1668, ! 1672, 1680, 1683, 1685, 1687, 1691, 1696, 1705, 1710, 1717, ! 1724, 1726, 1728, 1732, 1735, 1744, 1751, 1753, 1757, 1770, ! 1772, 1778, 1784, 1788, 1790, 1794, 1797, 1799, 1803, 1806, ! 1808, 1810, 1814, 1817, 1819, 1821, 1825, 1828, 1830, 1832, ! 1836, 1842, 1844, 1848, 1855, 1857, 1859, 1861, 1865, 1877, ! 1880, 1882, 1887, 1891, 1893, 1900, 1908, 1925, 1927, 1932, ! 1936, 1939, 1944, 1946, 1949, 1951, 1953, 1955, 1956, 1957, ! 1958, 1959, 1963, 1968, 1970, 1972, 1974, 1978, 1981, 1983, ! 1985, 1992, 1995, 1997, 2001, 2007, 2008, 2014, 2015, 2017, ! 2019, 2021, 2023, 2025, 2034, 2038, 2068, 2071, 2085, 2088, ! 2092, 2098, 2103, 2107, 2110, 2112, 2114, 2118, 2129, 2138, ! 2140, 2144, 2147, 2151, 2162, 2164, 2172, 2199, 2201, 2205, ! 2210, 2216, 2220, 2223, 2225, 2236, 2247, 2252, 2261, 2263, ! 2267, 2270, 2272, 2277, 2282, 2287, 2294, 2296, 2297, 2298, ! 2301, 2306, 2311, 2313, 2314, 2316, 2317, 2321, 2327, 2329, ! 2333, 2336, 2340, 2343, 2347, 2349, 2351, 2353, 2354, 2356, ! 2360, 2369, 2371, 2373, 2387, 2389, 2394, 2396, 2398, 2402, ! 2404, 2409, 2414, 2419, 2421, 2423, 2427, 2429, 2434, 2439, ! 2441, 2445, 2447, 2452, 2457, 2462, 2464, 2466, 2470, 2472, ! 2477, 2482, 2487, 2492, 2494, 2496, 2498, 2500, 2502, 2506, ! 2508, 2513, 2518, 2520, 2524, 2526, 2531, 2535, 2537, 2542, ! 2546, 2548, 2553, 2557, 2559, 2564, 2568, 2570, 2575, 2579, ! 2581, 2586, 2592, 2594, 2598, 2600, 2603, 2606, 2613, 2615, ! 2616, 2619, 2621, 2624, 2628 }; #endif --- 826,882 ---- #if YYDEBUG != 0 static const short yyrline[] = { 0, ! 605, 631, 635, 637, 638, 639, 640, 641, 645, 647, ! 650, 652, 653, 656, 658, 661, 665, 669, 673, 682, ! 693, 695, 698, 702, 707, 712, 714, 715, 716, 717, ! 718, 719, 720, 723, 728, 734, 736, 739, 745, 747, ! 751, 753, 756, 783, 785, 789, 808, 810, 814, 817, ! 819, 820, 830, 835, 850, 854, 855, 858, 859, 861, ! 863, 868, 872, 874, 876, 878, 882, 884, 886, 893, ! 899, 904, 908, 917, 927, 929, 932, 934, 935, 936, ! 946, 948, 949, 951, 953, 957, 960, 970, 973, 975, ! 979, 982, 989, 995, 1003, 1005, 1007, 1009, 1019, 1023, ! 1025, 1029, 1040, 1041, 1045, 1048, 1050, 1052, 1054, 1059, ! 1061, 1063, 1065, 1072, 1078, 1080, 1089, 1091, 1095, 1100, ! 1105, 1109, 1114, 1119, 1124, 1131, 1141, 1143, 1145, 1149, ! 1152, 1154, 1158, 1160, 1164, 1173, 1189, 1196, 1199, 1202, ! 1206, 1212, 1216, 1225, 1227, 1229, 1233, 1238, 1245, 1253, ! 1255, 1259, 1266, 1276, 1280, 1281, 1284, 1285, 1288, 1289, ! 1292, 1293, 1295, 1299, 1305, 1310, 1312, 1316, 1319, 1323, ! 1325, 1328, 1330, 1331, 1333, 1337, 1341, 1347, 1352, 1355, ! 1357, 1359, 1363, 1369, 1373, 1378, 1387, 1391, 1396, 1410, ! 1412, 1415, 1417, 1419, 1426, 1430, 1433, 1437, 1439, 1440, ! 1441, 1442, 1443, 1447, 1449, 1450, 1451, 1452, 1456, 1458, ! 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1470, ! 1488, 1499, 1502, 1506, 1513, 1523, 1528, 1533, 1538, 1540, ! 1545, 1547, 1552, 1554, 1556, 1558, 1560, 1564, 1566, 1567, ! 1568, 1569, 1570, 1571, 1574, 1580, 1582, 1584, 1588, 1593, ! 1598, 1604, 1614, 1620, 1622, 1624, 1631, 1634, 1636, 1638, ! 1642, 1644, 1647, 1651, 1653, 1656, 1663, 1669, 1671, 1673, ! 1677, 1685, 1688, 1690, 1692, 1696, 1701, 1710, 1715, 1722, ! 1729, 1731, 1733, 1737, 1740, 1749, 1756, 1758, 1762, 1775, ! 1777, 1783, 1789, 1793, 1795, 1799, 1802, 1804, 1808, 1811, ! 1813, 1815, 1819, 1822, 1824, 1826, 1830, 1833, 1835, 1837, ! 1841, 1847, 1849, 1853, 1860, 1862, 1864, 1866, 1870, 1882, ! 1885, 1887, 1892, 1896, 1898, 1905, 1914, 1931, 1933, 1938, ! 1942, 1945, 1950, 1952, 1955, 1957, 1959, 1961, 1962, 1963, ! 1964, 1965, 1969, 1974, 1976, 1978, 1980, 1984, 1987, 1989, ! 1991, 1998, 2001, 2003, 2007, 2013, 2014, 2020, 2021, 2023, ! 2025, 2027, 2029, 2031, 2040, 2044, 2074, 2077, 2091, 2094, ! 2098, 2104, 2109, 2113, 2116, 2118, 2120, 2124, 2135, 2144, ! 2146, 2150, 2153, 2157, 2168, 2170, 2178, 2205, 2207, 2211, ! 2216, 2222, 2226, 2229, 2231, 2242, 2253, 2258, 2267, 2269, ! 2273, 2276, 2278, 2283, 2288, 2293, 2300, 2302, 2303, 2304, ! 2307, 2312, 2317, 2319, 2320, 2322, 2323, 2327, 2333, 2335, ! 2339, 2342, 2346, 2349, 2353, 2355, 2357, 2359, 2360, 2362, ! 2366, 2375, 2377, 2379, 2393, 2395, 2400, 2402, 2404, 2408, ! 2410, 2415, 2420, 2425, 2427, 2429, 2433, 2435, 2440, 2445, ! 2447, 2451, 2453, 2458, 2463, 2468, 2470, 2472, 2476, 2478, ! 2483, 2488, 2493, 2498, 2500, 2502, 2504, 2506, 2508, 2512, ! 2514, 2519, 2524, 2526, 2530, 2532, 2537, 2541, 2543, 2548, ! 2552, 2554, 2559, 2563, 2565, 2570, 2574, 2576, 2581, 2585, ! 2587, 2592, 2598, 2600, 2604, 2606, 2609, 2612, 2619, 2621, ! 2622, 2625, 2627, 2630, 2634 }; #endif *************** yyreduce: *** 2897,2903 **** switch (yyn) { case 1: ! #line 607 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* Register static variables with the garbage collector. */ --- 2897,2903 ---- switch (yyn) { case 1: ! #line 606 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* Register static variables with the garbage collector. */ *************** case 1: *** 2924,2934 **** ; break;} case 2: ! #line 632 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {; break;} case 19: ! #line 676 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = build_java_array_type ((yyvsp[-1].node), -1); --- 2924,2934 ---- ; break;} case 2: ! #line 631 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {; break;} case 19: ! #line 675 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = build_java_array_type ((yyvsp[-1].node), -1); *************** case 19: *** 2938,2944 **** ; break;} case 20: ! #line 684 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = yyvsp[-1].node; --- 2938,2944 ---- ; break;} case 20: ! #line 683 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree t = yyvsp[-1].node; *************** case 20: *** 2948,2989 **** ; break;} case 24: ! #line 705 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 26: ! #line 714 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = NULL;; break;} case 34: ! #line 726 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 35: ! #line 730 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 38: ! #line 742 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); register_package (ctxp->package); ; break;} case 39: ! #line 747 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 40: ! #line 749 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 43: ! #line 759 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), last_name; int i = IDENTIFIER_LENGTH (name)-1; --- 2948,2989 ---- ; break;} case 24: ! #line 704 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 26: ! #line 713 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = NULL;; break;} case 34: ! #line 725 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 35: ! #line 729 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 38: ! #line 741 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); register_package (ctxp->package); ; break;} case 39: ! #line 746 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 40: ! #line 748 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 43: ! #line 758 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), last_name; int i = IDENTIFIER_LENGTH (name)-1; *************** case 43: *** 3011,3025 **** ; break;} case 44: ! #line 785 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 45: ! #line 787 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 46: ! #line 792 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); tree it; --- 3011,3025 ---- ; break;} case 44: ! #line 784 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 45: ! #line 786 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 46: ! #line 791 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); tree it; *************** case 46: *** 3039,3074 **** ; break;} case 47: ! #line 810 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'*' expected"); RECOVER;; break;} case 48: ! #line 812 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 49: ! #line 817 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 50: ! #line 819 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 52: ! #line 822 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ; break;} case 53: ! #line 833 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.value = (1 << yyvsp[0].value); ; break;} case 54: ! #line 837 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) --- 3039,3074 ---- ; break;} case 47: ! #line 809 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'*' expected"); RECOVER;; break;} case 48: ! #line 811 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 49: ! #line 816 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 50: ! #line 818 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { end_class_declaration (0); ; break;} case 52: ! #line 821 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ; break;} case 53: ! #line 832 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.value = (1 << yyvsp[0].value); ; break;} case 54: ! #line 836 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) *************** case 54: *** 3082,3164 **** ; break;} case 55: ! #line 853 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 57: ! #line 856 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 59: ! #line 859 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 60: ! #line 861 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 61: ! #line 863 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ; break;} case 62: ! #line 868 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; break;} case 63: ! #line 872 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 64: ! #line 874 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 65: ! #line 876 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'{' expected"); ctxp->class_err=1;; break;} case 66: ! #line 878 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing super class name"); ctxp->class_err=1;; break;} case 67: ! #line 882 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 68: ! #line 884 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 69: ! #line 886 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ; break;} case 70: ! #line 894 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 71: ! #line 899 "/home/mitchell/gcc-3.2/gcc-3.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 904 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing interface name"); RECOVER;; break;} case 73: ! #line 909 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) --- 3082,3172 ---- ; break;} case 55: ! #line 852 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} + case 56: + #line 854 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" + {;; + break;} case 57: ! #line 856 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} + case 58: + #line 858 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" + {;; + break;} case 59: ! #line 860 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 60: ! #line 862 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 61: ! #line 864 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ; break;} case 62: ! #line 869 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; break;} case 63: ! #line 873 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL; ; break;} case 64: ! #line 875 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 65: ! #line 877 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'{' expected"); ctxp->class_err=1;; break;} case 66: ! #line 879 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing super class name"); ctxp->class_err=1;; break;} case 67: ! #line 883 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 68: ! #line 885 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 69: ! #line 887 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ; break;} case 70: ! #line 895 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 71: ! #line 900 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 72: ! #line 905 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing interface name"); RECOVER;; break;} case 73: ! #line 910 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) *************** case 73: *** 3168,3174 **** ; break;} case 74: ! #line 917 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) --- 3176,3182 ---- ; break;} case 74: ! #line 918 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) *************** case 74: *** 3178,3184 **** ; break;} case 80: ! #line 936 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { if (yyvsp[0].node != empty_stmt_node) { --- 3186,3192 ---- ; break;} case 80: ! #line 937 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { if (yyvsp[0].node != empty_stmt_node) { *************** case 80: *** 3188,3206 **** ; break;} case 83: ! #line 949 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 84: ! #line 951 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 86: ! #line 958 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; break;} case 87: ! #line 960 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for field declaration", --- 3196,3214 ---- ; break;} case 83: ! #line 950 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 84: ! #line 952 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 86: ! #line 959 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; break;} case 87: ! #line 961 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for field declaration", *************** case 87: *** 3210,3228 **** ; break;} case 89: ! #line 973 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 90: ! #line 975 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 91: ! #line 980 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 92: ! #line 982 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { if (java_error_count) yyvsp[0].node = NULL_TREE; --- 3218,3236 ---- ; break;} case 89: ! #line 974 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 90: ! #line 976 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 91: ! #line 981 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 92: ! #line 983 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { if (java_error_count) yyvsp[0].node = NULL_TREE; *************** case 92: *** 3231,3237 **** ; break;} case 93: ! #line 989 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); --- 3239,3245 ---- ; break;} case 93: ! #line 990 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); *************** case 93: *** 3239,3245 **** ; break;} case 94: ! #line 995 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); --- 3247,3253 ---- ; break;} case 94: ! #line 996 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); *************** case 94: *** 3247,3261 **** ; break;} case 96: ! #line 1005 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 97: ! #line 1007 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Invalid declaration"); DRECOVER(vdi);; break;} case 98: ! #line 1009 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree node = java_lval.node; if (node && (TREE_CODE (node) == INTEGER_CST --- 3255,3269 ---- ; break;} case 96: ! #line 1006 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 97: ! #line 1008 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Invalid declaration"); DRECOVER(vdi);; break;} case 98: ! #line 1010 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree node = java_lval.node; if (node && (TREE_CODE (node) == INTEGER_CST *************** case 98: *** 3267,3277 **** ; break;} case 99: ! #line 1019 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Unbalanced ']'"); DRECOVER(vdi);; break;} case 102: ! #line 1030 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; if (current_function_decl --- 3275,3285 ---- ; break;} case 99: ! #line 1020 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Unbalanced ']'"); DRECOVER(vdi);; break;} case 102: ! #line 1031 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; if (current_function_decl *************** case 102: *** 3282,3349 **** ; break;} case 103: ! #line 1039 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 104: ! #line 1041 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; break;} case 105: ! #line 1046 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 106: ! #line 1048 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 107: ! #line 1050 "/home/mitchell/gcc-3.2/gcc-3.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 1052 "/home/mitchell/gcc-3.2/gcc-3.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 1054 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ; break;} case 110: ! #line 1059 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {RECOVER;; break;} case 111: ! #line 1061 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 112: ! #line 1063 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 113: ! #line 1065 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ; break;} case 114: ! #line 1073 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 115: ! #line 1078 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 116: ! #line 1080 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = --- 3290,3357 ---- ; break;} case 103: ! #line 1040 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 104: ! #line 1042 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; break;} case 105: ! #line 1047 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 106: ! #line 1049 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 107: ! #line 1051 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 108: ! #line 1053 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 109: ! #line 1055 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ; break;} case 110: ! #line 1060 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {RECOVER;; break;} case 111: ! #line 1062 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 112: ! #line 1064 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 113: ! #line 1066 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ; break;} case 114: ! #line 1074 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 115: ! #line 1079 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 116: ! #line 1081 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = *************** case 116: *** 3354,3412 **** ; break;} case 117: ! #line 1089 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); DRECOVER(method_declarator);; break;} case 118: ! #line 1091 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 119: ! #line 1096 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->formal_parameter_number = 1; ; break;} case 120: ! #line 1100 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 121: ! #line 1105 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Missing formal parameter term"); RECOVER; ; break;} case 122: ! #line 1110 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 123: ! #line 1114 "/home/mitchell/gcc-3.2/gcc-3.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 1119 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 125: ! #line 1124 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 126: ! #line 1132 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", yyvsp[0].value, ACC_FINAL); --- 3362,3420 ---- ; break;} case 117: ! #line 1090 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); DRECOVER(method_declarator);; break;} case 118: ! #line 1092 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 119: ! #line 1097 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 1; ; break;} case 120: ! #line 1101 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 121: ! #line 1106 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Missing formal parameter term"); RECOVER; ; break;} case 122: ! #line 1111 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 123: ! #line 1115 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ARG_FINAL_P (yyval.node) = 1; ; break;} case 124: ! #line 1120 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 125: ! #line 1125 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Missing identifier"); RECOVER; yyval.node = NULL_TREE; ; break;} case 126: ! #line 1133 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", yyvsp[0].value, ACC_FINAL); *************** case 126: *** 3415,3449 **** ; break;} case 127: ! #line 1141 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 128: ! #line 1143 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 129: ! #line 1145 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 130: ! #line 1150 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; break;} case 131: ! #line 1152 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; break;} case 132: ! #line 1154 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 134: ! #line 1159 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 135: ! #line 1165 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_STATIC_INITIALIZER_STMT (ctxp); SET_CPC_STATIC_INITIALIZER_STMT (ctxp, yyvsp[0].node); --- 3423,3457 ---- ; break;} case 127: ! #line 1142 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 128: ! #line 1144 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 129: ! #line 1146 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 130: ! #line 1151 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; break;} case 131: ! #line 1153 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; break;} case 132: ! #line 1155 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 134: ! #line 1160 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 135: ! #line 1166 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = CPC_STATIC_INITIALIZER_STMT (ctxp); SET_CPC_STATIC_INITIALIZER_STMT (ctxp, yyvsp[0].node); *************** case 135: *** 3451,3457 **** ; break;} case 136: ! #line 1174 "/home/mitchell/gcc-3.2/gcc-3.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 */ --- 3459,3465 ---- ; break;} case 136: ! #line 1175 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { check_modifiers ("Illegal modifier `%s' for static initializer", yyvsp[0].value, ACC_STATIC); /* Can't have a static initializer in an innerclass */ *************** case 136: *** 3465,3520 **** ; break;} case 137: ! #line 1190 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 138: ! #line 1195 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 139: ! #line 1200 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 140: ! #line 1202 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 141: ! #line 1207 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 142: ! #line 1212 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 143: ! #line 1220 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ; break;} case 144: ! #line 1225 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 145: ! #line 1227 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 146: ! #line 1229 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 148: ! #line 1239 "/home/mitchell/gcc-3.2/gcc-3.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); --- 3473,3528 ---- ; break;} case 137: ! #line 1191 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 138: ! #line 1196 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 139: ! #line 1201 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 140: ! #line 1203 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 141: ! #line 1208 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->formal_parameter_number = 0; yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 142: ! #line 1213 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 143: ! #line 1221 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ; break;} case 144: ! #line 1226 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 145: ! #line 1228 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 146: ! #line 1230 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 148: ! #line 1240 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, NULL_TREE); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-3].node), yyval.node); *************** case 148: *** 3522,3528 **** ; break;} case 149: ! #line 1245 "/home/mitchell/gcc-3.2/gcc-3.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); --- 3530,3536 ---- ; break;} case 149: ! #line 1246 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-4].node, yyvsp[-2].node); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-4].node), yyval.node); *************** case 149: *** 3530,3544 **** ; break;} case 150: ! #line 1253 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 151: ! #line 1255 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 152: ! #line 1260 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; --- 3538,3552 ---- ; break;} case 150: ! #line 1254 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 151: ! #line 1256 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 152: ! #line 1261 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; *************** case 152: *** 3546,3552 **** ; break;} case 153: ! #line 1266 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; --- 3554,3560 ---- ; break;} case 153: ! #line 1267 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; *************** case 153: *** 3554,3666 **** ; break;} case 154: ! #line 1277 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} case 156: ! #line 1280 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} case 158: ! #line 1283 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 160: ! #line 1286 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 162: ! #line 1289 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 163: ! #line 1291 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 164: ! #line 1296 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 165: ! #line 1301 "/home/mitchell/gcc-3.2/gcc-3.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 1306 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} case 167: ! #line 1308 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 168: ! #line 1313 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 169: ! #line 1315 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 174: ! #line 1327 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 175: ! #line 1329 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 177: ! #line 1338 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} case 178: ! #line 1343 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 179: ! #line 1349 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 180: ! #line 1351 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, NULL_TREE); ; break;} case 181: ! #line 1353 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 182: ! #line 1355 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 183: ! #line 1360 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ; break;} case 184: ! #line 1365 "/home/mitchell/gcc-3.2/gcc-3.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 185: ! #line 1369 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 186: ! #line 1375 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) --- 3562,3690 ---- ; break;} case 154: ! #line 1278 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} + case 155: + #line 1280 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" + { ; ; + break;} case 156: ! #line 1282 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} + case 157: + #line 1284 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" + { ; ; + break;} case 158: ! #line 1286 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} + case 159: + #line 1288 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" + { ; ; + break;} case 160: ! #line 1290 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} + case 161: + #line 1292 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" + { ; ; + break;} case 162: ! #line 1294 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 163: ! #line 1296 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 164: ! #line 1301 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 165: ! #line 1306 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 166: ! #line 1311 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} case 167: ! #line 1313 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 168: ! #line 1318 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 169: ! #line 1320 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 174: ! #line 1332 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 175: ! #line 1334 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { end_class_declaration (1); ; break;} case 177: ! #line 1343 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} case 178: ! #line 1348 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 179: ! #line 1354 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 180: ! #line 1356 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, NULL_TREE); ; break;} case 181: ! #line 1358 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 182: ! #line 1360 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 183: ! #line 1365 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ; break;} case 184: ! #line 1370 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ; break;} case 185: ! #line 1374 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 186: ! #line 1380 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) *************** case 186: *** 3670,3684 **** ; break;} case 187: ! #line 1383 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 188: ! #line 1388 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { enter_block (); ; break;} case 189: ! #line 1393 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ --- 3694,3708 ---- ; break;} case 187: ! #line 1388 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 188: ! #line 1393 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { enter_block (); ; break;} case 189: ! #line 1398 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ *************** case 189: *** 3691,3724 **** ; break;} case 193: ! #line 1413 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} case 194: ! #line 1415 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; end_class_declaration (1); ; break;} case 196: ! #line 1427 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 197: ! #line 1429 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 203: ! #line 1439 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 208: ! #line 1448 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 220: ! #line 1467 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { if (flag_extraneous_semicolon && ! current_static_block --- 3715,3748 ---- ; break;} case 193: ! #line 1418 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} case 194: ! #line 1420 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; end_class_declaration (1); ; break;} case 196: ! #line 1432 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 197: ! #line 1434 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 203: ! #line 1444 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 208: ! #line 1453 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = exit_block (); ; break;} case 220: ! #line 1472 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { if (flag_extraneous_semicolon && ! current_static_block *************** case 220: *** 3735,3741 **** ; break;} case 221: ! #line 1485 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); --- 3759,3765 ---- ; break;} case 221: ! #line 1490 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); *************** case 221: *** 3745,3763 **** ; break;} case 222: ! #line 1496 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 223: ! #line 1498 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 224: ! #line 1503 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 225: ! #line 1510 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ --- 3769,3787 ---- ; break;} case 222: ! #line 1501 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 223: ! #line 1503 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 224: ! #line 1508 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} case 225: ! #line 1515 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ *************** case 225: *** 3768,3870 **** ; break;} case 226: ! #line 1519 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 227: ! #line 1524 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 228: ! #line 1529 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 229: ! #line 1534 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 230: ! #line 1536 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 231: ! #line 1541 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 232: ! #line 1543 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 233: ! #line 1548 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 234: ! #line 1550 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 235: ! #line 1552 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 236: ! #line 1554 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 237: ! #line 1556 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 245: ! #line 1571 "/home/mitchell/gcc-3.2/gcc-3.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 246: ! #line 1576 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 247: ! #line 1578 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 248: ! #line 1580 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 249: ! #line 1585 "/home/mitchell/gcc-3.2/gcc-3.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 1590 "/home/mitchell/gcc-3.2/gcc-3.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 251: ! #line 1595 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { enter_block (); ; break;} case 252: ! #line 1599 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statement also have its own --- 3792,3894 ---- ; break;} case 226: ! #line 1524 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 227: ! #line 1529 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 228: ! #line 1534 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} case 229: ! #line 1539 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 230: ! #line 1541 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 231: ! #line 1546 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 232: ! #line 1548 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} case 233: ! #line 1553 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 234: ! #line 1555 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 235: ! #line 1557 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 236: ! #line 1559 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 237: ! #line 1561 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 245: ! #line 1576 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ; break;} case 246: ! #line 1581 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 247: ! #line 1583 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 248: ! #line 1585 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 249: ! #line 1590 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 250: ! #line 1595 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 251: ! #line 1600 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { enter_block (); ; break;} case 252: ! #line 1604 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statement also have its own *************** case 252: *** 3875,3916 **** ; break;} case 253: ! #line 1611 "/home/mitchell/gcc-3.2/gcc-3.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 254: ! #line 1616 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 255: ! #line 1618 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} case 256: ! #line 1620 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 257: ! #line 1628 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 258: ! #line 1630 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 259: ! #line 1632 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 260: ! #line 1634 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 266: ! #line 1653 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; --- 3899,3940 ---- ; break;} case 253: ! #line 1616 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build (SWITCH_EXPR, NULL_TREE, yyvsp[-1].node, NULL_TREE); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} case 254: ! #line 1621 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 255: ! #line 1623 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} case 256: ! #line 1625 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 257: ! #line 1633 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 258: ! #line 1635 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 259: ! #line 1637 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 260: ! #line 1639 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = NULL_TREE; ; break;} case 266: ! #line 1658 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; *************** case 266: *** 3918,3924 **** ; break;} case 267: ! #line 1659 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree lab = build (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; --- 3942,3948 ---- ; break;} case 267: ! #line 1664 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree lab = build (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; *************** case 267: *** 3926,3982 **** ; break;} case 268: ! #line 1665 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing or invalid constant expression"); RECOVER;; break;} case 269: ! #line 1667 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 270: ! #line 1669 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 271: ! #line 1674 "/home/mitchell/gcc-3.2/gcc-3.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 272: ! #line 1682 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 273: ! #line 1684 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} case 274: ! #line 1686 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} case 275: ! #line 1688 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 276: ! #line 1693 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 277: ! #line 1698 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} case 278: ! #line 1707 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} case 279: ! #line 1712 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-4].node)) == 'c') yyvsp[-4].node = build_wfl_node (yyvsp[-4].node); --- 3950,4006 ---- ; break;} case 268: ! #line 1670 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing or invalid constant expression"); RECOVER;; break;} case 269: ! #line 1672 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 270: ! #line 1674 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 271: ! #line 1679 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); yyval.node = build_new_loop (body); ; break;} case 272: ! #line 1687 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 273: ! #line 1689 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} case 274: ! #line 1691 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} case 275: ! #line 1693 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 276: ! #line 1698 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 277: ! #line 1703 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} case 278: ! #line 1712 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} case 279: ! #line 1717 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-4].node)) == 'c') yyvsp[-4].node = build_wfl_node (yyvsp[-4].node); *************** case 279: *** 3984,3990 **** ; break;} case 280: ! #line 1718 "/home/mitchell/gcc-3.2/gcc-3.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 */ --- 4008,4014 ---- ; break;} case 280: ! #line 1723 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ *************** case 280: *** 3993,4015 **** ; break;} case 281: ! #line 1725 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Invalid control expression"); RECOVER;; break;} case 282: ! #line 1727 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 283: ! #line 1729 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 284: ! #line 1734 "/home/mitchell/gcc-3.2/gcc-3.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 285: ! #line 1736 "/home/mitchell/gcc-3.2/gcc-3.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 */ --- 4017,4039 ---- ; break;} case 281: ! #line 1730 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Invalid control expression"); RECOVER;; break;} case 282: ! #line 1732 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 283: ! #line 1734 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 284: ! #line 1739 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; break;} case 285: ! #line 1741 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ *************** case 285: *** 4018,4024 **** ; break;} case 286: ! #line 1746 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ --- 4042,4048 ---- ; break;} case 286: ! #line 1751 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ *************** case 286: *** 4026,4040 **** ; break;} case 287: ! #line 1752 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} case 288: ! #line 1754 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} case 289: ! #line 1759 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ --- 4050,4064 ---- ; break;} case 287: ! #line 1757 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} case 288: ! #line 1759 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} case 289: ! #line 1764 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ *************** case 289: *** 4047,4057 **** ; break;} case 290: ! #line 1771 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = empty_stmt_node; ; break;} case 291: ! #line 1773 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* Init statement recorded within the previously defined block scope */ --- 4071,4081 ---- ; break;} case 290: ! #line 1776 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = empty_stmt_node; ; break;} case 291: ! #line 1778 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* Init statement recorded within the previously defined block scope */ *************** case 291: *** 4059,4065 **** ; break;} case 292: ! #line 1779 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* Local variable are recorded within the previously defined block scope */ --- 4083,4089 ---- ; break;} case 292: ! #line 1784 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* Local variable are recorded within the previously defined block scope */ *************** case 292: *** 4067,4160 **** ; break;} case 293: ! #line 1785 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} case 294: ! #line 1789 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = empty_stmt_node;; break;} case 295: ! #line 1791 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} case 296: ! #line 1796 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} case 297: ! #line 1798 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} case 298: ! #line 1800 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 299: ! #line 1805 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} case 300: ! #line 1807 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} case 301: ! #line 1809 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 302: ! #line 1811 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 303: ! #line 1816 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} case 304: ! #line 1818 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} case 305: ! #line 1820 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 306: ! #line 1822 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 307: ! #line 1827 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 308: ! #line 1829 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 309: ! #line 1831 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 310: ! #line 1833 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 311: ! #line 1838 "/home/mitchell/gcc-3.2/gcc-3.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 312: ! #line 1843 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 313: ! #line 1845 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 314: ! #line 1850 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = --- 4091,4184 ---- ; break;} case 293: ! #line 1790 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} case 294: ! #line 1794 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = empty_stmt_node;; break;} case 295: ! #line 1796 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} case 296: ! #line 1801 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} case 297: ! #line 1803 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} case 298: ! #line 1805 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 299: ! #line 1810 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} case 300: ! #line 1812 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} case 301: ! #line 1814 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 302: ! #line 1816 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 303: ! #line 1821 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} case 304: ! #line 1823 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} case 305: ! #line 1825 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 306: ! #line 1827 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 307: ! #line 1832 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 308: ! #line 1834 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 309: ! #line 1836 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 310: ! #line 1838 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 311: ! #line 1843 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} case 312: ! #line 1848 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 313: ! #line 1850 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 314: ! #line 1855 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = *************** case 314: *** 4162,4184 **** ; break;} case 315: ! #line 1856 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 316: ! #line 1858 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 317: ! #line 1860 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 318: ! #line 1862 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 319: ! #line 1867 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", --- 4186,4208 ---- ; break;} case 315: ! #line 1861 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 316: ! #line 1863 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 317: ! #line 1865 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 318: ! #line 1867 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 319: ! #line 1872 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", *************** case 319: *** 4189,4221 **** ; break;} case 320: ! #line 1879 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 321: ! #line 1881 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 322: ! #line 1883 "/home/mitchell/gcc-3.2/gcc-3.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 323: ! #line 1888 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} case 325: ! #line 1894 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} case 326: ! #line 1902 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); --- 4213,4245 ---- ; break;} case 320: ! #line 1884 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 321: ! #line 1886 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} case 322: ! #line 1888 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_try_finally_statement (yyvsp[-3].operator.location, build_try_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-1].node), yyvsp[0].node); ; break;} case 323: ! #line 1893 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} case 325: ! #line 1899 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} case 326: ! #line 1907 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); *************** case 326: *** 4223,4229 **** ; break;} case 327: ! #line 1910 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is --- 4247,4253 ---- ; break;} case 327: ! #line 1916 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is *************** case 327: *** 4241,4328 **** ; break;} case 328: ! #line 1926 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;; break;} case 329: ! #line 1928 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ; break;} case 330: ! #line 1933 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;; break;} case 331: ! #line 1938 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 332: ! #line 1940 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} case 336: ! #line 1952 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} case 337: ! #line 1954 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = yyvsp[-1].node;; break;} case 343: ! #line 1964 "/home/mitchell/gcc-3.2/gcc-3.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 344: ! #line 1969 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 345: ! #line 1971 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'class' or 'this' expected" ); RECOVER;; break;} case 346: ! #line 1973 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 347: ! #line 1975 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 348: ! #line 1980 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 349: ! #line 1982 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 350: ! #line 1984 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 351: ! #line 1986 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, void_type_node); ; break;} case 352: ! #line 1994 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 353: ! #line 1996 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 355: ! #line 2002 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-3].node, ctor, --- 4265,4352 ---- ; break;} case 328: ! #line 1932 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;; break;} case 329: ! #line 1934 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ; break;} case 330: ! #line 1939 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;; break;} case 331: ! #line 1944 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[0].node; ; break;} case 332: ! #line 1946 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} case 336: ! #line 1958 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} case 337: ! #line 1960 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = yyvsp[-1].node;; break;} case 343: ! #line 1970 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree wfl = build_wfl_node (this_identifier_node); yyval.node = make_qualified_primary (yyvsp[-2].node, wfl, EXPR_WFL_LINECOL (yyvsp[-2].node)); ; break;} case 344: ! #line 1975 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 345: ! #line 1977 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'class' or 'this' expected" ); RECOVER;; break;} case 346: ! #line 1979 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 347: ! #line 1981 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 348: ! #line 1986 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 349: ! #line 1988 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 350: ! #line 1990 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, yyvsp[-2].node); ; break;} case 351: ! #line 1992 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_incomplete_class_ref (yyvsp[-1].operator.location, void_type_node); ; break;} case 352: ! #line 2000 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 353: ! #line 2002 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 355: ! #line 2008 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-2].node, NULL_TREE); yyval.node = make_qualified_primary (yyvsp[-3].node, ctor, *************** case 355: *** 4330,4336 **** ; break;} case 357: ! #line 2009 "/home/mitchell/gcc-3.2/gcc-3.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, --- 4354,4360 ---- ; break;} case 357: ! #line 2015 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree ctor = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); yyval.node = make_qualified_primary (yyvsp[-4].node, ctor, *************** case 357: *** 4338,4372 **** ; break;} case 359: ! #line 2016 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(new_1);; break;} case 360: ! #line 2018 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 361: ! #line 2020 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' or term expected"); RECOVER;; break;} case 362: ! #line 2022 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 363: ! #line 2024 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; break;} case 364: ! #line 2026 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 365: ! #line 2036 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { create_anonymous_class (yyvsp[-4].operator.location, yyvsp[-3].node); ; break;} case 366: ! #line 2038 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-5].node); --- 4362,4396 ---- ; break;} case 359: ! #line 2022 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); DRECOVER(new_1);; break;} case 360: ! #line 2024 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 361: ! #line 2026 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' or term expected"); RECOVER;; break;} case 362: ! #line 2028 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 363: ! #line 2030 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; break;} case 364: ! #line 2032 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 365: ! #line 2042 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { create_anonymous_class (yyvsp[-4].operator.location, yyvsp[-3].node); ; break;} case 366: ! #line 2044 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-5].node); *************** case 366: *** 4399,4409 **** ; break;} case 367: ! #line 2069 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { create_anonymous_class (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 368: ! #line 2071 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-4].node); --- 4423,4433 ---- ; break;} case 367: ! #line 2075 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { create_anonymous_class (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} case 368: ! #line 2077 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree id = build_wfl_node (DECL_NAME (GET_CPC ())); EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (yyvsp[-4].node); *************** case 368: *** 4418,4466 **** ; break;} case 369: ! #line 2087 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 370: ! #line 2089 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 371: ! #line 2094 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} case 372: ! #line 2099 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} case 373: ! #line 2104 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 374: ! #line 2109 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 375: ! #line 2111 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 376: ! #line 2113 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 377: ! #line 2115 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 378: ! #line 2119 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { char *sig; int osb = pop_current_osb (ctxp); --- 4442,4490 ---- ; break;} case 369: ! #line 2093 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 370: ! #line 2095 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = yyvsp[-2].node; ; break;} case 371: ! #line 2100 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} case 372: ! #line 2105 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} case 373: ! #line 2110 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 374: ! #line 2115 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 375: ! #line 2117 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 376: ! #line 2119 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 377: ! #line 2121 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, pop_current_osb (ctxp));; break;} case 378: ! #line 2125 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { char *sig; int osb = pop_current_osb (ctxp); *************** case 378: *** 4473,4479 **** ; break;} case 379: ! #line 2130 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree type = yyvsp[-2].node; --- 4497,4503 ---- ; break;} case 379: ! #line 2136 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { int osb = pop_current_osb (ctxp); tree type = yyvsp[-2].node; *************** case 379: *** 4484,4506 **** ; break;} case 380: ! #line 2139 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("'[' expected"); DRECOVER ("]");; break;} case 381: ! #line 2141 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 382: ! #line 2146 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 383: ! #line 2148 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; break;} case 384: ! #line 2153 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { if (JNUMERIC_TYPE_P (TREE_TYPE (yyvsp[-1].node))) { --- 4508,4530 ---- ; break;} case 380: ! #line 2145 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("'[' expected"); DRECOVER ("]");; break;} case 381: ! #line 2147 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 382: ! #line 2152 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 383: ! #line 2154 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; break;} case 384: ! #line 2159 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { if (JNUMERIC_TYPE_P (TREE_TYPE (yyvsp[-1].node))) { *************** case 384: *** 4512,4522 **** ; break;} case 385: ! #line 2163 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 386: ! #line 2165 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); --- 4536,4546 ---- ; break;} case 385: ! #line 2169 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 386: ! #line 2171 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); *************** case 386: *** 4524,4530 **** ; break;} case 387: ! #line 2174 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb --- 4548,4554 ---- ; break;} case 387: ! #line 2180 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb *************** case 387: *** 4552,4570 **** ; break;} case 388: ! #line 2200 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { CURRENT_OSB (ctxp)++; ; break;} case 389: ! #line 2202 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("']' expected"); RECOVER;; break;} case 390: ! #line 2207 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 391: ! #line 2211 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree super_wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (super_wfl) = yyvsp[-2].operator.location; --- 4576,4594 ---- ; break;} case 388: ! #line 2206 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { CURRENT_OSB (ctxp)++; ; break;} case 389: ! #line 2208 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("']' expected"); RECOVER;; break;} case 390: ! #line 2213 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 391: ! #line 2217 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree super_wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (super_wfl) = yyvsp[-2].operator.location; *************** case 391: *** 4572,4590 **** ; break;} case 392: ! #line 2217 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} case 393: ! #line 2222 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 394: ! #line 2224 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 395: ! #line 2226 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation --- 4596,4614 ---- ; break;} case 392: ! #line 2223 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} case 393: ! #line 2228 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 394: ! #line 2230 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 395: ! #line 2232 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation *************** case 395: *** 4597,4603 **** ; break;} case 396: ! #line 2237 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation --- 4621,4627 ---- ; break;} case 396: ! #line 2243 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation *************** case 396: *** 4610,4737 **** ; break;} case 397: ! #line 2248 "/home/mitchell/gcc-3.2/gcc-3.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 398: ! #line 2253 "/home/mitchell/gcc-3.2/gcc-3.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 399: ! #line 2262 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 400: ! #line 2264 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 401: ! #line 2269 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 402: ! #line 2271 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 403: ! #line 2273 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 404: ! #line 2278 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 405: ! #line 2283 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 406: ! #line 2288 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 411: ! #line 2303 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 412: ! #line 2308 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 415: ! #line 2315 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 417: ! #line 2318 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: ! #line 2323 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { error_if_numeric_overflow (yyvsp[0].node); yyval.node = yyvsp[0].node; ; break;} case 419: ! #line 2328 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 420: ! #line 2330 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 421: ! #line 2335 "/home/mitchell/gcc-3.2/gcc-3.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 2337 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 423: ! #line 2342 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 424: ! #line 2344 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 426: ! #line 2350 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 427: ! #line 2352 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 429: ! #line 2355 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 430: ! #line 2357 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 431: ! #line 2362 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { tree type = yyvsp[-3].node; int osb = pop_current_osb (ctxp); --- 4634,4761 ---- ; break;} case 397: ! #line 2254 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-2].node, NULL_TREE, yyvsp[-4].operator.location, yyvsp[-3].operator.location); ; break;} case 398: ! #line 2259 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-3].node, yyvsp[-1].node, yyvsp[-5].operator.location, yyvsp[-4].operator.location); ; break;} case 399: ! #line 2268 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 400: ! #line 2270 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 401: ! #line 2275 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 402: ! #line 2277 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 403: ! #line 2279 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 404: ! #line 2284 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 405: ! #line 2289 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 406: ! #line 2294 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 411: ! #line 2309 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 412: ! #line 2314 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 415: ! #line 2321 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 417: ! #line 2324 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: ! #line 2329 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { error_if_numeric_overflow (yyvsp[0].node); yyval.node = yyvsp[0].node; ; break;} case 419: ! #line 2334 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 420: ! #line 2336 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 421: ! #line 2341 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 422: ! #line 2343 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 423: ! #line 2348 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 424: ! #line 2350 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 426: ! #line 2356 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 427: ! #line 2358 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 429: ! #line 2361 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 430: ! #line 2363 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER; break;} case 431: ! #line 2368 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { tree type = yyvsp[-3].node; int osb = pop_current_osb (ctxp); *************** case 431: *** 4741,4755 **** ; break;} case 432: ! #line 2370 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 433: ! #line 2372 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 434: ! #line 2374 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { const char *ptr; int osb = pop_current_osb (ctxp); --- 4765,4779 ---- ; break;} case 432: ! #line 2376 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 433: ! #line 2378 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 434: ! #line 2380 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { const char *ptr; int osb = pop_current_osb (ctxp); *************** case 434: *** 4765,5018 **** ; break;} case 435: ! #line 2388 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("']' expected, invalid type expression");; break;} case 436: ! #line 2390 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; RECOVER; ; break;} case 437: ! #line 2395 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 438: ! #line 2397 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 439: ! #line 2399 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 441: ! #line 2405 "/home/mitchell/gcc-3.2/gcc-3.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 2410 "/home/mitchell/gcc-3.2/gcc-3.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 443: ! #line 2415 "/home/mitchell/gcc-3.2/gcc-3.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 444: ! #line 2420 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 445: ! #line 2422 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 446: ! #line 2424 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 448: ! #line 2430 "/home/mitchell/gcc-3.2/gcc-3.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 449: ! #line 2435 "/home/mitchell/gcc-3.2/gcc-3.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 450: ! #line 2440 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 451: ! #line 2442 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 453: ! #line 2448 "/home/mitchell/gcc-3.2/gcc-3.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 2453 "/home/mitchell/gcc-3.2/gcc-3.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 455: ! #line 2458 "/home/mitchell/gcc-3.2/gcc-3.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 456: ! #line 2463 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 457: ! #line 2465 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 458: ! #line 2467 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 460: ! #line 2473 "/home/mitchell/gcc-3.2/gcc-3.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 2478 "/home/mitchell/gcc-3.2/gcc-3.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 2483 "/home/mitchell/gcc-3.2/gcc-3.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 463: ! #line 2488 "/home/mitchell/gcc-3.2/gcc-3.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 464: ! #line 2493 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 465: ! #line 2495 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 466: ! #line 2497 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 467: ! #line 2499 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 468: ! #line 2501 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 469: ! #line 2503 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} case 471: ! #line 2509 "/home/mitchell/gcc-3.2/gcc-3.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 472: ! #line 2514 "/home/mitchell/gcc-3.2/gcc-3.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 473: ! #line 2519 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 474: ! #line 2521 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 476: ! #line 2527 "/home/mitchell/gcc-3.2/gcc-3.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 477: ! #line 2532 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 479: ! #line 2538 "/home/mitchell/gcc-3.2/gcc-3.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 480: ! #line 2543 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 482: ! #line 2549 "/home/mitchell/gcc-3.2/gcc-3.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 483: ! #line 2554 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 485: ! #line 2560 "/home/mitchell/gcc-3.2/gcc-3.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 486: ! #line 2565 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 488: ! #line 2571 "/home/mitchell/gcc-3.2/gcc-3.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 489: ! #line 2576 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 491: ! #line 2582 "/home/mitchell/gcc-3.2/gcc-3.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 492: ! #line 2587 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Missing term"); --- 4789,5042 ---- ; break;} case 435: ! #line 2394 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("']' expected, invalid type expression");; break;} case 436: ! #line 2396 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; RECOVER; ; break;} case 437: ! #line 2401 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 438: ! #line 2403 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 439: ! #line 2405 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 441: ! #line 2411 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 442: ! #line 2416 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 443: ! #line 2421 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 444: ! #line 2426 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 445: ! #line 2428 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 446: ! #line 2430 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 448: ! #line 2436 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 449: ! #line 2441 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 450: ! #line 2446 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 451: ! #line 2448 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 453: ! #line 2454 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 454: ! #line 2459 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 455: ! #line 2464 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 456: ! #line 2469 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 457: ! #line 2471 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 458: ! #line 2473 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 460: ! #line 2479 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 461: ! #line 2484 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 462: ! #line 2489 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 463: ! #line 2494 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 464: ! #line 2499 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 465: ! #line 2501 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 466: ! #line 2503 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 467: ! #line 2505 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 468: ! #line 2507 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 469: ! #line 2509 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} case 471: ! #line 2515 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 472: ! #line 2520 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 473: ! #line 2525 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 474: ! #line 2527 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 476: ! #line 2533 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 477: ! #line 2538 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 479: ! #line 2544 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 480: ! #line 2549 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 482: ! #line 2555 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 483: ! #line 2560 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 485: ! #line 2566 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 486: ! #line 2571 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 488: ! #line 2577 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 489: ! #line 2582 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 491: ! #line 2588 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build (CONDITIONAL_EXPR, NULL_TREE, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ; break;} case 492: ! #line 2593 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { YYERROR_NOW; yyerror ("Missing term"); *************** case 492: *** 5020,5038 **** ; break;} case 493: ! #line 2593 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} case 494: ! #line 2595 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} case 497: ! #line 2605 "/home/mitchell/gcc-3.2/gcc-3.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 498: ! #line 2607 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Missing term"); DRECOVER (assign); --- 5044,5062 ---- ; break;} case 493: ! #line 2599 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} case 494: ! #line 2601 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} case 497: ! #line 2611 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 498: ! #line 2613 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" { YYNOT_TWICE yyerror ("Missing term"); DRECOVER (assign); *************** yyerrhandle: *** 5260,5266 **** } return 1; } ! #line 2632 "/home/mitchell/gcc-3.2/gcc-3.2/gcc/java/parse.y" /* Helper function to retrieve an OSB count. Should be used when the --- 5284,5290 ---- } return 1; } ! #line 2638 "/home/mitchell/gcc-3.2.1/gcc-3.2.1/gcc/java/parse.y" /* Helper function to retrieve an OSB count. Should be used when the diff -Nrc3pad gcc-3.2/gcc/java/parse.y gcc-3.2.1/gcc/java/parse.y *** gcc-3.2/gcc/java/parse.y Tue Jun 4 16:45:55 2002 --- gcc-3.2.1/gcc/java/parse.y Mon Oct 21 18:40:12 2002 *************** static tree src_parse_roots[1]; *** 522,533 **** %type type_declaration compilation_unit field_declaration method_declaration extends_interfaces interfaces interface_type_list - class_member_declaration import_declarations package_declaration type_declarations interface_body interface_member_declaration constant_declaration interface_member_declarations interface_type ! abstract_method_declaration interface_type_list %type class_body_declaration class_member_declaration static_initializer constructor_declaration block %type class_body_declarations constructor_header --- 522,532 ---- %type type_declaration compilation_unit field_declaration method_declaration extends_interfaces interfaces interface_type_list import_declarations package_declaration type_declarations interface_body interface_member_declaration constant_declaration interface_member_declarations interface_type ! abstract_method_declaration %type class_body_declaration class_member_declaration static_initializer constructor_declaration block %type class_body_declarations constructor_header *************** static tree src_parse_roots[1]; *** 556,562 **** post_increment_expression post_decrement_expression unary_expression_not_plus_minus unary_expression pre_increment_expression pre_decrement_expression ! unary_expression_not_plus_minus cast_expression multiplicative_expression additive_expression shift_expression relational_expression equality_expression and_expression --- 555,561 ---- post_increment_expression post_decrement_expression unary_expression_not_plus_minus unary_expression pre_increment_expression pre_decrement_expression ! cast_expression multiplicative_expression additive_expression shift_expression relational_expression equality_expression and_expression *************** class_declaration: *** 852,860 **** --- 851,861 ---- modifiers CLASS_TK identifier super interfaces { create_class ($1, $3, $4, $5); } class_body + {;} | CLASS_TK identifier super interfaces { create_class (0, $2, $3, $4); } class_body + {;} | modifiers CLASS_TK error {yyerror ("Missing class name"); RECOVER;} | CLASS_TK error *************** interface_declaration: *** 1276,1290 **** --- 1277,1295 ---- INTERFACE_TK identifier { create_interface (0, $2, NULL_TREE); } interface_body + { ; } | modifiers INTERFACE_TK identifier { create_interface ($1, $3, NULL_TREE); } interface_body + { ; } | INTERFACE_TK identifier extends_interfaces { create_interface (0, $2, $3); } interface_body + { ; } | modifiers INTERFACE_TK identifier extends_interfaces { create_interface ($1, $3, $4); } interface_body + { ; } | INTERFACE_TK identifier error {yyerror ("'{' expected"); RECOVER;} | modifiers INTERFACE_TK identifier error *************** catch_clause: *** 1904,1909 **** --- 1909,1915 ---- exit_block (); $$ = $1; } + ; catch_clause_parameter: CATCH_TK OP_TK formal_parameter CP_TK diff -Nrc3pad gcc-3.2/gcc/java/rmic.1 gcc-3.2.1/gcc/java/rmic.1 *** gcc-3.2/gcc/java/rmic.1 Wed Aug 14 09:36:44 2002 --- gcc-3.2.1/gcc/java/rmic.1 Tue Nov 19 18:17:22 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:44 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:22 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "RMIC 1" ! .TH RMIC 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" rmic \- Generate stubs for Remote Method Invocation --- 138,144 ---- .\" ====================================================================== .\" .IX Title "RMIC 1" ! .TH RMIC 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" rmic \- Generate stubs for Remote Method Invocation diff -Nrc3pad gcc-3.2/gcc/java/rmiregistry.1 gcc-3.2.1/gcc/java/rmiregistry.1 *** gcc-3.2/gcc/java/rmiregistry.1 Wed Aug 14 09:36:44 2002 --- gcc-3.2.1/gcc/java/rmiregistry.1 Tue Nov 19 18:17:23 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed Aug 14 09:36:44 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Tue Nov 19 18:17:23 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "RMIREGISTRY 1" ! .TH RMIREGISTRY 1 "gcc-3.2" "2002-08-14" "GNU" .UC .SH "NAME" rmiregistry \- Remote object registry --- 138,144 ---- .\" ====================================================================== .\" .IX Title "RMIREGISTRY 1" ! .TH RMIREGISTRY 1 "gcc-3.2.1" "2002-11-19" "GNU" .UC .SH "NAME" rmiregistry \- Remote object registry diff -Nrc3pad gcc-3.2/gcc/jump.c gcc-3.2.1/gcc/jump.c *** gcc-3.2/gcc/jump.c Tue Apr 9 20:38:58 2002 --- gcc-3.2.1/gcc/jump.c Sat Nov 16 01:55:47 2002 *************** simplejump_p (insn) *** 1076,1081 **** --- 1076,1096 ---- && GET_CODE (SET_DEST (PATTERN (insn))) == PC && GET_CODE (SET_SRC (PATTERN (insn))) == LABEL_REF); } + /* Return 1 if INSN is an tablejump. */ + + int + tablejump_p (insn) + rtx insn; + { + rtx table; + return (GET_CODE (insn) == JUMP_INSN + && JUMP_LABEL (insn) + && NEXT_INSN (JUMP_LABEL (insn)) + && (table = next_active_insn (JUMP_LABEL (insn))) + && GET_CODE (table) == JUMP_INSN + && (GET_CODE (PATTERN (table)) == ADDR_VEC + || GET_CODE (PATTERN (table)) == ADDR_DIFF_VEC)); + } /* Return nonzero if INSN is a (possibly) conditional jump and nothing more. *************** true_regnum (x) *** 2428,2430 **** --- 2443,2457 ---- } return -1; } + + /* Return regno of the register REG and handle subregs too. */ + unsigned int + reg_or_subregno (reg) + rtx reg; + { + if (REG_P (reg)) + return REGNO (reg); + if (GET_CODE (reg) == SUBREG) + return REGNO (SUBREG_REG (reg)); + abort (); + } diff -Nrc3pad gcc-3.2/gcc/langhooks-def.h gcc-3.2.1/gcc/langhooks-def.h *** gcc-3.2/gcc/langhooks-def.h Thu May 23 17:57:27 2002 --- gcc-3.2.1/gcc/langhooks-def.h Fri Oct 25 22:11:08 2002 *************** extern int lhd_staticp PARAMS ((tree)); *** 48,53 **** --- 48,54 ---- extern void lhd_clear_binding_stack PARAMS ((void)); extern void lhd_print_tree_nothing PARAMS ((FILE *, tree, int)); extern void lhd_set_yydebug PARAMS ((int)); + extern tree lhd_expr_size PARAMS ((tree)); /* Declarations of default tree inlining hooks. */ tree lhd_tree_inlining_walk_subtrees PARAMS ((tree *, int *, *************** tree lhd_tree_inlining_convert_parm_for_ *** 85,90 **** --- 86,92 ---- #define LANG_HOOKS_PRINT_TYPE lhd_print_tree_nothing #define LANG_HOOKS_PRINT_IDENTIFIER lhd_print_tree_nothing #define LANG_HOOKS_SET_YYDEBUG lhd_set_yydebug + #define LANG_HOOKS_EXPR_SIZE lhd_expr_size /* Tree inlining hooks. */ #define LANG_HOOKS_TREE_INLINING_WALK_SUBTREES lhd_tree_inlining_walk_subtrees *************** tree lhd_tree_inlining_convert_parm_for_ *** 102,107 **** --- 104,111 ---- lhd_tree_inlining_copy_res_decl_for_inlining #define LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P \ lhd_tree_inlining_anon_aggr_type_p + #define LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P \ + hook_tree_bool_false #define LANG_HOOKS_TREE_INLINING_START_INLINING \ lhd_tree_inlining_start_inlining #define LANG_HOOKS_TREE_INLINING_END_INLINING \ *************** tree lhd_tree_inlining_convert_parm_for_ *** 118,123 **** --- 122,128 ---- LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P, \ LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING, \ LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, \ + LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P, \ LANG_HOOKS_TREE_INLINING_START_INLINING, \ LANG_HOOKS_TREE_INLINING_END_INLINING, \ LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING \ *************** int lhd_tree_dump_type_quals PARAMS (( *** 156,161 **** --- 161,167 ---- LANG_HOOKS_PRINT_TYPE, \ LANG_HOOKS_PRINT_IDENTIFIER, \ LANG_HOOKS_SET_YYDEBUG, \ + LANG_HOOKS_EXPR_SIZE, \ LANG_HOOKS_TREE_INLINING_INITIALIZER, \ LANG_HOOKS_TREE_DUMP_INITIALIZER \ } diff -Nrc3pad gcc-3.2/gcc/langhooks.c gcc-3.2.1/gcc/langhooks.c *** gcc-3.2/gcc/langhooks.c Thu Mar 21 23:12:21 2002 --- gcc-3.2.1/gcc/langhooks.c Fri Aug 23 12:00:37 2002 *************** lhd_tree_dump_type_quals (t) *** 303,305 **** --- 303,318 ---- return TYPE_QUALS (t); } + /* lang_hooks.expr_size: Determine the size of the value of an expression T + in a language-specific way. Returns a tree for the size in bytes. */ + + tree + lhd_expr_size (exp) + tree exp; + { + if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'd' + && DECL_SIZE_UNIT (exp) != 0) + return DECL_SIZE_UNIT (exp); + else + return size_in_bytes (TREE_TYPE (exp)); + } diff -Nrc3pad gcc-3.2/gcc/langhooks.h gcc-3.2.1/gcc/langhooks.h *** gcc-3.2/gcc/langhooks.h Thu May 23 17:57:28 2002 --- gcc-3.2.1/gcc/langhooks.h Fri Oct 25 22:11:09 2002 *************** struct lang_hooks_for_tree_inlining *** 46,51 **** --- 46,52 ---- void *, int *, void *)); int (*anon_aggr_type_p) PARAMS ((union tree_node *)); + bool (*var_mod_type_p) PARAMS ((union tree_node *)); int (*start_inlining) PARAMS ((union tree_node *)); void (*end_inlining) PARAMS ((union tree_node *)); union tree_node *(*convert_parm_for_inlining) PARAMS ((union tree_node *, *************** struct lang_hooks *** 156,161 **** --- 157,168 ---- warning that the front end does not use such a parser. */ void (*set_yydebug) PARAMS ((int)); + /* Called from expr_size to calculate the size of the value of an + expression in a language-dependent way. Returns a tree for the size + in bytes. A frontend can call lhd_expr_size to get the default + semantics in cases that it doesn't want to handle specially. */ + tree (*expr_size) PARAMS ((tree)); + struct lang_hooks_for_tree_inlining tree_inlining; struct lang_hooks_for_tree_dump tree_dump; diff -Nrc3pad gcc-3.2/gcc/libgcc2.c gcc-3.2.1/gcc/libgcc2.c *** gcc-3.2/gcc/libgcc2.c Tue May 21 23:44:38 2002 --- gcc-3.2.1/gcc/libgcc2.c Wed Oct 9 00:33:12 2002 *************** *** 1,7 **** /* More subroutines needed by GCC output code on some machines. */ /* Compile this one with gcc. */ /* Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! 2000, 2001 Free Software Foundation, Inc. This file is part of GCC. --- 1,7 ---- /* More subroutines needed by GCC output code on some machines. */ /* Compile this one with gcc. */ /* Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GCC. *************** Software Foundation, 59 Temple Place - S *** 36,43 **** #include "tconfig.h" #include "tsystem.h" - #include "machmode.h" - /* Don't use `fancy_abort' here even if config.h says to use it. */ #ifdef abort #undef abort --- 36,41 ---- *************** __floatdisf (DWtype u) *** 1117,1123 **** && u < ((DWtype) 1 << DF_SIZE))) { if ((UDWtype) u & (REP_BIT - 1)) ! u |= REP_BIT; } } f = (Wtype) (u >> WORD_SIZE); --- 1115,1124 ---- && u < ((DWtype) 1 << DF_SIZE))) { if ((UDWtype) u & (REP_BIT - 1)) ! { ! u &= ~ (REP_BIT - 1); ! u |= REP_BIT; ! } } } f = (Wtype) (u >> WORD_SIZE); diff -Nrc3pad gcc-3.2/gcc/loop.c gcc-3.2.1/gcc/loop.c *** gcc-3.2/gcc/loop.c Sat Jun 15 01:12:04 2002 --- gcc-3.2.1/gcc/loop.c Tue Oct 15 14:42:52 2002 *************** scan_loop (loop, flags) *** 640,645 **** --- 640,646 ---- int threshold; /* Nonzero if we are scanning instructions in a sub-loop. */ int loop_depth = 0; + int in_libcall; loop->top = 0; *************** scan_loop (loop, flags) *** 756,1045 **** When MAYBE_NEVER is 0, all insns will be executed at least once so that is not a problem. */ ! for (p = next_insn_in_loop (loop, loop->scan_start); p != NULL_RTX; p = next_insn_in_loop (loop, p)) { ! if (GET_CODE (p) == INSN ! && (set = single_set (p)) ! && GET_CODE (SET_DEST (set)) == REG #ifdef PIC_OFFSET_TABLE_REG_CALL_CLOBBERED ! && SET_DEST (set) != pic_offset_table_rtx #endif ! && ! regs->array[REGNO (SET_DEST (set))].may_not_optimize) ! { ! int tem1 = 0; ! int tem2 = 0; ! int move_insn = 0; ! rtx src = SET_SRC (set); ! rtx dependencies = 0; ! /* Figure out what to use as a source of this insn. If a REG_EQUIV ! note is given or if a REG_EQUAL note with a constant operand is ! specified, use it as the source and mark that we should move ! this insn by calling emit_move_insn rather that duplicating the ! insn. ! Otherwise, only use the REG_EQUAL contents if a REG_RETVAL note ! is present. */ ! temp = find_reg_note (p, REG_EQUIV, NULL_RTX); ! if (temp) ! src = XEXP (temp, 0), move_insn = 1; ! else ! { ! temp = find_reg_note (p, REG_EQUAL, NULL_RTX); ! if (temp && CONSTANT_P (XEXP (temp, 0))) src = XEXP (temp, 0), move_insn = 1; ! if (temp && find_reg_note (p, REG_RETVAL, NULL_RTX)) { ! src = XEXP (temp, 0); ! /* A libcall block can use regs that don't appear in ! the equivalent expression. To move the libcall, ! we must move those regs too. */ ! dependencies = libcall_other_reg (p, src); } - } ! /* For parallels, add any possible uses to the depencies, as we can't move ! the insn without resolving them first. */ ! if (GET_CODE (PATTERN (p)) == PARALLEL) ! { ! for (i = 0; i < XVECLEN (PATTERN (p), 0); i++) { ! rtx x = XVECEXP (PATTERN (p), 0, i); ! if (GET_CODE (x) == USE) ! dependencies = gen_rtx_EXPR_LIST (VOIDmode, XEXP (x, 0), dependencies); } - } ! /* Don't try to optimize a register that was made ! by loop-optimization for an inner loop. ! We don't know its life-span, so we can't compute the benefit. */ ! if (REGNO (SET_DEST (set)) >= max_reg_before_loop) ! ; ! else if (/* The register is used in basic blocks other ! than the one where it is set (meaning that ! something after this point in the loop might ! depend on its value before the set). */ ! ! reg_in_basic_block_p (p, SET_DEST (set)) ! /* And the set is not guaranteed to be executed once ! the loop starts, or the value before the set is ! needed before the set occurs... ! ! ??? Note we have quadratic behaviour here, mitigated ! by the fact that the previous test will often fail for ! large loops. Rather than re-scanning the entire loop ! each time for register usage, we should build tables ! of the register usage and use them here instead. */ ! && (maybe_never ! || loop_reg_used_before_p (loop, set, p))) ! /* It is unsafe to move the set. ! ! This code used to consider it OK to move a set of a variable ! which was not created by the user and not used in an exit test. ! That behavior is incorrect and was removed. */ ! ; ! else if ((tem = loop_invariant_p (loop, src)) ! && (dependencies == 0 ! || (tem2 = loop_invariant_p (loop, dependencies)) != 0) ! && (regs->array[REGNO (SET_DEST (set))].set_in_loop == 1 ! || (tem1 ! = consec_sets_invariant_p ! (loop, SET_DEST (set), ! regs->array[REGNO (SET_DEST (set))].set_in_loop, ! p))) ! /* If the insn can cause a trap (such as divide by zero), ! can't move it unless it's guaranteed to be executed ! once loop is entered. Even a function call might ! prevent the trap insn from being reached ! (since it might exit!) */ ! && ! ((maybe_never || call_passed) ! && may_trap_p (src))) ! { ! struct movable *m; ! int regno = REGNO (SET_DEST (set)); ! ! /* A potential lossage is where we have a case where two insns ! can be combined as long as they are both in the loop, but ! we move one of them outside the loop. For large loops, ! this can lose. The most common case of this is the address ! of a function being called. ! ! Therefore, if this register is marked as being used exactly ! once if we are in a loop with calls (a "large loop"), see if ! we can replace the usage of this register with the source ! of this SET. If we can, delete this insn. ! Don't do this if P has a REG_RETVAL note or if we have ! SMALL_REGISTER_CLASSES and SET_SRC is a hard register. */ ! if (loop_info->has_call ! && regs->array[regno].single_usage != 0 ! && regs->array[regno].single_usage != const0_rtx ! && REGNO_FIRST_UID (regno) == INSN_UID (p) ! && (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 ! || (! (GET_CODE (SET_SRC (set)) == REG ! && REGNO (SET_SRC (set)) < FIRST_PSEUDO_REGISTER))) ! /* This test is not redundant; SET_SRC (set) might be ! a call-clobbered register and the life of REGNO ! might span a call. */ ! && ! modified_between_p (SET_SRC (set), p, ! regs->array[regno].single_usage) ! && no_labels_between_p (p, regs->array[regno].single_usage) ! && validate_replace_rtx (SET_DEST (set), SET_SRC (set), ! regs->array[regno].single_usage)) { ! /* Replace any usage in a REG_EQUAL note. Must copy the ! new source, so that we don't get rtx sharing between the ! SET_SOURCE and REG_NOTES of insn p. */ ! REG_NOTES (regs->array[regno].single_usage) ! = replace_rtx (REG_NOTES (regs->array[regno].single_usage), ! SET_DEST (set), copy_rtx (SET_SRC (set))); ! ! delete_insn (p); ! for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++) ! regs->array[regno+i].set_in_loop = 0; ! continue; ! } ! m = (struct movable *) xmalloc (sizeof (struct movable)); ! m->next = 0; ! m->insn = p; ! m->set_src = src; ! m->dependencies = dependencies; ! m->set_dest = SET_DEST (set); ! m->force = 0; ! m->consec = regs->array[REGNO (SET_DEST (set))].set_in_loop - 1; ! m->done = 0; ! m->forces = 0; ! m->partial = 0; ! m->move_insn = move_insn; ! m->move_insn_first = 0; ! m->is_equiv = (find_reg_note (p, REG_EQUIV, NULL_RTX) != 0); ! m->savemode = VOIDmode; ! m->regno = regno; ! /* Set M->cond if either loop_invariant_p ! or consec_sets_invariant_p returned 2 ! (only conditionally invariant). */ ! m->cond = ((tem | tem1 | tem2) > 1); ! m->global = LOOP_REG_GLOBAL_P (loop, regno); ! m->match = 0; ! m->lifetime = LOOP_REG_LIFETIME (loop, regno); ! m->savings = regs->array[regno].n_times_set; ! if (find_reg_note (p, REG_RETVAL, NULL_RTX)) ! m->savings += libcall_benefit (p); ! for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++) ! regs->array[regno+i].set_in_loop = move_insn ? -2 : -1; ! /* Add M to the end of the chain MOVABLES. */ ! loop_movables_add (movables, m); ! if (m->consec > 0) ! { ! /* It is possible for the first instruction to have a ! REG_EQUAL note but a non-invariant SET_SRC, so we must ! remember the status of the first instruction in case ! the last instruction doesn't have a REG_EQUAL note. */ ! m->move_insn_first = m->move_insn; ! /* Skip this insn, not checking REG_LIBCALL notes. */ ! p = next_nonnote_insn (p); ! /* Skip the consecutive insns, if there are any. */ ! p = skip_consec_insns (p, m->consec); ! /* Back up to the last insn of the consecutive group. */ ! p = prev_nonnote_insn (p); ! /* We must now reset m->move_insn, m->is_equiv, and possibly ! m->set_src to correspond to the effects of all the ! insns. */ ! temp = find_reg_note (p, REG_EQUIV, NULL_RTX); ! if (temp) ! m->set_src = XEXP (temp, 0), m->move_insn = 1; ! else { ! temp = find_reg_note (p, REG_EQUAL, NULL_RTX); ! if (temp && CONSTANT_P (XEXP (temp, 0))) ! m->set_src = XEXP (temp, 0), m->move_insn = 1; ! else ! m->move_insn = 0; } ! m->is_equiv = (find_reg_note (p, REG_EQUIV, NULL_RTX) != 0); ! } ! } ! /* If this register is always set within a STRICT_LOW_PART ! or set to zero, then its high bytes are constant. ! So clear them outside the loop and within the loop ! just load the low bytes. ! We must check that the machine has an instruction to do so. ! Also, if the value loaded into the register ! depends on the same register, this cannot be done. */ ! else if (SET_SRC (set) == const0_rtx ! && GET_CODE (NEXT_INSN (p)) == INSN ! && (set1 = single_set (NEXT_INSN (p))) ! && GET_CODE (set1) == SET ! && (GET_CODE (SET_DEST (set1)) == STRICT_LOW_PART) ! && (GET_CODE (XEXP (SET_DEST (set1), 0)) == SUBREG) ! && (SUBREG_REG (XEXP (SET_DEST (set1), 0)) ! == SET_DEST (set)) ! && !reg_mentioned_p (SET_DEST (set), SET_SRC (set1))) ! { ! int regno = REGNO (SET_DEST (set)); ! if (regs->array[regno].set_in_loop == 2) ! { ! struct movable *m; m = (struct movable *) xmalloc (sizeof (struct movable)); m->next = 0; m->insn = p; m->set_dest = SET_DEST (set); - m->dependencies = 0; m->force = 0; ! m->consec = 0; m->done = 0; m->forces = 0; ! m->move_insn = 0; m->move_insn_first = 0; ! m->partial = 1; ! /* If the insn may not be executed on some cycles, ! we can't clear the whole reg; clear just high part. ! Not even if the reg is used only within this loop. ! Consider this: ! while (1) ! while (s != t) { ! if (foo ()) x = *s; ! use (x); ! } ! Clearing x before the inner loop could clobber a value ! being saved from the last time around the outer loop. ! However, if the reg is not used outside this loop ! and all uses of the register are in the same ! basic block as the store, there is no problem. ! ! If this insn was made by loop, we don't know its ! INSN_LUID and hence must make a conservative ! assumption. */ ! m->global = (INSN_UID (p) >= max_uid_for_loop ! || LOOP_REG_GLOBAL_P (loop, regno) ! || (labels_in_range_p ! (p, REGNO_FIRST_LUID (regno)))); ! if (maybe_never && m->global) ! m->savemode = GET_MODE (SET_SRC (set1)); ! else ! m->savemode = VOIDmode; m->regno = regno; ! m->cond = 0; m->match = 0; m->lifetime = LOOP_REG_LIFETIME (loop, regno); ! m->savings = 1; for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++) ! regs->array[regno+i].set_in_loop = -1; /* Add M to the end of the chain MOVABLES. */ loop_movables_add (movables, m); } } } --- 757,1067 ---- When MAYBE_NEVER is 0, all insns will be executed at least once so that is not a problem. */ ! for (in_libcall = 0, p = next_insn_in_loop (loop, loop->scan_start); p != NULL_RTX; p = next_insn_in_loop (loop, p)) { ! if (in_libcall && INSN_P (p) && find_reg_note (p, REG_RETVAL, NULL_RTX)) ! in_libcall--; ! if (GET_CODE (p) == INSN) ! { ! temp = find_reg_note (p, REG_LIBCALL, NULL_RTX); ! if (temp) ! in_libcall++; ! if (! in_libcall ! && (set = single_set (p)) ! && GET_CODE (SET_DEST (set)) == REG #ifdef PIC_OFFSET_TABLE_REG_CALL_CLOBBERED ! && SET_DEST (set) != pic_offset_table_rtx #endif ! && ! regs->array[REGNO (SET_DEST (set))].may_not_optimize) ! { ! int tem1 = 0; ! int tem2 = 0; ! int move_insn = 0; ! rtx src = SET_SRC (set); ! rtx dependencies = 0; ! /* Figure out what to use as a source of this insn. If a ! REG_EQUIV note is given or if a REG_EQUAL note with a ! constant operand is specified, use it as the source and ! mark that we should move this insn by calling ! emit_move_insn rather that duplicating the insn. ! Otherwise, only use the REG_EQUAL contents if a REG_RETVAL ! note is present. */ ! temp = find_reg_note (p, REG_EQUIV, NULL_RTX); ! if (temp) src = XEXP (temp, 0), move_insn = 1; ! else { ! temp = find_reg_note (p, REG_EQUAL, NULL_RTX); ! if (temp && CONSTANT_P (XEXP (temp, 0))) ! src = XEXP (temp, 0), move_insn = 1; ! if (temp && find_reg_note (p, REG_RETVAL, NULL_RTX)) ! { ! src = XEXP (temp, 0); ! /* A libcall block can use regs that don't appear in ! the equivalent expression. To move the libcall, ! we must move those regs too. */ ! dependencies = libcall_other_reg (p, src); ! } } ! /* For parallels, add any possible uses to the depencies, as ! we can't move the insn without resolving them first. */ ! if (GET_CODE (PATTERN (p)) == PARALLEL) { ! for (i = 0; i < XVECLEN (PATTERN (p), 0); i++) ! { ! rtx x = XVECEXP (PATTERN (p), 0, i); ! if (GET_CODE (x) == USE) ! dependencies ! = gen_rtx_EXPR_LIST (VOIDmode, XEXP (x, 0), ! dependencies); ! } } ! /* Don't try to optimize a register that was made ! by loop-optimization for an inner loop. ! We don't know its life-span, so we can't compute ! the benefit. */ ! if (REGNO (SET_DEST (set)) >= max_reg_before_loop) ! ; ! else if (/* The register is used in basic blocks other ! than the one where it is set (meaning that ! something after this point in the loop might ! depend on its value before the set). */ ! ! reg_in_basic_block_p (p, SET_DEST (set)) ! /* And the set is not guaranteed to be executed once ! the loop starts, or the value before the set is ! needed before the set occurs... ! ??? Note we have quadratic behaviour here, mitigated ! by the fact that the previous test will often fail for ! large loops. Rather than re-scanning the entire loop ! each time for register usage, we should build tables ! of the register usage and use them here instead. */ ! && (maybe_never ! || loop_reg_used_before_p (loop, set, p))) ! /* It is unsafe to move the set. ! This code used to consider it OK to move a set of a variable ! which was not created by the user and not used in an exit ! test. ! That behavior is incorrect and was removed. */ ! ; ! else if ((tem = loop_invariant_p (loop, src)) ! && (dependencies == 0 ! || (tem2 ! = loop_invariant_p (loop, dependencies)) != 0) ! && (regs->array[REGNO (SET_DEST (set))].set_in_loop == 1 ! || (tem1 ! = consec_sets_invariant_p ! (loop, SET_DEST (set), ! regs->array[REGNO (SET_DEST (set))].set_in_loop, ! p))) ! /* If the insn can cause a trap (such as divide by zero), ! can't move it unless it's guaranteed to be executed ! once loop is entered. Even a function call might ! prevent the trap insn from being reached ! (since it might exit!) */ ! && ! ((maybe_never || call_passed) ! && may_trap_p (src))) { ! struct movable *m; ! int regno = REGNO (SET_DEST (set)); ! /* A potential lossage is where we have a case where two insns ! can be combined as long as they are both in the loop, but ! we move one of them outside the loop. For large loops, ! this can lose. The most common case of this is the address ! of a function being called. ! Therefore, if this register is marked as being used ! exactly once if we are in a loop with calls ! (a "large loop"), see if we can replace the usage of ! this register with the source of this SET. If we can, ! delete this insn. ! Don't do this if P has a REG_RETVAL note or if we have ! SMALL_REGISTER_CLASSES and SET_SRC is a hard register. */ ! if (loop_info->has_call ! && regs->array[regno].single_usage != 0 ! && regs->array[regno].single_usage != const0_rtx ! && REGNO_FIRST_UID (regno) == INSN_UID (p) ! && (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 ! || (! (GET_CODE (SET_SRC (set)) == REG ! && (REGNO (SET_SRC (set)) ! < FIRST_PSEUDO_REGISTER)))) ! /* This test is not redundant; SET_SRC (set) might be ! a call-clobbered register and the life of REGNO ! might span a call. */ ! && ! modified_between_p (SET_SRC (set), p, ! regs->array[regno].single_usage) ! && no_labels_between_p (p, ! regs->array[regno].single_usage) ! && validate_replace_rtx (SET_DEST (set), SET_SRC (set), ! regs->array[regno].single_usage)) { ! /* Replace any usage in a REG_EQUAL note. Must copy ! the new source, so that we don't get rtx sharing ! between the SET_SOURCE and REG_NOTES of insn p. */ ! REG_NOTES (regs->array[regno].single_usage) ! = (replace_rtx ! (REG_NOTES (regs->array[regno].single_usage), ! SET_DEST (set), copy_rtx (SET_SRC (set)))); + delete_insn (p); + for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); + i++) + regs->array[regno+i].set_in_loop = 0; + continue; } ! m = (struct movable *) xmalloc (sizeof (struct movable)); m->next = 0; m->insn = p; + m->set_src = src; + m->dependencies = dependencies; m->set_dest = SET_DEST (set); m->force = 0; ! m->consec ! = regs->array[REGNO (SET_DEST (set))].set_in_loop - 1; m->done = 0; m->forces = 0; ! m->partial = 0; ! m->move_insn = move_insn; m->move_insn_first = 0; ! m->is_equiv = (find_reg_note (p, REG_EQUIV, NULL_RTX) != 0); ! m->savemode = VOIDmode; m->regno = regno; ! /* Set M->cond if either loop_invariant_p ! or consec_sets_invariant_p returned 2 ! (only conditionally invariant). */ ! m->cond = ((tem | tem1 | tem2) > 1); ! m->global = LOOP_REG_GLOBAL_P (loop, regno); m->match = 0; m->lifetime = LOOP_REG_LIFETIME (loop, regno); ! m->savings = regs->array[regno].n_times_set; ! if (find_reg_note (p, REG_RETVAL, NULL_RTX)) ! m->savings += libcall_benefit (p); for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++) ! regs->array[regno+i].set_in_loop = move_insn ? -2 : -1; /* Add M to the end of the chain MOVABLES. */ loop_movables_add (movables, m); + + if (m->consec > 0) + { + /* It is possible for the first instruction to have a + REG_EQUAL note but a non-invariant SET_SRC, so we must + remember the status of the first instruction in case + the last instruction doesn't have a REG_EQUAL note. */ + m->move_insn_first = m->move_insn; + + /* Skip this insn, not checking REG_LIBCALL notes. */ + p = next_nonnote_insn (p); + /* Skip the consecutive insns, if there are any. */ + p = skip_consec_insns (p, m->consec); + /* Back up to the last insn of the consecutive group. */ + p = prev_nonnote_insn (p); + + /* We must now reset m->move_insn, m->is_equiv, and + possibly m->set_src to correspond to the effects of + all the insns. */ + temp = find_reg_note (p, REG_EQUIV, NULL_RTX); + if (temp) + m->set_src = XEXP (temp, 0), m->move_insn = 1; + else + { + temp = find_reg_note (p, REG_EQUAL, NULL_RTX); + if (temp && CONSTANT_P (XEXP (temp, 0))) + m->set_src = XEXP (temp, 0), m->move_insn = 1; + else + m->move_insn = 0; + + } + m->is_equiv + = (find_reg_note (p, REG_EQUIV, NULL_RTX) != 0); + } + } + /* If this register is always set within a STRICT_LOW_PART + or set to zero, then its high bytes are constant. + So clear them outside the loop and within the loop + just load the low bytes. + We must check that the machine has an instruction to do so. + Also, if the value loaded into the register + depends on the same register, this cannot be done. */ + else if (SET_SRC (set) == const0_rtx + && GET_CODE (NEXT_INSN (p)) == INSN + && (set1 = single_set (NEXT_INSN (p))) + && GET_CODE (set1) == SET + && (GET_CODE (SET_DEST (set1)) == STRICT_LOW_PART) + && (GET_CODE (XEXP (SET_DEST (set1), 0)) == SUBREG) + && (SUBREG_REG (XEXP (SET_DEST (set1), 0)) + == SET_DEST (set)) + && !reg_mentioned_p (SET_DEST (set), SET_SRC (set1))) + { + int regno = REGNO (SET_DEST (set)); + if (regs->array[regno].set_in_loop == 2) + { + struct movable *m; + m = (struct movable *) xmalloc (sizeof (struct movable)); + m->next = 0; + m->insn = p; + m->set_dest = SET_DEST (set); + m->dependencies = 0; + m->force = 0; + m->consec = 0; + m->done = 0; + m->forces = 0; + m->move_insn = 0; + m->move_insn_first = 0; + m->partial = 1; + /* If the insn may not be executed on some cycles, + we can't clear the whole reg; clear just high part. + Not even if the reg is used only within this loop. + Consider this: + while (1) + while (s != t) { + if (foo ()) x = *s; + use (x); + } + Clearing x before the inner loop could clobber a value + being saved from the last time around the outer loop. + However, if the reg is not used outside this loop + and all uses of the register are in the same + basic block as the store, there is no problem. + + If this insn was made by loop, we don't know its + INSN_LUID and hence must make a conservative + assumption. */ + m->global = (INSN_UID (p) >= max_uid_for_loop + || LOOP_REG_GLOBAL_P (loop, regno) + || (labels_in_range_p + (p, REGNO_FIRST_LUID (regno)))); + if (maybe_never && m->global) + m->savemode = GET_MODE (SET_SRC (set1)); + else + m->savemode = VOIDmode; + m->regno = regno; + m->cond = 0; + m->match = 0; + m->lifetime = LOOP_REG_LIFETIME (loop, regno); + m->savings = 1; + for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); + i++) + regs->array[regno+i].set_in_loop = -1; + /* Add M to the end of the chain MOVABLES. */ + loop_movables_add (movables, m); + } } } } *************** move_movables (loop, movables, threshold *** 1911,1920 **** for (count = m->consec; count >= 0; count--) { /* If this is the first insn of a library call sequence, ! skip to the end. */ if (GET_CODE (p) != NOTE && (temp = find_reg_note (p, REG_LIBCALL, NULL_RTX))) ! p = XEXP (temp, 0); /* If this is the last insn of a libcall sequence, then delete every insn in the sequence except the last. --- 1933,1942 ---- for (count = m->consec; count >= 0; count--) { /* If this is the first insn of a library call sequence, ! something is very wrong. */ if (GET_CODE (p) != NOTE && (temp = find_reg_note (p, REG_LIBCALL, NULL_RTX))) ! abort (); /* If this is the last insn of a libcall sequence, then delete every insn in the sequence except the last. *************** emit_prefetch_instructions (loop) *** 4090,4100 **** { rtx reg = gen_reg_rtx (Pmode); rtx loop_start = loop->start; rtx add_val = simplify_gen_binary (PLUS, Pmode, info[i].giv->add_val, GEN_INT (y * PREFETCH_BLOCK)); ! loop_iv_add_mult_emit_before (loop, info[i].class->initial_value, info[i].giv->mult_val, add_val, reg, 0, loop_start); emit_insn_before (gen_prefetch (reg, GEN_INT (info[i].write), --- 4112,4128 ---- { rtx reg = gen_reg_rtx (Pmode); rtx loop_start = loop->start; + rtx init_val = info[i].class->initial_value; rtx add_val = simplify_gen_binary (PLUS, Pmode, info[i].giv->add_val, GEN_INT (y * PREFETCH_BLOCK)); ! /* Functions called by LOOP_IV_ADD_EMIT_BEFORE expect a ! non-constant INIT_VAL to have the same mode as REG, which ! in this case we know to be Pmode. */ ! if (GET_MODE (init_val) != Pmode && !CONSTANT_P (init_val)) ! init_val = convert_to_mode (Pmode, init_val, 0); ! loop_iv_add_mult_emit_before (loop, init_val, info[i].giv->mult_val, add_val, reg, 0, loop_start); emit_insn_before (gen_prefetch (reg, GEN_INT (info[i].write), *************** canonicalize_condition (insn, cond, reve *** 9264,9270 **** { case LE: if ((unsigned HOST_WIDE_INT) const_val != max_val >> 1) ! code = LT, op1 = GEN_INT (const_val + 1); break; /* When cross-compiling, const_val might be sign-extended from --- 9292,9298 ---- { case LE: if ((unsigned HOST_WIDE_INT) const_val != max_val >> 1) ! code = LT, op1 = gen_int_mode (const_val + 1, GET_MODE (op0)); break; /* When cross-compiling, const_val might be sign-extended from *************** canonicalize_condition (insn, cond, reve *** 9273,9289 **** if ((HOST_WIDE_INT) (const_val & max_val) != (((HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (GET_MODE (op0)) - 1)))) ! code = GT, op1 = GEN_INT (const_val - 1); break; case LEU: if (uconst_val < max_val) ! code = LTU, op1 = GEN_INT (uconst_val + 1); break; case GEU: if (uconst_val != 0) ! code = GTU, op1 = GEN_INT (uconst_val - 1); break; default: --- 9301,9317 ---- if ((HOST_WIDE_INT) (const_val & max_val) != (((HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (GET_MODE (op0)) - 1)))) ! code = GT, op1 = gen_int_mode (const_val - 1, GET_MODE (op0)); break; case LEU: if (uconst_val < max_val) ! code = LTU, op1 = gen_int_mode (uconst_val + 1, GET_MODE (op0)); break; case GEU: if (uconst_val != 0) ! code = GTU, op1 = gen_int_mode (uconst_val - 1, GET_MODE (op0)); break; default: *************** loop_regs_scan (loop, extra_size) *** 9532,9537 **** --- 9560,9584 ---- if (GET_CODE (insn) == CODE_LABEL || GET_CODE (insn) == JUMP_INSN) memset (last_set, 0, regs->num * sizeof (rtx)); + + /* Invalidate all registers used for function argument passing. + We check rtx_varies_p for the same reason as below, to allow + optimizing PIC calculations. */ + if (GET_CODE (insn) == CALL_INSN) + { + rtx link; + for (link = CALL_INSN_FUNCTION_USAGE (insn); + link; + link = XEXP (link, 1)) + { + rtx op, reg; + + if (GET_CODE (op = XEXP (link, 0)) == USE + && GET_CODE (reg = XEXP (op, 0)) == REG + && rtx_varies_p (reg, 1)) + regs->array[REGNO (reg)].may_not_optimize = 1; + } + } } /* Invalidate all hard registers clobbered by calls. With one exception: diff -Nrc3pad gcc-3.2/gcc/loop.h gcc-3.2.1/gcc/loop.h *** gcc-3.2/gcc/loop.h Wed Apr 3 07:53:51 2002 --- gcc-3.2.1/gcc/loop.h Tue Sep 17 03:25:06 2002 *************** struct loop_info *** 314,319 **** --- 314,322 ---- int has_multiple_exit_targets; /* Nonzero if there is an indirect jump in the current function. */ int has_indirect_jump; + /* Whether loop unrolling has emitted copies of the loop body so + that the main loop needs no exit tests. */ + int preconditioned; /* Register or constant initial loop value. */ rtx initial_value; /* Register or constant value used for comparison test. */ diff -Nrc3pad gcc-3.2/gcc/mklibgcc.in gcc-3.2.1/gcc/mklibgcc.in *** gcc-3.2/gcc/mklibgcc.in Thu May 9 17:35:21 2002 --- gcc-3.2.1/gcc/mklibgcc.in Sat Oct 5 21:32:06 2002 *************** *** 32,38 **** # SHLIB_MAPFILES # SHLIB_NM_FLAGS # SHLIB_INSTALL ! # SHLIB_SLIBDIR_SUFFIXES # Make needs VPATH to be literal. echo 'srcdir = @srcdir@' --- 32,38 ---- # SHLIB_MAPFILES # SHLIB_NM_FLAGS # SHLIB_INSTALL ! # MULTILIB_OSDIRNAMES # Make needs VPATH to be literal. echo 'srcdir = @srcdir@' *************** for ml in $MULTILIBS; do *** 317,338 **** fi shlib_so_name="$shlib_base_name" shlib_dir= ! if [ -n "$SHLIB_SLIBDIR_SUFFIXES" ]; then if [ "$dir" != . ]; then shlib_dir="$dir"/ ! for suffix_pair in $SHLIB_SLIBDIR_SUFFIXES ; do ! base_ml_dir=`echo ${suffix_pair} | sed -e 's/:.*$//' -e 's/=/$(EQ)/g'` ! if [ "$dir" = "$base_ml_dir" ]; then ! shlib_so_name=libgcc_s ! break ! else ! canon_dir=`echo $dir | sed -n -e "s:$base_ml_dir/::p"` ! if [ -n "$canon_dir" ]; then ! shlib_so_name=libgcc_s_`echo $canon_dir | sed s,/,_,g` ! break ! fi ! fi ! done fi fi echo "" --- 317,334 ---- fi shlib_so_name="$shlib_base_name" shlib_dir= ! if [ -n "$MULTILIB_OSDIRNAMES" ]; then if [ "$dir" != . ]; then + gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory` + os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory` shlib_dir="$dir"/ ! gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'` ! os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"` ! if [ -z "$os_multilib_base" ]; then ! shlib_so_name=libgcc_s ! else ! shlib_so_name=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g` ! fi fi fi echo "" *************** echo "" *** 438,443 **** --- 434,440 ---- echo "install: $all" for ml in $MULTILIBS; do dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` + flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; if [ $dir != . ]; then ldir='$(libsubdir)'/$dir echo " if [ -d $ldir ]; then true; else mkdir $ldir; chmod a+rx $ldir; fi;" *************** for ml in $MULTILIBS; do *** 460,498 **** shlib_so_name="$shlib_base_name" shlib_dir= shlib_slibdir_qual= ! if [ -n "$SHLIB_SLIBDIR_SUFFIXES" ]; then ! shlib_slibdir_qual=none if [ "$dir" != . ]; then shlib_dir="$dir"/ - for suffix_pair in $SHLIB_SLIBDIR_SUFFIXES ; do - base_ml_dir=`echo ${suffix_pair} | sed -e 's/:.*$//' -e 's/=/$(EQ)/g'` - if [ "$dir" = "$base_ml_dir" ]; then - shlib_so_name=libgcc_s - shlib_slibdir_qual=`echo ${suffix_pair} | sed -e 's/^[^:]*://'` - break - else - canon_dir=`echo $dir | sed -n -e "s:$base_ml_dir/::p"` - if [ -n "$canon_dir" ]; then - shlib_so_name=libgcc_s_`echo $canon_dir | sed s,/,_,g` - shlib_slibdir_qual=`echo ${suffix_pair} | sed -e 's/^[^:]*://'` - break - fi - fi - done fi ! if [ "$shlib_slibdir_qual" = none ]; then ! for suffix_pair in $SHLIB_SLIBDIR_SUFFIXES ; do ! base_ml_dir=`echo ${suffix_pair} | sed -e 's/:.*$//' -e 's/=/$(EQ)/g'` ! shlib_slibdir_qual=`echo ${suffix_pair} | sed -e 's/^[^:]*://'` ! for ml2 in $MULTILIBS; do ! dir2=`echo ${ml2} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` ! if [ "$base_ml_dir" = "$dir2" ]; then ! shlib_slibdir_qual= ! break ! fi ! done ! if [ -n "$shlib_slibdir_qual" ]; then break; fi ! done fi fi echo " $SHLIB_INSTALL" \ --- 457,478 ---- shlib_so_name="$shlib_base_name" shlib_dir= shlib_slibdir_qual= ! if [ -n "$MULTILIB_OSDIRNAMES" ]; then ! gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory` ! os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory` if [ "$dir" != . ]; then shlib_dir="$dir"/ fi ! gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'` ! os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"` ! if [ -z "$os_multilib_base" ]; then ! shlib_so_name=libgcc_s ! if [ "$os_multilib_dir" != "." ]; then ! shlib_slibdir_qual="/$os_multilib_dir" ! fi ! else ! shlib_so_name=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g` ! shlib_slibdir_qual="/$os_multilib_base" fi fi echo " $SHLIB_INSTALL" \ diff -Nrc3pad gcc-3.2/gcc/objc/objc-parse.c gcc-3.2.1/gcc/objc/objc-parse.c *** gcc-3.2/gcc/objc/objc-parse.c Wed Aug 14 09:51:32 2002 --- gcc-3.2.1/gcc/objc/objc-parse.c Tue Nov 19 18:32:19 2002 *************** c_parse_init () *** 210,220 **** ! #define YYFINAL 1163 #define YYFLAG -32768 #define YYNTBASE 92 ! #define YYTRANSLATE(x) ((unsigned)(x) <= 322 ? yytranslate[x] : 356) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, --- 210,220 ---- ! #define YYFINAL 1164 #define YYFLAG -32768 #define YYNTBASE 92 ! #define YYTRANSLATE(x) ((unsigned)(x) <= 322 ? yytranslate[x] : 357) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, *************** static const short yyprhs[] = { 0, *** 260,555 **** 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 126, 128, 130, 134, 136, 139, 142, 145, 148, 151, 156, 159, 164, 167, 170, 172, 174, ! 176, 181, 183, 187, 191, 195, 199, 203, 207, 211, ! 215, 219, 223, 227, 231, 232, 237, 238, 243, 244, ! 245, 253, 254, 260, 264, 268, 270, 272, 274, 276, ! 277, 285, 289, 293, 297, 301, 306, 313, 322, 329, ! 334, 338, 342, 345, 348, 350, 352, 354, 356, 358, ! 360, 363, 366, 370, 371, 373, 376, 380, 382, 384, ! 387, 390, 395, 400, 403, 406, 410, 411, 413, 418, ! 423, 427, 431, 434, 437, 439, 442, 445, 448, 451, ! 454, 456, 459, 461, 464, 467, 470, 473, 476, 479, ! 481, 484, 487, 490, 493, 496, 499, 502, 505, 508, ! 511, 514, 517, 520, 523, 526, 529, 531, 534, 537, ! 540, 543, 546, 549, 552, 555, 558, 561, 564, 567, ! 570, 573, 576, 579, 582, 585, 588, 591, 594, 597, ! 600, 603, 606, 609, 612, 615, 618, 621, 624, 627, ! 630, 633, 636, 639, 642, 645, 648, 651, 654, 657, ! 660, 663, 665, 667, 669, 671, 673, 675, 677, 679, 681, 683, 685, 687, 689, 691, 693, 695, 697, 699, 701, 703, 705, 707, 709, 711, 713, 715, 717, 719, 721, 723, 725, 727, 729, 731, 733, 735, 737, 739, 741, 743, 745, 747, 749, 751, 753, 755, 757, 759, ! 761, 763, 765, 767, 769, 771, 773, 775, 776, 778, ! 780, 782, 784, 786, 788, 790, 792, 795, 798, 800, ! 805, 810, 812, 817, 819, 824, 825, 830, 831, 838, ! 842, 843, 850, 854, 855, 857, 859, 862, 869, 871, ! 875, 876, 878, 883, 890, 895, 897, 899, 901, 903, ! 905, 906, 911, 913, 914, 917, 919, 923, 927, 930, ! 931, 936, 938, 939, 944, 946, 948, 950, 953, 956, ! 957, 958, 966, 967, 968, 976, 978, 980, 985, 989, ! 992, 996, 998, 1000, 1002, 1004, 1008, 1011, 1013, 1015, ! 1019, 1022, 1026, 1030, 1035, 1039, 1044, 1048, 1051, 1053, ! 1055, 1058, 1060, 1063, 1065, 1068, 1069, 1077, 1083, 1084, ! 1092, 1098, 1099, 1108, 1109, 1117, 1120, 1123, 1126, 1127, ! 1129, 1130, 1132, 1134, 1137, 1138, 1142, 1145, 1150, 1154, ! 1159, 1163, 1165, 1167, 1170, 1172, 1177, 1179, 1184, 1189, ! 1196, 1202, 1207, 1214, 1220, 1222, 1226, 1228, 1230, 1234, ! 1235, 1239, 1240, 1242, 1243, 1245, 1248, 1250, 1252, 1254, ! 1258, 1261, 1265, 1270, 1274, 1277, 1280, 1282, 1286, 1291, ! 1294, 1298, 1302, 1307, 1312, 1318, 1324, 1326, 1328, 1330, ! 1332, 1334, 1337, 1340, 1343, 1346, 1348, 1351, 1354, 1357, ! 1359, 1362, 1365, 1368, 1371, 1373, 1376, 1378, 1380, 1382, ! 1384, 1387, 1388, 1389, 1390, 1391, 1392, 1394, 1396, 1399, ! 1403, 1405, 1408, 1410, 1412, 1418, 1420, 1422, 1425, 1428, ! 1431, 1434, 1435, 1441, 1442, 1447, 1448, 1449, 1451, 1454, ! 1458, 1462, 1466, 1467, 1472, 1474, 1478, 1479, 1480, 1488, ! 1494, 1497, 1498, 1499, 1500, 1501, 1514, 1515, 1522, 1525, ! 1527, 1529, 1532, 1536, 1539, 1542, 1545, 1549, 1556, 1565, ! 1576, 1589, 1593, 1598, 1600, 1604, 1610, 1613, 1619, 1620, ! 1622, 1623, 1625, 1626, 1628, 1630, 1634, 1639, 1647, 1649, ! 1653, 1654, 1658, 1661, 1662, 1663, 1670, 1673, 1674, 1676, ! 1678, 1682, 1684, 1688, 1693, 1698, 1702, 1707, 1711, 1716, ! 1721, 1725, 1730, 1734, 1736, 1737, 1741, 1743, 1746, 1748, ! 1752, 1754, 1758, 1760, 1762, 1764, 1766, 1768, 1770, 1772, ! 1774, 1778, 1782, 1787, 1788, 1789, 1800, 1801, 1808, 1809, ! 1810, 1823, 1824, 1833, 1834, 1841, 1844, 1845, 1854, 1859, ! 1860, 1870, 1876, 1877, 1884, 1888, 1889, 1891, 1895, 1899, ! 1901, 1903, 1905, 1907, 1908, 1912, 1915, 1919, 1923, 1925, ! 1926, 1928, 1933, 1935, 1939, 1942, 1944, 1946, 1947, 1948, ! 1949, 1957, 1958, 1959, 1962, 1964, 1966, 1969, 1970, 1974, ! 1976, 1978, 1979, 1980, 1986, 1991, 1993, 1999, 2002, 2003, ! 2006, 2007, 2009, 2011, 2013, 2016, 2019, 2024, 2027, 2030, ! 2032, 2036, 2039, 2042, 2044, 2045, 2048, 2049, 2053, 2055, ! 2057, 2060, 2062, 2064, 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094, 2096, ! 2098, 2100, 2102, 2104, 2106, 2108, 2110, 2112, 2119, 2123, ! 2129, 2132, 2134, 2136, 2138, 2141, 2143, 2147, 2150, 2152, ! 2154, 2155, 2156, 2163, 2165, 2167, 2169, 2172, 2175, 2177, ! 2182, 2187 }; static const short yyrhs[] = { -1, 93, 0, 0, 94, 96, 0, 0, 93, 95, 96, ! 0, 98, 0, 97, 0, 291, 0, 27, 67, 107, ! 83, 84, 0, 290, 96, 0, 129, 163, 84, 0, ! 149, 129, 163, 84, 0, 148, 129, 162, 84, 0, ! 155, 84, 0, 1, 84, 0, 1, 85, 0, 84, ! 0, 0, 0, 148, 129, 191, 99, 124, 100, 251, ! 252, 240, 0, 148, 129, 191, 1, 0, 0, 0, ! 149, 129, 196, 101, 124, 102, 251, 252, 240, 0, ! 149, 129, 196, 1, 0, 0, 0, 129, 196, 103, ! 124, 104, 251, 252, 240, 0, 129, 196, 1, 0, 3, 0, 4, 0, 80, 0, 75, 0, 51, 0, 57, 0, 56, 0, 62, 0, 63, 0, 86, 0, ! 87, 0, 109, 0, 0, 109, 0, 114, 0, 109, ! 88, 114, 0, 120, 0, 58, 113, 0, 290, 113, ! 0, 106, 113, 0, 48, 105, 0, 111, 110, 0, ! 111, 67, 217, 83, 0, 112, 110, 0, 112, 67, ! 217, 83, 0, 33, 113, 0, 34, 113, 0, 11, ! 0, 29, 0, 110, 0, 67, 217, 83, 113, 0, ! 113, 0, 114, 56, 114, 0, 114, 57, 114, 0, ! 114, 58, 114, 0, 114, 59, 114, 0, 114, 60, ! 114, 0, 114, 54, 114, 0, 114, 55, 114, 0, ! 114, 53, 114, 0, 114, 52, 114, 0, 114, 51, ! 114, 0, 114, 49, 114, 0, 114, 50, 114, 0, ! 0, 114, 48, 115, 114, 0, 0, 114, 47, 116, ! 114, 0, 0, 0, 114, 45, 117, 107, 46, 118, ! 114, 0, 0, 114, 45, 119, 46, 114, 0, 114, ! 44, 114, 0, 114, 43, 114, 0, 3, 0, 8, ! 0, 122, 0, 42, 0, 0, 67, 217, 83, 89, ! 121, 177, 85, 0, 67, 107, 83, 0, 67, 1, ! 83, 0, 244, 242, 83, 0, 244, 1, 83, 0, ! 120, 67, 108, 83, 0, 35, 67, 114, 88, 217, ! 83, 0, 36, 67, 114, 88, 114, 88, 114, 83, ! 0, 37, 67, 217, 88, 217, 83, 0, 120, 68, ! 107, 90, 0, 120, 66, 105, 0, 120, 65, 105, ! 0, 120, 62, 0, 120, 63, 0, 347, 0, 353, ! 0, 354, 0, 355, 0, 123, 0, 9, 0, 122, ! 9, 0, 91, 9, 0, 123, 91, 9, 0, 0, ! 126, 0, 126, 10, 0, 251, 252, 127, 0, 125, ! 0, 232, 0, 126, 125, 0, 125, 232, 0, 150, ! 129, 162, 84, 0, 151, 129, 163, 84, 0, 150, ! 84, 0, 151, 84, 0, 251, 252, 131, 0, 0, ! 169, 0, 148, 129, 162, 84, 0, 149, 129, 163, ! 84, 0, 148, 129, 185, 0, 149, 129, 188, 0, ! 155, 84, 0, 290, 131, 0, 7, 0, 132, 7, ! 0, 133, 7, 0, 132, 170, 0, 134, 7, 0, ! 135, 7, 0, 170, 0, 134, 170, 0, 157, 0, ! 136, 7, 0, 137, 7, 0, 136, 159, 0, 137, ! 159, 0, 132, 157, 0, 133, 157, 0, 158, 0, ! 136, 170, 0, 136, 160, 0, 137, 160, 0, 132, ! 158, 0, 133, 158, 0, 138, 7, 0, 139, 7, ! 0, 138, 159, 0, 139, 159, 0, 134, 157, 0, ! 135, 157, 0, 138, 170, 0, 138, 160, 0, 139, ! 160, 0, 134, 158, 0, 135, 158, 0, 5, 0, ! 140, 7, 0, 141, 7, 0, 132, 5, 0, 133, ! 5, 0, 140, 5, 0, 141, 5, 0, 140, 170, ! 0, 142, 7, 0, 143, 7, 0, 134, 5, 0, ! 135, 5, 0, 142, 5, 0, 143, 5, 0, 142, ! 170, 0, 144, 7, 0, 145, 7, 0, 144, 159, ! 0, 145, 159, 0, 140, 157, 0, 141, 157, 0, ! 136, 5, 0, 137, 5, 0, 144, 5, 0, 145, ! 5, 0, 144, 170, 0, 144, 160, 0, 145, 160, ! 0, 140, 158, 0, 141, 158, 0, 146, 7, 0, ! 147, 7, 0, 146, 159, 0, 147, 159, 0, 142, ! 157, 0, 143, 157, 0, 138, 5, 0, 139, 5, ! 0, 146, 5, 0, 147, 5, 0, 146, 170, 0, ! 146, 160, 0, 147, 160, 0, 142, 158, 0, 143, ! 158, 0, 136, 0, 137, 0, 138, 0, 139, 0, ! 144, 0, 145, 0, 146, 0, 147, 0, 132, 0, ! 133, 0, 134, 0, 135, 0, 140, 0, 141, 0, ! 142, 0, 143, 0, 136, 0, 137, 0, 144, 0, ! 145, 0, 132, 0, 133, 0, 140, 0, 141, 0, ! 136, 0, 137, 0, 138, 0, 139, 0, 132, 0, 133, 0, 134, 0, 135, 0, 136, 0, 137, 0, ! 138, 0, 139, 0, 132, 0, 133, 0, 134, 0, ! 135, 0, 132, 0, 133, 0, 134, 0, 135, 0, 136, 0, 137, 0, 138, 0, 139, 0, 140, 0, 141, 0, 142, 0, 143, 0, 144, 0, 145, 0, ! 146, 0, 147, 0, 0, 153, 0, 159, 0, 161, ! 0, 160, 0, 6, 0, 205, 0, 200, 0, 4, ! 0, 75, 307, 0, 80, 307, 0, 308, 0, 28, ! 67, 107, 83, 0, 28, 67, 217, 83, 0, 165, ! 0, 162, 88, 130, 165, 0, 167, 0, 163, 88, ! 130, 167, 0, 0, 27, 67, 122, 83, 0, 0, ! 191, 164, 169, 44, 166, 175, 0, 191, 164, 169, ! 0, 0, 196, 164, 169, 44, 168, 175, 0, 196, ! 164, 169, 0, 0, 170, 0, 171, 0, 170, 171, ! 0, 30, 67, 67, 172, 83, 83, 0, 173, 0, ! 172, 88, 173, 0, 0, 174, 0, 174, 67, 3, ! 83, 0, 174, 67, 3, 88, 109, 83, 0, 174, ! 67, 108, 83, 0, 105, 0, 5, 0, 6, 0, ! 7, 0, 114, 0, 0, 89, 176, 177, 85, 0, ! 1, 0, 0, 178, 206, 0, 179, 0, 178, 88, ! 179, 0, 183, 44, 181, 0, 184, 181, 0, 0, ! 105, 46, 180, 181, 0, 181, 0, 0, 89, 182, ! 177, 85, 0, 114, 0, 1, 0, 184, 0, 183, ! 184, 0, 66, 105, 0, 0, 0, 191, 186, 124, ! 187, 251, 252, 245, 0, 0, 0, 196, 189, 124, ! 190, 251, 252, 245, 0, 192, 0, 196, 0, 67, ! 169, 192, 83, 0, 192, 67, 285, 0, 192, 225, ! 0, 58, 156, 192, 0, 4, 0, 80, 0, 194, ! 0, 195, 0, 194, 67, 285, 0, 194, 225, 0, ! 4, 0, 80, 0, 195, 67, 285, 0, 195, 225, ! 0, 58, 156, 194, 0, 58, 156, 195, 0, 67, ! 169, 195, 83, 0, 196, 67, 285, 0, 67, 169, ! 196, 83, 0, 58, 156, 196, 0, 196, 225, 0, ! 3, 0, 13, 0, 13, 170, 0, 14, 0, 14, ! 170, 0, 12, 0, 12, 170, 0, 0, 197, 105, ! 89, 201, 208, 85, 169, 0, 197, 89, 208, 85, ! 169, 0, 0, 198, 105, 89, 202, 208, 85, 169, ! 0, 198, 89, 208, 85, 169, 0, 0, 199, 105, ! 89, 203, 215, 207, 85, 169, 0, 0, 199, 89, ! 204, 215, 207, 85, 169, 0, 197, 105, 0, 198, ! 105, 0, 199, 105, 0, 0, 88, 0, 0, 88, ! 0, 209, 0, 209, 210, 0, 0, 209, 210, 84, ! 0, 209, 84, 0, 73, 67, 75, 83, 0, 152, ! 129, 211, 0, 152, 129, 251, 252, 0, 153, 129, ! 212, 0, 153, 0, 1, 0, 290, 210, 0, 213, ! 0, 211, 88, 130, 213, 0, 214, 0, 212, 88, ! 130, 214, 0, 251, 252, 191, 169, 0, 251, 252, ! 191, 46, 114, 169, 0, 251, 252, 46, 114, 169, ! 0, 251, 252, 196, 169, 0, 251, 252, 196, 46, ! 114, 169, 0, 251, 252, 46, 114, 169, 0, 216, ! 0, 215, 88, 216, 0, 1, 0, 105, 0, 105, ! 44, 114, 0, 0, 154, 218, 219, 0, 0, 221, ! 0, 0, 221, 0, 222, 170, 0, 223, 0, 222, ! 0, 224, 0, 58, 156, 222, 0, 58, 156, 0, ! 58, 156, 223, 0, 67, 169, 221, 83, 0, 224, ! 67, 275, 0, 224, 225, 0, 67, 275, 0, 225, ! 0, 68, 107, 90, 0, 68, 154, 107, 90, 0, ! 68, 90, 0, 68, 154, 90, 0, 68, 58, 90, ! 0, 68, 154, 58, 90, 0, 68, 5, 107, 90, ! 0, 68, 5, 154, 107, 90, 0, 68, 154, 5, ! 107, 90, 0, 227, 0, 228, 0, 229, 0, 230, ! 0, 255, 0, 227, 255, 0, 228, 255, 0, 229, ! 255, 0, 230, 255, 0, 128, 0, 227, 128, 0, ! 228, 128, 0, 230, 128, 0, 256, 0, 227, 256, ! 0, 228, 256, 0, 229, 256, 0, 230, 256, 0, ! 232, 0, 231, 232, 0, 227, 0, 228, 0, 229, ! 0, 230, 0, 1, 84, 0, 0, 0, 0, 0, ! 0, 238, 0, 239, 0, 238, 239, 0, 32, 289, ! 84, 0, 245, 0, 1, 245, 0, 89, 0, 85, ! 0, 233, 237, 243, 85, 234, 0, 226, 0, 1, ! 0, 67, 89, 0, 241, 242, 0, 247, 254, 0, ! 247, 1, 0, 0, 15, 248, 67, 107, 83, 0, ! 0, 18, 250, 254, 17, 0, 0, 0, 255, 0, ! 256, 253, 0, 235, 253, 236, 0, 251, 252, 267, ! 0, 251, 252, 268, 0, 0, 246, 16, 258, 254, ! 0, 246, 0, 246, 16, 1, 0, 0, 0, 17, ! 259, 67, 107, 83, 260, 254, 0, 249, 67, 107, ! 83, 84, 0, 249, 1, 0, 0, 0, 0, 0, ! 19, 261, 67, 266, 262, 270, 84, 263, 270, 83, ! 264, 254, 0, 0, 20, 67, 107, 83, 265, 254, ! 0, 270, 84, 0, 131, 0, 245, 0, 107, 84, ! 0, 235, 257, 236, 0, 23, 84, 0, 24, 84, ! 0, 25, 84, 0, 25, 107, 84, 0, 27, 269, ! 67, 107, 83, 84, 0, 27, 269, 67, 107, 46, ! 271, 83, 84, 0, 27, 269, 67, 107, 46, 271, ! 46, 271, 83, 84, 0, 27, 269, 67, 107, 46, ! 271, 46, 271, 46, 274, 83, 84, 0, 26, 105, ! 84, 0, 26, 58, 107, 84, 0, 84, 0, 21, ! 114, 46, 0, 21, 114, 10, 114, 46, 0, 22, ! 46, 0, 105, 251, 252, 46, 169, 0, 0, 7, ! 0, 0, 107, 0, 0, 272, 0, 273, 0, 272, ! 88, 273, 0, 9, 67, 107, 83, 0, 68, 105, ! 90, 9, 67, 107, 83, 0, 122, 0, 274, 88, ! 122, 0, 0, 169, 276, 277, 0, 280, 83, 0, ! 0, 0, 281, 84, 278, 169, 279, 277, 0, 1, ! 83, 0, 0, 10, 0, 281, 0, 281, 88, 10, ! 0, 283, 0, 281, 88, 282, 0, 148, 129, 193, ! 169, 0, 148, 129, 196, 169, 0, 148, 129, 220, ! 0, 149, 129, 196, 169, 0, 149, 129, 220, 0, ! 150, 284, 193, 169, 0, 150, 284, 196, 169, 0, ! 150, 284, 220, 0, 151, 284, 196, 169, 0, 151, ! 284, 220, 0, 129, 0, 0, 169, 286, 287, 0, ! 277, 0, 288, 83, 0, 3, 0, 288, 88, 3, ! 0, 105, 0, 289, 88, 105, 0, 31, 0, 295, ! 0, 293, 0, 294, 0, 305, 0, 316, 0, 71, ! 0, 105, 0, 292, 88, 105, 0, 81, 292, 84, ! 0, 82, 105, 105, 84, 0, 0, 0, 69, 105, ! 307, 89, 296, 309, 85, 297, 320, 71, 0, 0, ! 69, 105, 307, 298, 320, 71, 0, 0, 0, 69, ! 105, 46, 105, 307, 89, 299, 309, 85, 300, 320, ! 71, 0, 0, 69, 105, 46, 105, 307, 301, 320, ! 71, 0, 0, 70, 105, 89, 302, 309, 85, 0, ! 70, 105, 0, 0, 70, 105, 46, 105, 89, 303, ! 309, 85, 0, 70, 105, 46, 105, 0, 0, 69, ! 105, 67, 105, 83, 307, 304, 320, 71, 0, 70, ! 105, 67, 105, 83, 0, 0, 79, 105, 307, 306, ! 320, 71, 0, 79, 292, 84, 0, 0, 308, 0, ! 53, 292, 53, 0, 309, 310, 311, 0, 311, 0, ! 77, 0, 78, 0, 76, 0, 0, 311, 312, 84, ! 0, 311, 84, 0, 152, 129, 313, 0, 153, 129, ! 313, 0, 1, 0, 0, 314, 0, 313, 88, 130, ! 314, 0, 191, 0, 191, 46, 114, 0, 46, 114, ! 0, 56, 0, 57, 0, 0, 0, 0, 315, 317, ! 328, 318, 329, 319, 240, 0, 0, 0, 321, 322, ! 0, 325, 0, 97, 0, 322, 325, 0, 0, 322, ! 323, 97, 0, 84, 0, 1, 0, 0, 0, 315, ! 326, 328, 327, 324, 0, 67, 217, 83, 337, 0, ! 337, 0, 67, 217, 83, 338, 335, 0, 338, 335, ! 0, 0, 84, 330, 0, 0, 331, 0, 332, 0, ! 232, 0, 331, 332, 0, 332, 232, 0, 148, 129, ! 333, 84, 0, 148, 84, 0, 149, 84, 0, 334, ! 0, 333, 88, 334, 0, 193, 169, 0, 196, 169, ! 0, 220, 0, 0, 88, 10, 0, 0, 88, 336, ! 280, 0, 339, 0, 341, 0, 338, 341, 0, 3, ! 0, 4, 0, 75, 0, 80, 0, 340, 0, 12, ! 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, ! 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, ! 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, ! 0, 11, 0, 28, 0, 29, 0, 6, 0, 7, ! 0, 339, 46, 67, 217, 83, 105, 0, 339, 46, ! 105, 0, 46, 67, 217, 83, 105, 0, 46, 105, ! 0, 339, 0, 343, 0, 345, 0, 343, 345, 0, ! 109, 0, 339, 46, 344, 0, 46, 344, 0, 107, ! 0, 75, 0, 0, 0, 68, 348, 346, 349, 342, ! 90, 0, 339, 0, 351, 0, 352, 0, 351, 352, ! 0, 339, 46, 0, 46, 0, 72, 67, 350, 83, ! 0, 79, 67, 105, 83, 0, 74, 67, 217, 83, ! 0 }; #endif --- 260,555 ---- 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 126, 128, 130, 134, 136, 139, 142, 145, 148, 151, 156, 159, 164, 167, 170, 172, 174, ! 176, 178, 183, 185, 189, 193, 197, 201, 205, 209, ! 213, 217, 221, 225, 229, 233, 234, 239, 240, 245, ! 246, 247, 255, 256, 262, 266, 270, 272, 274, 276, ! 278, 279, 287, 291, 295, 299, 303, 308, 315, 324, ! 331, 336, 340, 344, 347, 350, 352, 354, 356, 358, ! 360, 362, 365, 368, 372, 373, 375, 378, 382, 384, ! 386, 389, 392, 397, 402, 405, 408, 412, 413, 415, ! 420, 425, 429, 433, 436, 439, 441, 444, 447, 450, ! 453, 456, 458, 461, 463, 466, 469, 472, 475, 478, ! 481, 483, 486, 489, 492, 495, 498, 501, 504, 507, ! 510, 513, 516, 519, 522, 525, 528, 531, 533, 536, ! 539, 542, 545, 548, 551, 554, 557, 560, 563, 566, ! 569, 572, 575, 578, 581, 584, 587, 590, 593, 596, ! 599, 602, 605, 608, 611, 614, 617, 620, 623, 626, ! 629, 632, 635, 638, 641, 644, 647, 650, 653, 656, ! 659, 662, 665, 667, 669, 671, 673, 675, 677, 679, 681, 683, 685, 687, 689, 691, 693, 695, 697, 699, 701, 703, 705, 707, 709, 711, 713, 715, 717, 719, 721, 723, 725, 727, 729, 731, 733, 735, 737, 739, 741, 743, 745, 747, 749, 751, 753, 755, 757, 759, ! 761, 763, 765, 767, 769, 771, 773, 775, 777, 778, ! 780, 782, 784, 786, 788, 790, 792, 794, 797, 800, ! 802, 807, 812, 814, 819, 821, 826, 827, 832, 833, ! 840, 844, 845, 852, 856, 857, 859, 861, 864, 871, ! 873, 877, 878, 880, 885, 892, 897, 899, 901, 903, ! 905, 907, 908, 913, 915, 916, 919, 921, 925, 929, ! 932, 933, 938, 940, 941, 946, 948, 950, 952, 955, ! 958, 959, 960, 968, 969, 970, 978, 980, 982, 987, ! 991, 994, 998, 1000, 1002, 1004, 1006, 1010, 1013, 1015, ! 1017, 1021, 1024, 1028, 1032, 1037, 1041, 1046, 1050, 1053, ! 1055, 1057, 1060, 1062, 1065, 1067, 1070, 1071, 1079, 1085, ! 1086, 1094, 1100, 1101, 1110, 1111, 1119, 1122, 1125, 1128, ! 1129, 1131, 1132, 1134, 1136, 1139, 1140, 1144, 1147, 1152, ! 1156, 1161, 1165, 1167, 1169, 1172, 1174, 1179, 1181, 1186, ! 1191, 1198, 1204, 1209, 1216, 1222, 1224, 1228, 1230, 1232, ! 1236, 1237, 1241, 1242, 1244, 1245, 1247, 1250, 1252, 1254, ! 1256, 1260, 1263, 1267, 1272, 1276, 1279, 1282, 1284, 1288, ! 1293, 1296, 1300, 1304, 1309, 1314, 1320, 1326, 1328, 1330, ! 1332, 1334, 1336, 1339, 1342, 1345, 1348, 1350, 1353, 1356, ! 1359, 1361, 1364, 1367, 1370, 1373, 1375, 1378, 1380, 1382, ! 1384, 1386, 1389, 1390, 1391, 1392, 1393, 1394, 1396, 1398, ! 1401, 1405, 1407, 1410, 1412, 1414, 1420, 1422, 1424, 1427, ! 1430, 1433, 1436, 1437, 1443, 1444, 1449, 1450, 1451, 1453, ! 1456, 1460, 1464, 1468, 1469, 1474, 1476, 1480, 1481, 1482, ! 1490, 1496, 1499, 1500, 1501, 1502, 1503, 1516, 1517, 1524, ! 1527, 1529, 1531, 1534, 1538, 1541, 1544, 1547, 1551, 1558, ! 1567, 1578, 1591, 1595, 1600, 1602, 1606, 1612, 1615, 1621, ! 1622, 1624, 1625, 1627, 1628, 1630, 1632, 1636, 1641, 1649, ! 1651, 1655, 1656, 1660, 1663, 1664, 1665, 1672, 1675, 1676, ! 1678, 1680, 1684, 1686, 1690, 1695, 1700, 1704, 1709, 1713, ! 1718, 1723, 1727, 1732, 1736, 1738, 1739, 1743, 1745, 1748, ! 1750, 1754, 1756, 1760, 1762, 1764, 1766, 1768, 1770, 1772, ! 1774, 1776, 1780, 1784, 1789, 1790, 1791, 1802, 1803, 1810, ! 1811, 1812, 1825, 1826, 1835, 1836, 1843, 1846, 1847, 1856, ! 1861, 1862, 1872, 1878, 1879, 1886, 1890, 1891, 1893, 1897, ! 1901, 1903, 1905, 1907, 1909, 1910, 1914, 1917, 1921, 1925, ! 1927, 1928, 1930, 1935, 1937, 1941, 1944, 1946, 1948, 1949, ! 1950, 1951, 1959, 1960, 1961, 1964, 1966, 1968, 1971, 1972, ! 1976, 1978, 1980, 1981, 1982, 1988, 1993, 1995, 2001, 2004, ! 2005, 2008, 2009, 2011, 2013, 2015, 2018, 2021, 2026, 2029, ! 2032, 2034, 2038, 2041, 2044, 2046, 2047, 2050, 2051, 2055, ! 2057, 2059, 2062, 2064, 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094, 2096, ! 2098, 2100, 2102, 2104, 2106, 2108, 2110, 2112, 2114, 2121, ! 2125, 2131, 2134, 2136, 2138, 2140, 2143, 2145, 2149, 2152, ! 2154, 2156, 2157, 2158, 2165, 2167, 2169, 2171, 2174, 2177, ! 2179, 2184, 2189 }; static const short yyrhs[] = { -1, 93, 0, 0, 94, 96, 0, 0, 93, 95, 96, ! 0, 98, 0, 97, 0, 292, 0, 27, 67, 107, ! 83, 84, 0, 291, 96, 0, 130, 164, 84, 0, ! 150, 130, 164, 84, 0, 149, 130, 163, 84, 0, ! 156, 84, 0, 1, 84, 0, 1, 85, 0, 84, ! 0, 0, 0, 149, 130, 192, 99, 125, 100, 252, ! 253, 241, 0, 149, 130, 192, 1, 0, 0, 0, ! 150, 130, 197, 101, 125, 102, 252, 253, 241, 0, ! 150, 130, 197, 1, 0, 0, 0, 130, 197, 103, ! 125, 104, 252, 253, 241, 0, 130, 197, 1, 0, 3, 0, 4, 0, 80, 0, 75, 0, 51, 0, 57, 0, 56, 0, 62, 0, 63, 0, 86, 0, ! 87, 0, 109, 0, 0, 109, 0, 115, 0, 109, ! 88, 115, 0, 121, 0, 58, 114, 0, 291, 114, ! 0, 106, 114, 0, 48, 105, 0, 111, 110, 0, ! 111, 67, 218, 83, 0, 112, 110, 0, 112, 67, ! 218, 83, 0, 33, 114, 0, 34, 114, 0, 11, ! 0, 29, 0, 28, 0, 110, 0, 67, 218, 83, ! 114, 0, 114, 0, 115, 56, 115, 0, 115, 57, ! 115, 0, 115, 58, 115, 0, 115, 59, 115, 0, ! 115, 60, 115, 0, 115, 54, 115, 0, 115, 55, ! 115, 0, 115, 53, 115, 0, 115, 52, 115, 0, ! 115, 51, 115, 0, 115, 49, 115, 0, 115, 50, ! 115, 0, 0, 115, 48, 116, 115, 0, 0, 115, ! 47, 117, 115, 0, 0, 0, 115, 45, 118, 107, ! 46, 119, 115, 0, 0, 115, 45, 120, 46, 115, ! 0, 115, 44, 115, 0, 115, 43, 115, 0, 3, ! 0, 8, 0, 123, 0, 42, 0, 0, 67, 218, ! 83, 89, 122, 178, 85, 0, 67, 107, 83, 0, ! 67, 1, 83, 0, 245, 243, 83, 0, 245, 1, ! 83, 0, 121, 67, 108, 83, 0, 35, 67, 115, ! 88, 218, 83, 0, 36, 67, 115, 88, 115, 88, ! 115, 83, 0, 37, 67, 218, 88, 218, 83, 0, ! 121, 68, 107, 90, 0, 121, 66, 105, 0, 121, ! 65, 105, 0, 121, 62, 0, 121, 63, 0, 348, ! 0, 354, 0, 355, 0, 356, 0, 124, 0, 9, ! 0, 123, 9, 0, 91, 9, 0, 124, 91, 9, ! 0, 0, 127, 0, 127, 10, 0, 252, 253, 128, ! 0, 126, 0, 233, 0, 127, 126, 0, 126, 233, ! 0, 151, 130, 163, 84, 0, 152, 130, 164, 84, ! 0, 151, 84, 0, 152, 84, 0, 252, 253, 132, ! 0, 0, 170, 0, 149, 130, 163, 84, 0, 150, ! 130, 164, 84, 0, 149, 130, 186, 0, 150, 130, ! 189, 0, 156, 84, 0, 291, 132, 0, 7, 0, ! 133, 7, 0, 134, 7, 0, 133, 171, 0, 135, ! 7, 0, 136, 7, 0, 171, 0, 135, 171, 0, ! 158, 0, 137, 7, 0, 138, 7, 0, 137, 160, ! 0, 138, 160, 0, 133, 158, 0, 134, 158, 0, ! 159, 0, 137, 171, 0, 137, 161, 0, 138, 161, ! 0, 133, 159, 0, 134, 159, 0, 139, 7, 0, ! 140, 7, 0, 139, 160, 0, 140, 160, 0, 135, ! 158, 0, 136, 158, 0, 139, 171, 0, 139, 161, ! 0, 140, 161, 0, 135, 159, 0, 136, 159, 0, ! 5, 0, 141, 7, 0, 142, 7, 0, 133, 5, ! 0, 134, 5, 0, 141, 5, 0, 142, 5, 0, ! 141, 171, 0, 143, 7, 0, 144, 7, 0, 135, ! 5, 0, 136, 5, 0, 143, 5, 0, 144, 5, ! 0, 143, 171, 0, 145, 7, 0, 146, 7, 0, ! 145, 160, 0, 146, 160, 0, 141, 158, 0, 142, ! 158, 0, 137, 5, 0, 138, 5, 0, 145, 5, ! 0, 146, 5, 0, 145, 171, 0, 145, 161, 0, ! 146, 161, 0, 141, 159, 0, 142, 159, 0, 147, ! 7, 0, 148, 7, 0, 147, 160, 0, 148, 160, ! 0, 143, 158, 0, 144, 158, 0, 139, 5, 0, ! 140, 5, 0, 147, 5, 0, 148, 5, 0, 147, ! 171, 0, 147, 161, 0, 148, 161, 0, 143, 159, ! 0, 144, 159, 0, 137, 0, 138, 0, 139, 0, ! 140, 0, 145, 0, 146, 0, 147, 0, 148, 0, ! 133, 0, 134, 0, 135, 0, 136, 0, 141, 0, ! 142, 0, 143, 0, 144, 0, 137, 0, 138, 0, ! 145, 0, 146, 0, 133, 0, 134, 0, 141, 0, ! 142, 0, 137, 0, 138, 0, 139, 0, 140, 0, 133, 0, 134, 0, 135, 0, 136, 0, 137, 0, ! 138, 0, 139, 0, 140, 0, 133, 0, 134, 0, ! 135, 0, 136, 0, 133, 0, 134, 0, 135, 0, 136, 0, 137, 0, 138, 0, 139, 0, 140, 0, 141, 0, 142, 0, 143, 0, 144, 0, 145, 0, ! 146, 0, 147, 0, 148, 0, 0, 154, 0, 160, ! 0, 162, 0, 161, 0, 6, 0, 206, 0, 201, ! 0, 4, 0, 75, 308, 0, 80, 308, 0, 309, ! 0, 113, 67, 107, 83, 0, 113, 67, 218, 83, ! 0, 166, 0, 163, 88, 131, 166, 0, 168, 0, ! 164, 88, 131, 168, 0, 0, 27, 67, 123, 83, ! 0, 0, 192, 165, 170, 44, 167, 176, 0, 192, ! 165, 170, 0, 0, 197, 165, 170, 44, 169, 176, ! 0, 197, 165, 170, 0, 0, 171, 0, 172, 0, ! 171, 172, 0, 30, 67, 67, 173, 83, 83, 0, ! 174, 0, 173, 88, 174, 0, 0, 175, 0, 175, ! 67, 3, 83, 0, 175, 67, 3, 88, 109, 83, ! 0, 175, 67, 108, 83, 0, 105, 0, 5, 0, ! 6, 0, 7, 0, 115, 0, 0, 89, 177, 178, ! 85, 0, 1, 0, 0, 179, 207, 0, 180, 0, ! 179, 88, 180, 0, 184, 44, 182, 0, 185, 182, ! 0, 0, 105, 46, 181, 182, 0, 182, 0, 0, ! 89, 183, 178, 85, 0, 115, 0, 1, 0, 185, ! 0, 184, 185, 0, 66, 105, 0, 0, 0, 192, ! 187, 125, 188, 252, 253, 246, 0, 0, 0, 197, ! 190, 125, 191, 252, 253, 246, 0, 193, 0, 197, ! 0, 67, 170, 193, 83, 0, 193, 67, 286, 0, ! 193, 226, 0, 58, 157, 193, 0, 4, 0, 80, ! 0, 195, 0, 196, 0, 195, 67, 286, 0, 195, ! 226, 0, 4, 0, 80, 0, 196, 67, 286, 0, ! 196, 226, 0, 58, 157, 195, 0, 58, 157, 196, ! 0, 67, 170, 196, 83, 0, 197, 67, 286, 0, ! 67, 170, 197, 83, 0, 58, 157, 197, 0, 197, ! 226, 0, 3, 0, 13, 0, 13, 171, 0, 14, ! 0, 14, 171, 0, 12, 0, 12, 171, 0, 0, ! 198, 105, 89, 202, 209, 85, 170, 0, 198, 89, ! 209, 85, 170, 0, 0, 199, 105, 89, 203, 209, ! 85, 170, 0, 199, 89, 209, 85, 170, 0, 0, ! 200, 105, 89, 204, 216, 208, 85, 170, 0, 0, ! 200, 89, 205, 216, 208, 85, 170, 0, 198, 105, ! 0, 199, 105, 0, 200, 105, 0, 0, 88, 0, ! 0, 88, 0, 210, 0, 210, 211, 0, 0, 210, ! 211, 84, 0, 210, 84, 0, 73, 67, 75, 83, ! 0, 153, 130, 212, 0, 153, 130, 252, 253, 0, ! 154, 130, 213, 0, 154, 0, 1, 0, 291, 211, ! 0, 214, 0, 212, 88, 131, 214, 0, 215, 0, ! 213, 88, 131, 215, 0, 252, 253, 192, 170, 0, ! 252, 253, 192, 46, 115, 170, 0, 252, 253, 46, ! 115, 170, 0, 252, 253, 197, 170, 0, 252, 253, ! 197, 46, 115, 170, 0, 252, 253, 46, 115, 170, ! 0, 217, 0, 216, 88, 217, 0, 1, 0, 105, ! 0, 105, 44, 115, 0, 0, 155, 219, 220, 0, ! 0, 222, 0, 0, 222, 0, 223, 171, 0, 224, ! 0, 223, 0, 225, 0, 58, 157, 223, 0, 58, ! 157, 0, 58, 157, 224, 0, 67, 170, 222, 83, ! 0, 225, 67, 276, 0, 225, 226, 0, 67, 276, ! 0, 226, 0, 68, 107, 90, 0, 68, 155, 107, ! 90, 0, 68, 90, 0, 68, 155, 90, 0, 68, ! 58, 90, 0, 68, 155, 58, 90, 0, 68, 5, ! 107, 90, 0, 68, 5, 155, 107, 90, 0, 68, ! 155, 5, 107, 90, 0, 228, 0, 229, 0, 230, ! 0, 231, 0, 256, 0, 228, 256, 0, 229, 256, ! 0, 230, 256, 0, 231, 256, 0, 129, 0, 228, ! 129, 0, 229, 129, 0, 231, 129, 0, 257, 0, ! 228, 257, 0, 229, 257, 0, 230, 257, 0, 231, ! 257, 0, 233, 0, 232, 233, 0, 228, 0, 229, ! 0, 230, 0, 231, 0, 1, 84, 0, 0, 0, ! 0, 0, 0, 239, 0, 240, 0, 239, 240, 0, ! 32, 290, 84, 0, 246, 0, 1, 246, 0, 89, ! 0, 85, 0, 234, 238, 244, 85, 235, 0, 227, ! 0, 1, 0, 67, 89, 0, 242, 243, 0, 248, ! 255, 0, 248, 1, 0, 0, 15, 249, 67, 107, ! 83, 0, 0, 18, 251, 255, 17, 0, 0, 0, ! 256, 0, 257, 254, 0, 236, 254, 237, 0, 252, ! 253, 268, 0, 252, 253, 269, 0, 0, 247, 16, ! 259, 255, 0, 247, 0, 247, 16, 1, 0, 0, ! 0, 17, 260, 67, 107, 83, 261, 255, 0, 250, ! 67, 107, 83, 84, 0, 250, 1, 0, 0, 0, ! 0, 0, 19, 262, 67, 267, 263, 271, 84, 264, ! 271, 83, 265, 255, 0, 0, 20, 67, 107, 83, ! 266, 255, 0, 271, 84, 0, 132, 0, 246, 0, ! 107, 84, 0, 236, 258, 237, 0, 23, 84, 0, ! 24, 84, 0, 25, 84, 0, 25, 107, 84, 0, ! 27, 270, 67, 107, 83, 84, 0, 27, 270, 67, ! 107, 46, 272, 83, 84, 0, 27, 270, 67, 107, ! 46, 272, 46, 272, 83, 84, 0, 27, 270, 67, ! 107, 46, 272, 46, 272, 46, 275, 83, 84, 0, ! 26, 105, 84, 0, 26, 58, 107, 84, 0, 84, ! 0, 21, 115, 46, 0, 21, 115, 10, 115, 46, ! 0, 22, 46, 0, 105, 252, 253, 46, 170, 0, ! 0, 7, 0, 0, 107, 0, 0, 273, 0, 274, ! 0, 273, 88, 274, 0, 9, 67, 107, 83, 0, ! 68, 105, 90, 9, 67, 107, 83, 0, 123, 0, ! 275, 88, 123, 0, 0, 170, 277, 278, 0, 281, ! 83, 0, 0, 0, 282, 84, 279, 170, 280, 278, ! 0, 1, 83, 0, 0, 10, 0, 282, 0, 282, ! 88, 10, 0, 284, 0, 282, 88, 283, 0, 149, ! 130, 194, 170, 0, 149, 130, 197, 170, 0, 149, ! 130, 221, 0, 150, 130, 197, 170, 0, 150, 130, ! 221, 0, 151, 285, 194, 170, 0, 151, 285, 197, ! 170, 0, 151, 285, 221, 0, 152, 285, 197, 170, ! 0, 152, 285, 221, 0, 130, 0, 0, 170, 287, ! 288, 0, 278, 0, 289, 83, 0, 3, 0, 289, ! 88, 3, 0, 105, 0, 290, 88, 105, 0, 31, ! 0, 296, 0, 294, 0, 295, 0, 306, 0, 317, ! 0, 71, 0, 105, 0, 293, 88, 105, 0, 81, ! 293, 84, 0, 82, 105, 105, 84, 0, 0, 0, ! 69, 105, 308, 89, 297, 310, 85, 298, 321, 71, ! 0, 0, 69, 105, 308, 299, 321, 71, 0, 0, ! 0, 69, 105, 46, 105, 308, 89, 300, 310, 85, ! 301, 321, 71, 0, 0, 69, 105, 46, 105, 308, ! 302, 321, 71, 0, 0, 70, 105, 89, 303, 310, ! 85, 0, 70, 105, 0, 0, 70, 105, 46, 105, ! 89, 304, 310, 85, 0, 70, 105, 46, 105, 0, ! 0, 69, 105, 67, 105, 83, 308, 305, 321, 71, ! 0, 70, 105, 67, 105, 83, 0, 0, 79, 105, ! 308, 307, 321, 71, 0, 79, 293, 84, 0, 0, ! 309, 0, 53, 293, 53, 0, 310, 311, 312, 0, ! 312, 0, 77, 0, 78, 0, 76, 0, 0, 312, ! 313, 84, 0, 312, 84, 0, 153, 130, 314, 0, ! 154, 130, 314, 0, 1, 0, 0, 315, 0, 314, ! 88, 131, 315, 0, 192, 0, 192, 46, 115, 0, ! 46, 115, 0, 56, 0, 57, 0, 0, 0, 0, ! 316, 318, 329, 319, 330, 320, 241, 0, 0, 0, ! 322, 323, 0, 326, 0, 97, 0, 323, 326, 0, ! 0, 323, 324, 97, 0, 84, 0, 1, 0, 0, ! 0, 316, 327, 329, 328, 325, 0, 67, 218, 83, ! 338, 0, 338, 0, 67, 218, 83, 339, 336, 0, ! 339, 336, 0, 0, 84, 331, 0, 0, 332, 0, ! 333, 0, 233, 0, 332, 333, 0, 333, 233, 0, ! 149, 130, 334, 84, 0, 149, 84, 0, 150, 84, ! 0, 335, 0, 334, 88, 335, 0, 194, 170, 0, ! 197, 170, 0, 221, 0, 0, 88, 10, 0, 0, ! 88, 337, 281, 0, 340, 0, 342, 0, 339, 342, ! 0, 3, 0, 4, 0, 75, 0, 80, 0, 341, ! 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, ! 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, ! 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, ! 0, 27, 0, 11, 0, 28, 0, 29, 0, 6, ! 0, 7, 0, 340, 46, 67, 218, 83, 105, 0, ! 340, 46, 105, 0, 46, 67, 218, 83, 105, 0, ! 46, 105, 0, 340, 0, 344, 0, 346, 0, 344, ! 346, 0, 109, 0, 340, 46, 345, 0, 46, 345, ! 0, 107, 0, 75, 0, 0, 0, 68, 349, 347, ! 350, 343, 90, 0, 340, 0, 352, 0, 353, 0, ! 352, 353, 0, 340, 46, 0, 46, 0, 72, 67, ! 351, 83, 0, 79, 67, 105, 83, 0, 74, 67, ! 218, 83, 0 }; #endif *************** static const short yyrline[] = { 0, *** 562,634 **** 414, 416, 417, 418, 421, 423, 425, 428, 430, 432, 434, 438, 442, 445, 448, 451, 455, 457, 460, 463, 467, 484, 490, 493, 496, 499, 501, 505, 509, 513, ! 515, 519, 521, 523, 525, 527, 529, 531, 533, 535, ! 537, 539, 541, 543, 545, 549, 551, 555, 557, 560, ! 564, 566, 573, 576, 583, 593, 600, 601, 603, 605, ! 609, 618, 623, 625, 641, 648, 650, 653, 663, 673, ! 675, 682, 691, 693, 695, 697, 699, 701, 703, 708, ! 710, 718, 721, 725, 727, 728, 738, 743, 745, 746, ! 747, 754, 757, 759, 762, 770, 779, 789, 794, 797, ! 799, 801, 803, 805, 861, 865, 868, 873, 879, 883, ! 888, 892, 897, 901, 904, 907, 910, 913, 916, 921, ! 925, 928, 931, 934, 937, 942, 946, 949, 952, 955, ! 958, 963, 967, 970, 973, 976, 981, 985, 988, 991, ! 997, 1003, 1009, 1017, 1023, 1027, 1030, 1036, 1042, 1048, ! 1056, 1062, 1066, 1069, 1072, 1075, 1078, 1081, 1087, 1093, ! 1099, 1107, 1111, 1114, 1117, 1120, 1125, 1129, 1132, 1135, ! 1138, 1141, 1144, 1150, 1156, 1162, 1170, 1174, 1177, 1180, ! 1183, 1189, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1200, ! 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1211, 1213, 1214, ! 1215, 1218, 1220, 1221, 1222, 1225, 1227, 1228, 1229, 1232, ! 1234, 1235, 1236, 1239, 1241, 1242, 1243, 1244, 1245, 1246, ! 1247, 1250, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, ! 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1270, 1273, 1298, ! 1300, 1303, 1307, 1310, 1313, 1317, 1322, 1324, 1329, 1331, ! 1333, 1339, 1341, 1344, 1346, 1349, 1352, 1358, 1365, 1367, ! 1374, 1381, 1383, 1390, 1393, 1397, 1400, 1404, 1409, 1412, ! 1416, 1419, 1421, 1423, 1425, 1432, 1434, 1435, 1436, 1441, ! 1443, 1445, 1447, 1452, 1456, 1459, 1461, 1466, 1470, 1473, ! 1478, 1478, 1481, 1484, 1486, 1488, 1491, 1493, 1496, 1504, ! 1518, 1525, 1534, 1548, 1555, 1567, 1569, 1574, 1577, 1582, ! 1584, 1586, 1587, 1594, 1596, 1599, 1605, 1607, 1608, 1611, ! 1617, 1619, 1621, 1623, 1630, 1636, 1638, 1640, 1642, 1645, ! 1648, 1652, 1655, 1659, 1662, 1672, 1677, 1679, 1683, 1685, ! 1687, 1691, 1693, 1696, 1698, 1703, 1706, 1708, 1716, 1718, ! 1721, 1723, 1728, 1731, 1736, 1738, 1740, 1744, 1759, 1763, ! 1773, 1776, 1781, 1783, 1788, 1790, 1794, 1796, 1800, 1804, ! 1808, 1813, 1817, 1821, 1831, 1833, 1838, 1843, 1846, 1850, ! 1855, 1858, 1861, 1864, 1869, 1873, 1879, 1881, 1884, 1886, ! 1890, 1893, 1897, 1900, 1902, 1904, 1906, 1912, 1915, 1917, ! 1919, 1921, 1923, 1925, 1929, 1933, 1945, 1947, 1948, 1952, ! 1955, 1957, 1958, 1959, 1960, 1963, 1965, 1968, 1969, 1972, ! 1974, 1975, 1976, 1977, 1980, 1982, 1985, 1987, 1988, 1989, ! 1992, 1995, 2004, 2009, 2027, 2042, 2044, 2049, 2051, 2054, ! 2068, 2071, 2074, 2078, 2080, 2087, 2089, 2092, 2110, 2117, ! 2123, 2126, 2137, 2148, 2160, 2168, 2174, 2180, 2182, 2186, ! 2192, 2206, 2215, 2220, 2224, 2236, 2246, 2249, 2255, 2256, ! 2259, 2261, 2265, 2268, 2271, 2274, 2275, 2279, 2282, 2285, ! 2290, 2293, 2296, 2300, 2303, 2306, 2309, 2312, 2316, 2320, ! 2325, 2329, 2341, 2347, 2355, 2358, 2361, 2364, 2379, 2383, ! 2387, 2390, 2395, 2397, 2400, 2402, 2406, 2409, 2413, 2416, ! 2425, 2431, 2436, 2438, 2447, 2450, 2451, 2457, 2459, 2469, ! 2471, 2475, 2478, 2484, 2490, 2495, 2498, 2504, 2511, 2517, ! 2522, 2525, 2531, 2536, 2545, 2551, 2556, 2558, 2575, 2578, ! 2583, 2586, 2590, 2600, 2602, 2603, 2604, 2605, 2606, 2620, ! 2623, 2627, 2633, 2639, 2646, 2651, 2657, 2664, 2670, 2676, ! 2681, 2687, 2694, 2700, 2706, 2712, 2720, 2726, 2732, 2740, ! 2747, 2753, 2762, 2769, 2778, 2784, 2789, 2792, 2802, 2804, ! 2807, 2809, 2810, 2813, 2818, 2819, 2836, 2840, 2843, 2847, ! 2850, 2851, 2854, 2862, 2868, 2877, 2880, 2884, 2892, 2901, ! 2905, 2914, 2916, 2917, 2919, 2921, 2922, 2923, 2924, 2926, ! 2928, 2931, 2938, 2947, 2949, 2955, 2960, 2965, 2974, 2976, ! 2982, 2984, 2987, 2989, 2990, 2991, 2994, 2997, 2999, 3003, ! 3006, 3013, 3018, 3022, 3026, 3031, 3036, 3041, 3048, 3052, ! 3055, 3061, 3063, 3064, 3065, 3066, 3069, 3070, 3070, 3070, ! 3070, 3070, 3070, 3070, 3071, 3071, 3071, 3071, 3071, 3071, ! 3072, 3072, 3072, 3072, 3072, 3073, 3073, 3076, 3082, 3087, ! 3092, 3098, 3100, 3103, 3105, 3112, 3124, 3129, 3135, 3137, ! 3143, 3147, 3148, 3154, 3156, 3159, 3161, 3167, 3172, 3178, ! 3185, 3194 }; #endif --- 562,634 ---- 414, 416, 417, 418, 421, 423, 425, 428, 430, 432, 434, 438, 442, 445, 448, 451, 455, 457, 460, 463, 467, 484, 490, 493, 496, 499, 501, 505, 509, 513, ! 517, 519, 523, 525, 527, 529, 531, 533, 535, 537, ! 539, 541, 543, 545, 547, 549, 553, 555, 559, 561, ! 564, 568, 570, 577, 580, 587, 597, 604, 605, 607, ! 609, 613, 622, 627, 629, 645, 652, 654, 657, 667, ! 677, 679, 686, 695, 697, 699, 701, 703, 705, 707, ! 712, 714, 722, 725, 729, 731, 732, 742, 747, 749, ! 750, 751, 758, 761, 763, 766, 774, 783, 793, 798, ! 801, 803, 805, 807, 809, 865, 869, 872, 877, 883, ! 887, 892, 896, 901, 905, 908, 911, 914, 917, 920, ! 925, 929, 932, 935, 938, 941, 946, 950, 953, 956, ! 959, 962, 967, 971, 974, 977, 980, 985, 989, 992, ! 995, 1001, 1007, 1013, 1021, 1027, 1031, 1034, 1040, 1046, ! 1052, 1060, 1066, 1070, 1073, 1076, 1079, 1082, 1085, 1091, ! 1097, 1103, 1111, 1115, 1118, 1121, 1124, 1129, 1133, 1136, ! 1139, 1142, 1145, 1148, 1154, 1160, 1166, 1174, 1178, 1181, ! 1184, 1187, 1193, 1195, 1196, 1197, 1198, 1199, 1200, 1201, ! 1204, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1215, 1217, ! 1218, 1219, 1222, 1224, 1225, 1226, 1229, 1231, 1232, 1233, ! 1236, 1238, 1239, 1240, 1243, 1245, 1246, 1247, 1248, 1249, ! 1250, 1251, 1254, 1256, 1257, 1258, 1259, 1260, 1261, 1262, ! 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1274, 1277, ! 1302, 1304, 1307, 1311, 1314, 1317, 1321, 1326, 1328, 1333, ! 1335, 1337, 1343, 1345, 1348, 1350, 1353, 1356, 1362, 1369, ! 1371, 1378, 1385, 1387, 1394, 1397, 1401, 1404, 1408, 1413, ! 1416, 1420, 1423, 1425, 1427, 1429, 1436, 1438, 1439, 1440, ! 1445, 1447, 1449, 1451, 1456, 1460, 1463, 1465, 1470, 1474, ! 1477, 1482, 1483, 1486, 1489, 1491, 1493, 1496, 1498, 1501, ! 1509, 1523, 1530, 1539, 1553, 1560, 1572, 1574, 1579, 1582, ! 1587, 1589, 1591, 1592, 1599, 1601, 1604, 1610, 1612, 1613, ! 1616, 1622, 1624, 1626, 1628, 1635, 1641, 1643, 1645, 1647, ! 1650, 1653, 1657, 1660, 1664, 1667, 1677, 1682, 1684, 1688, ! 1690, 1692, 1696, 1698, 1701, 1703, 1708, 1711, 1713, 1721, ! 1723, 1726, 1728, 1733, 1736, 1741, 1743, 1745, 1749, 1764, ! 1768, 1778, 1781, 1786, 1788, 1793, 1795, 1799, 1801, 1805, ! 1809, 1813, 1818, 1822, 1826, 1836, 1838, 1843, 1848, 1851, ! 1855, 1860, 1863, 1866, 1869, 1874, 1878, 1884, 1886, 1889, ! 1891, 1895, 1898, 1902, 1905, 1907, 1909, 1911, 1917, 1920, ! 1922, 1924, 1926, 1928, 1930, 1934, 1938, 1950, 1952, 1953, ! 1957, 1960, 1962, 1963, 1964, 1965, 1968, 1970, 1973, 1974, ! 1977, 1979, 1980, 1981, 1982, 1985, 1987, 1990, 1992, 1993, ! 1994, 1997, 2000, 2009, 2014, 2032, 2047, 2049, 2054, 2056, ! 2059, 2073, 2076, 2079, 2083, 2085, 2092, 2094, 2097, 2115, ! 2122, 2128, 2131, 2142, 2153, 2165, 2173, 2179, 2185, 2187, ! 2191, 2197, 2211, 2220, 2225, 2229, 2241, 2251, 2254, 2260, ! 2261, 2264, 2266, 2270, 2273, 2276, 2279, 2280, 2284, 2287, ! 2290, 2295, 2298, 2301, 2305, 2308, 2311, 2314, 2317, 2321, ! 2325, 2330, 2334, 2346, 2352, 2360, 2363, 2366, 2369, 2384, ! 2388, 2392, 2395, 2400, 2402, 2405, 2407, 2411, 2414, 2418, ! 2421, 2430, 2436, 2441, 2443, 2452, 2455, 2456, 2462, 2464, ! 2474, 2476, 2480, 2483, 2489, 2495, 2500, 2503, 2509, 2516, ! 2522, 2527, 2530, 2536, 2541, 2550, 2556, 2561, 2563, 2580, ! 2583, 2588, 2591, 2595, 2605, 2607, 2608, 2609, 2610, 2611, ! 2625, 2628, 2632, 2639, 2646, 2653, 2658, 2664, 2671, 2677, ! 2683, 2688, 2694, 2701, 2707, 2713, 2719, 2727, 2733, 2739, ! 2747, 2754, 2760, 2769, 2776, 2785, 2791, 2796, 2799, 2809, ! 2811, 2814, 2816, 2817, 2820, 2825, 2826, 2843, 2847, 2850, ! 2854, 2857, 2858, 2861, 2869, 2875, 2884, 2887, 2891, 2899, ! 2908, 2912, 2921, 2923, 2924, 2926, 2928, 2929, 2930, 2931, ! 2933, 2935, 2938, 2945, 2954, 2956, 2962, 2967, 2972, 2981, ! 2983, 2989, 2991, 2994, 2996, 2997, 2998, 3001, 3004, 3006, ! 3010, 3013, 3020, 3025, 3029, 3033, 3038, 3043, 3048, 3055, ! 3059, 3062, 3068, 3070, 3071, 3072, 3073, 3076, 3077, 3077, ! 3077, 3077, 3077, 3077, 3077, 3078, 3078, 3078, 3078, 3078, ! 3078, 3079, 3079, 3079, 3079, 3079, 3080, 3080, 3083, 3089, ! 3094, 3099, 3105, 3107, 3110, 3112, 3119, 3131, 3136, 3142, ! 3144, 3150, 3154, 3155, 3161, 3163, 3166, 3168, 3174, 3179, ! 3185, 3192, 3201 }; #endif *************** static const char * const yytname[] = { *** 648,655 **** "OBJECTNAME","CLASS","ALIAS","')'","';'","'}'","'~'","'!'","','","'{'","']'", "'@'","program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5", "@6","@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr", ! "sizeof","alignof","cast_expr","expr_no_commas","@9","@10","@11","@12","@13", ! "primary","@14","string","objc_string","old_style_parm_decls","lineno_datadecl", "datadecls","datadecl","lineno_decl","setspecs","maybe_resetattrs","decl","declspecs_nosc_nots_nosa_noea", "declspecs_nosc_nots_nosa_ea","declspecs_nosc_nots_sa_noea","declspecs_nosc_nots_sa_ea", "declspecs_nosc_ts_nosa_noea","declspecs_nosc_ts_nosa_ea","declspecs_nosc_ts_sa_noea", --- 648,655 ---- "OBJECTNAME","CLASS","ALIAS","')'","';'","'}'","'~'","'!'","','","'{'","']'", "'@'","program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5", "@6","@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr", ! "sizeof","alignof","typeof","cast_expr","expr_no_commas","@9","@10","@11","@12", ! "@13","primary","@14","string","objc_string","old_style_parm_decls","lineno_datadecl", "datadecls","datadecl","lineno_decl","setspecs","maybe_resetattrs","decl","declspecs_nosc_nots_nosa_noea", "declspecs_nosc_nots_nosa_ea","declspecs_nosc_nots_sa_noea","declspecs_nosc_nots_sa_ea", "declspecs_nosc_ts_nosa_noea","declspecs_nosc_ts_nosa_ea","declspecs_nosc_ts_sa_noea", *************** static const short yyr1[] = { 0, *** 702,774 **** 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 107, 108, 108, 109, 109, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 112, 113, ! 113, 114, 114, 114, 114, 114, 114, 114, 114, 114, ! 114, 114, 114, 114, 115, 114, 116, 114, 117, 118, ! 114, 119, 114, 114, 114, 120, 120, 120, 120, 121, ! 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, ! 120, 120, 120, 120, 120, 120, 120, 120, 120, 122, ! 122, 123, 123, 124, 124, 124, 125, 126, 126, 126, ! 126, 127, 127, 127, 127, 128, 129, 130, 131, 131, ! 131, 131, 131, 131, 132, 132, 132, 133, 134, 134, ! 135, 135, 136, 136, 136, 136, 136, 136, 136, 137, ! 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, ! 138, 139, 139, 139, 139, 139, 140, 140, 140, 140, ! 140, 140, 140, 141, 142, 142, 142, 142, 142, 142, ! 143, 144, 144, 144, 144, 144, 144, 144, 144, 144, ! 144, 145, 145, 145, 145, 145, 146, 146, 146, 146, ! 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, ! 147, 148, 148, 148, 148, 148, 148, 148, 148, 149, ! 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, ! 150, 151, 151, 151, 151, 152, 152, 152, 152, 153, ! 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, ! 154, 155, 155, 155, 155, 155, 155, 155, 155, 155, ! 155, 155, 155, 155, 155, 155, 155, 156, 156, 157, ! 157, 158, 159, 159, 160, 161, 161, 161, 161, 161, ! 161, 162, 162, 163, 163, 164, 164, 166, 165, 165, ! 168, 167, 167, 169, 169, 170, 170, 171, 172, 172, ! 173, 173, 173, 173, 173, 174, 174, 174, 174, 175, ! 176, 175, 175, 177, 177, 178, 178, 179, 179, 180, ! 179, 179, 182, 181, 181, 181, 183, 183, 184, 186, ! 187, 185, 189, 190, 188, 191, 191, 192, 192, 192, ! 192, 192, 192, 193, 193, 194, 194, 194, 194, 195, ! 195, 195, 195, 195, 196, 196, 196, 196, 196, 197, ! 197, 198, 198, 199, 199, 201, 200, 200, 202, 200, ! 200, 203, 200, 204, 200, 205, 205, 205, 206, 206, ! 207, 207, 208, 208, 209, 209, 209, 209, 210, 210, ! 210, 210, 210, 210, 211, 211, 212, 212, 213, 213, ! 213, 214, 214, 214, 215, 215, 215, 216, 216, 218, ! 217, 219, 219, 220, 220, 220, 221, 221, 222, 222, ! 223, 223, 224, 224, 224, 224, 224, 225, 225, 225, ! 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, ! 227, 227, 227, 227, 227, 228, 228, 228, 228, 229, ! 229, 229, 229, 229, 230, 230, 231, 231, 231, 231, ! 232, 233, 234, 235, 236, 237, 237, 238, 238, 239, ! 240, 240, 241, 242, 242, 243, 243, 244, 245, 246, ! 246, 248, 247, 250, 249, 251, 252, 253, 253, 254, ! 255, 256, 258, 257, 257, 257, 259, 260, 257, 257, ! 257, 261, 262, 263, 264, 257, 265, 257, 266, 266, ! 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, ! 267, 267, 267, 267, 268, 268, 268, 268, 269, 269, ! 270, 270, 271, 271, 272, 272, 273, 273, 274, 274, ! 276, 275, 277, 278, 279, 277, 277, 280, 280, 280, ! 280, 281, 281, 282, 282, 282, 282, 282, 283, 283, ! 283, 283, 283, 284, 286, 285, 287, 287, 288, 288, ! 289, 289, 290, 291, 291, 291, 291, 291, 291, 292, ! 292, 293, 294, 296, 297, 295, 298, 295, 299, 300, ! 295, 301, 295, 302, 295, 295, 303, 295, 295, 304, ! 295, 295, 306, 305, 305, 307, 307, 308, 309, 309, ! 310, 310, 310, 311, 311, 311, 312, 312, 312, 313, ! 313, 313, 314, 314, 314, 315, 315, 317, 318, 319, ! 316, 320, 321, 320, 322, 322, 322, 323, 322, 324, ! 324, 326, 327, 325, 328, 328, 328, 328, 329, 329, ! 330, 330, 331, 331, 331, 331, 332, 332, 332, 333, ! 333, 334, 334, 334, 335, 335, 336, 335, 337, 338, ! 338, 339, 339, 339, 339, 339, 340, 340, 340, 340, ! 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 340, 340, 340, 340, 340, 340, 340, 341, 341, 341, ! 341, 342, 342, 343, 343, 344, 345, 345, 346, 346, ! 348, 349, 347, 350, 350, 351, 351, 352, 352, 353, ! 354, 355 }; static const short yyr2[] = { 0, --- 702,774 ---- 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 107, 108, 108, 109, 109, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 112, 113, ! 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, ! 115, 115, 115, 115, 115, 116, 115, 117, 115, 118, ! 119, 115, 120, 115, 115, 115, 121, 121, 121, 121, ! 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, ! 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, ! 123, 123, 124, 124, 125, 125, 125, 126, 127, 127, ! 127, 127, 128, 128, 128, 128, 129, 130, 131, 132, ! 132, 132, 132, 132, 132, 133, 133, 133, 134, 135, ! 135, 136, 136, 137, 137, 137, 137, 137, 137, 137, ! 138, 138, 138, 138, 138, 138, 139, 139, 139, 139, ! 139, 139, 140, 140, 140, 140, 140, 141, 141, 141, ! 141, 141, 141, 141, 142, 143, 143, 143, 143, 143, ! 143, 144, 145, 145, 145, 145, 145, 145, 145, 145, ! 145, 145, 146, 146, 146, 146, 146, 147, 147, 147, ! 147, 147, 147, 147, 147, 147, 147, 148, 148, 148, ! 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, ! 150, 150, 150, 150, 150, 150, 150, 150, 151, 151, ! 151, 151, 152, 152, 152, 152, 153, 153, 153, 153, ! 154, 154, 154, 154, 155, 155, 155, 155, 155, 155, ! 155, 155, 156, 156, 156, 156, 156, 156, 156, 156, ! 156, 156, 156, 156, 156, 156, 156, 156, 157, 157, ! 158, 158, 159, 160, 160, 161, 162, 162, 162, 162, ! 162, 162, 163, 163, 164, 164, 165, 165, 167, 166, ! 166, 169, 168, 168, 170, 170, 171, 171, 172, 173, ! 173, 174, 174, 174, 174, 174, 175, 175, 175, 175, ! 176, 177, 176, 176, 178, 178, 179, 179, 180, 180, ! 181, 180, 180, 183, 182, 182, 182, 184, 184, 185, ! 187, 188, 186, 190, 191, 189, 192, 192, 193, 193, ! 193, 193, 193, 193, 194, 194, 195, 195, 195, 195, ! 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, ! 198, 198, 199, 199, 200, 200, 202, 201, 201, 203, ! 201, 201, 204, 201, 205, 201, 206, 206, 206, 207, ! 207, 208, 208, 209, 209, 210, 210, 210, 210, 211, ! 211, 211, 211, 211, 211, 212, 212, 213, 213, 214, ! 214, 214, 215, 215, 215, 216, 216, 216, 217, 217, ! 219, 218, 220, 220, 221, 221, 221, 222, 222, 223, ! 223, 224, 224, 225, 225, 225, 225, 225, 226, 226, ! 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, ! 227, 228, 228, 228, 228, 228, 229, 229, 229, 229, ! 230, 230, 230, 230, 230, 231, 231, 232, 232, 232, ! 232, 233, 234, 235, 236, 237, 238, 238, 239, 239, ! 240, 241, 241, 242, 243, 243, 244, 244, 245, 246, ! 247, 247, 249, 248, 251, 250, 252, 253, 254, 254, ! 255, 256, 257, 259, 258, 258, 258, 260, 261, 258, ! 258, 258, 262, 263, 264, 265, 258, 266, 258, 267, ! 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, ! 268, 268, 268, 268, 268, 269, 269, 269, 269, 270, ! 270, 271, 271, 272, 272, 273, 273, 274, 274, 275, ! 275, 277, 276, 278, 279, 280, 278, 278, 281, 281, ! 281, 281, 282, 282, 283, 283, 283, 283, 283, 284, ! 284, 284, 284, 284, 285, 287, 286, 288, 288, 289, ! 289, 290, 290, 291, 292, 292, 292, 292, 292, 292, ! 293, 293, 294, 295, 297, 298, 296, 299, 296, 300, ! 301, 296, 302, 296, 303, 296, 296, 304, 296, 296, ! 305, 296, 296, 307, 306, 306, 308, 308, 309, 310, ! 310, 311, 311, 311, 312, 312, 312, 313, 313, 313, ! 314, 314, 314, 315, 315, 315, 316, 316, 318, 319, ! 320, 317, 321, 322, 321, 323, 323, 323, 324, 323, ! 325, 325, 327, 328, 326, 329, 329, 329, 329, 330, ! 330, 331, 331, 332, 332, 332, 332, 333, 333, 333, ! 334, 334, 335, 335, 335, 336, 336, 337, 336, 338, ! 339, 339, 340, 340, 340, 340, 340, 341, 341, 341, ! 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, ! 341, 341, 341, 341, 341, 341, 341, 341, 342, 342, ! 342, 342, 343, 343, 344, 344, 345, 346, 346, 347, ! 347, 349, 350, 348, 351, 351, 352, 352, 353, 353, ! 354, 355, 356 }; static const short yyr2[] = { 0, *************** static const short yyr2[] = { 0, *** 778,2126 **** 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 1, 1, 1, ! 4, 1, 3, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 0, 4, 0, 4, 0, 0, ! 7, 0, 5, 3, 3, 1, 1, 1, 1, 0, ! 7, 3, 3, 3, 3, 4, 6, 8, 6, 4, ! 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, ! 2, 2, 3, 0, 1, 2, 3, 1, 1, 2, ! 2, 4, 4, 2, 2, 3, 0, 1, 4, 4, ! 3, 3, 2, 2, 1, 2, 2, 2, 2, 2, ! 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, ! 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, ! 1, 1, 1, 1, 1, 1, 2, 2, 1, 4, ! 4, 1, 4, 1, 4, 0, 4, 0, 6, 3, ! 0, 6, 3, 0, 1, 1, 2, 6, 1, 3, ! 0, 1, 4, 6, 4, 1, 1, 1, 1, 1, ! 0, 4, 1, 0, 2, 1, 3, 3, 2, 0, ! 4, 1, 0, 4, 1, 1, 1, 2, 2, 0, ! 0, 7, 0, 0, 7, 1, 1, 4, 3, 2, ! 3, 1, 1, 1, 1, 3, 2, 1, 1, 3, ! 2, 3, 3, 4, 3, 4, 3, 2, 1, 1, ! 2, 1, 2, 1, 2, 0, 7, 5, 0, 7, ! 5, 0, 8, 0, 7, 2, 2, 2, 0, 1, ! 0, 1, 1, 2, 0, 3, 2, 4, 3, 4, ! 3, 1, 1, 2, 1, 4, 1, 4, 4, 6, ! 5, 4, 6, 5, 1, 3, 1, 1, 3, 0, ! 3, 0, 1, 0, 1, 2, 1, 1, 1, 3, ! 2, 3, 4, 3, 2, 2, 1, 3, 4, 2, ! 3, 3, 4, 4, 5, 5, 1, 1, 1, 1, ! 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, ! 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, ! 2, 0, 0, 0, 0, 0, 1, 1, 2, 3, ! 1, 2, 1, 1, 5, 1, 1, 2, 2, 2, ! 2, 0, 5, 0, 4, 0, 0, 1, 2, 3, ! 3, 3, 0, 4, 1, 3, 0, 0, 7, 5, ! 2, 0, 0, 0, 0, 12, 0, 6, 2, 1, ! 1, 2, 3, 2, 2, 2, 3, 6, 8, 10, ! 12, 3, 4, 1, 3, 5, 2, 5, 0, 1, ! 0, 1, 0, 1, 1, 3, 4, 7, 1, 3, ! 0, 3, 2, 0, 0, 6, 2, 0, 1, 1, ! 3, 1, 3, 4, 4, 3, 4, 3, 4, 4, ! 3, 4, 3, 1, 0, 3, 1, 2, 1, 3, ! 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, ! 3, 3, 4, 0, 0, 10, 0, 6, 0, 0, ! 12, 0, 8, 0, 6, 2, 0, 8, 4, 0, ! 9, 5, 0, 6, 3, 0, 1, 3, 3, 1, ! 1, 1, 1, 0, 3, 2, 3, 3, 1, 0, ! 1, 4, 1, 3, 2, 1, 1, 0, 0, 0, ! 7, 0, 0, 2, 1, 1, 2, 0, 3, 1, ! 1, 0, 0, 5, 4, 1, 5, 2, 0, 2, ! 0, 1, 1, 1, 2, 2, 4, 2, 2, 1, ! 3, 2, 2, 1, 0, 2, 0, 3, 1, 1, ! 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 1, 1, 1, 1, 6, 3, 5, ! 2, 1, 1, 1, 2, 1, 3, 2, 1, 1, ! 0, 0, 6, 1, 1, 1, 2, 2, 1, 4, ! 4, 4 }; static const short yydefact[] = { 3, ! 5, 0, 0, 0, 276, 167, 273, 135, 364, 360, ! 362, 0, 0, 0, 573, 0, 626, 627, 0, 0, ! 579, 606, 0, 606, 0, 0, 18, 4, 8, 7, ! 0, 220, 221, 222, 223, 212, 213, 214, 215, 224, ! 225, 226, 227, 216, 217, 218, 219, 127, 127, 0, ! 143, 150, 270, 272, 271, 141, 296, 0, 0, 0, ! 275, 274, 0, 9, 575, 576, 574, 577, 279, 628, ! 578, 6, 16, 17, 365, 361, 363, 0, 0, 0, ! 31, 32, 34, 33, 580, 0, 606, 596, 277, 607, ! 606, 0, 278, 0, 0, 359, 268, 294, 0, 284, ! 0, 170, 136, 148, 154, 138, 171, 137, 149, 155, ! 177, 139, 160, 165, 142, 178, 140, 161, 166, 188, ! 144, 146, 152, 151, 189, 145, 147, 153, 203, 156, ! 158, 163, 162, 204, 157, 159, 164, 172, 168, 186, ! 195, 174, 173, 169, 187, 196, 179, 175, 201, 210, ! 181, 180, 176, 202, 211, 190, 182, 184, 193, 192, ! 191, 183, 185, 194, 205, 197, 199, 208, 207, 206, ! 198, 200, 209, 0, 0, 15, 297, 385, 376, 385, ! 377, 374, 378, 11, 0, 86, 87, 110, 58, 59, ! 0, 0, 0, 0, 0, 89, 0, 35, 37, 36, ! 0, 38, 39, 0, 711, 0, 0, 0, 40, 41, ! 0, 0, 0, 42, 60, 0, 0, 62, 45, 47, ! 88, 109, 0, 0, 105, 106, 107, 108, 0, 248, ! 249, 250, 251, 244, 245, 246, 247, 410, 0, 301, ! 608, 0, 0, 0, 587, 0, 0, 594, 603, 605, ! 582, 0, 240, 241, 242, 243, 269, 0, 0, 295, ! 12, 294, 30, 0, 294, 0, 0, 294, 358, 342, ! 268, 294, 343, 0, 282, 0, 336, 337, 0, 0, ! 0, 0, 0, 366, 0, 369, 0, 372, 672, 673, ! 696, 697, 693, 677, 678, 679, 680, 681, 682, 683, ! 684, 685, 686, 687, 688, 689, 690, 691, 692, 694, ! 695, 0, 0, 674, 675, 629, 646, 665, 669, 676, ! 670, 56, 57, 0, 0, 0, 51, 48, 0, 478, ! 0, 0, 0, 0, 0, 0, 112, 50, 0, 0, ! 0, 52, 0, 54, 0, 0, 79, 77, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 103, 104, 0, 0, 43, 0, 111, 0, 0, ! 474, 466, 0, 49, 280, 412, 281, 307, 308, 309, ! 306, 0, 299, 302, 581, 606, 0, 584, 633, 599, ! 0, 614, 633, 583, 357, 0, 0, 128, 0, 565, ! 355, 0, 0, 430, 0, 0, 0, 28, 0, 486, ! 119, 487, 293, 0, 0, 14, 294, 22, 0, 294, ! 294, 340, 13, 26, 0, 0, 294, 393, 387, 240, ! 241, 242, 243, 236, 237, 238, 239, 127, 127, 384, ! 0, 385, 294, 385, 407, 408, 381, 405, 0, 0, ! 701, 0, 649, 667, 648, 0, 671, 0, 0, 0, ! 0, 93, 92, 0, 710, 709, 712, 719, 714, 0, ! 715, 716, 0, 0, 10, 46, 0, 0, 85, 84, ! 0, 0, 0, 0, 73, 74, 72, 71, 70, 68, ! 69, 63, 64, 65, 66, 67, 102, 101, 0, 44, ! 0, 113, 95, 0, 0, 467, 468, 94, 268, 294, ! 411, 413, 418, 417, 419, 427, 0, 301, 43, 592, ! 606, 614, 0, 0, 597, 602, 0, 0, 0, 356, ! 285, 286, 0, 0, 0, 0, 432, 428, 0, 0, ! 431, 0, 461, 486, 121, 116, 120, 0, 291, 341, ! 0, 0, 20, 290, 339, 24, 0, 368, 486, 486, ! 386, 394, 0, 371, 0, 0, 382, 0, 381, 0, ! 0, 0, 630, 666, 548, 0, 699, 0, 0, 0, ! 90, 61, 0, 718, 720, 0, 717, 722, 721, 53, ! 55, 0, 0, 78, 76, 96, 100, 571, 0, 477, ! 446, 476, 486, 486, 486, 486, 0, 455, 0, 487, ! 441, 450, 469, 421, 541, 426, 294, 425, 298, 300, ! 86, 0, 589, 633, 600, 0, 588, 636, 0, 127, ! 127, 642, 638, 635, 614, 613, 611, 612, 595, 614, ! 619, 616, 127, 127, 0, 604, 287, 0, 569, 549, ! 232, 233, 228, 229, 234, 235, 230, 231, 127, 127, ! 567, 0, 550, 552, 566, 0, 434, 0, 0, 433, ! 429, 487, 117, 127, 127, 0, 338, 283, 286, 486, ! 288, 486, 388, 389, 395, 487, 391, 397, 487, 294, ! 294, 409, 406, 294, 0, 0, 645, 665, 220, 221, ! 222, 223, 212, 213, 214, 215, 224, 225, 226, 227, ! 216, 217, 218, 219, 127, 0, 654, 650, 652, 0, ! 0, 668, 550, 0, 0, 0, 0, 0, 0, 702, ! 0, 703, 704, 80, 83, 470, 0, 447, 442, 451, ! 448, 443, 452, 487, 444, 453, 449, 445, 454, 456, ! 463, 464, 420, 422, 0, 0, 541, 424, 303, 0, ! 305, 614, 0, 633, 585, 0, 0, 0, 0, 637, ! 0, 0, 620, 620, 615, 547, 564, 414, 414, 543, ! 544, 0, 568, 0, 435, 436, 0, 124, 0, 125, ! 0, 313, 311, 310, 292, 487, 0, 487, 294, 390, ! 294, 0, 367, 370, 375, 294, 700, 647, 658, 414, ! 659, 655, 656, 0, 473, 631, 462, 471, 0, 97, ! 0, 99, 326, 86, 0, 323, 0, 325, 0, 379, ! 316, 322, 0, 0, 706, 708, 0, 713, 0, 705, ! 0, 572, 464, 475, 276, 0, 0, 0, 0, 0, ! 0, 529, 606, 606, 524, 486, 0, 126, 127, 127, ! 0, 0, 511, 491, 492, 0, 423, 542, 0, 0, ! 593, 0, 633, 643, 639, 598, 0, 623, 617, 621, ! 618, 348, 268, 294, 349, 294, 344, 345, 294, 561, ! 415, 418, 268, 294, 294, 563, 294, 551, 127, 127, ! 553, 570, 29, 0, 0, 0, 0, 289, 0, 486, ! 0, 294, 486, 0, 294, 373, 294, 294, 664, 0, ! 660, 472, 479, 698, 0, 329, 0, 320, 91, 0, ! 315, 0, 328, 319, 707, 81, 0, 527, 514, 515, ! 516, 0, 0, 0, 530, 0, 487, 512, 0, 0, ! 133, 482, 497, 484, 502, 0, 495, 0, 0, 465, ! 134, 304, 590, 601, 0, 0, 625, 0, 294, 421, ! 541, 559, 294, 347, 294, 351, 560, 416, 421, 541, ! 562, 545, 414, 414, 122, 123, 0, 21, 25, 396, ! 487, 294, 0, 399, 398, 294, 0, 402, 662, 663, ! 657, 414, 98, 0, 0, 317, 318, 0, 525, 517, ! 0, 522, 0, 0, 0, 131, 330, 0, 132, 333, ! 0, 0, 464, 0, 0, 0, 481, 486, 480, 501, ! 0, 513, 633, 586, 641, 640, 644, 624, 0, 352, ! 353, 0, 346, 350, 0, 294, 294, 556, 294, 558, ! 312, 0, 401, 294, 404, 294, 661, 324, 321, 0, ! 523, 0, 294, 129, 0, 130, 0, 0, 0, 0, ! 531, 0, 496, 464, 465, 488, 486, 0, 0, 622, ! 354, 546, 554, 555, 557, 400, 403, 526, 533, 0, ! 528, 331, 334, 0, 0, 485, 532, 510, 503, 0, ! 507, 494, 490, 489, 0, 591, 0, 0, 0, 534, ! 535, 518, 486, 486, 483, 498, 531, 509, 464, 500, ! 0, 0, 533, 0, 0, 487, 487, 464, 0, 508, ! 0, 0, 0, 519, 536, 0, 0, 499, 504, 537, ! 0, 0, 0, 332, 335, 531, 0, 539, 0, 520, ! 0, 0, 0, 0, 505, 538, 521, 540, 464, 506, ! 0, 0, 0 }; ! static const short yydefgoto[] = { 1161, ! 1, 2, 3, 28, 29, 30, 419, 680, 425, 682, ! 267, 544, 827, 212, 331, 499, 214, 215, 216, 217, ! 218, 219, 484, 483, 481, 841, 482, 220, 728, 221, ! 222, 408, 409, 410, 673, 601, 31, 397, 858, 230, ! 231, 232, 233, 234, 235, 236, 237, 40, 41, 42, ! 43, 44, 45, 46, 47, 48, 49, 659, 660, 438, ! 257, 238, 50, 258, 51, 52, 53, 54, 55, 274, ! 99, 268, 275, 797, 100, 676, 398, 260, 57, 382, ! 383, 384, 795, 906, 829, 830, 831, 1005, 832, 927, ! 833, 834, 1016, 1065, 1113, 1019, 1067, 1114, 679, 277, ! 917, 887, 888, 278, 58, 59, 60, 61, 442, 444, ! 449, 287, 62, 931, 568, 282, 283, 440, 684, 687, ! 685, 688, 447, 448, 239, 376, 511, 919, 891, 892, ! 514, 515, 269, 602, 603, 604, 605, 606, 607, 411, ! 372, 844, 1028, 1032, 505, 506, 507, 816, 817, 373, ! 609, 223, 818, 957, 958, 1021, 959, 1023, 412, 548, ! 1075, 1029, 1076, 1077, 960, 1074, 1022, 1128, 1024, 1117, ! 1146, 1159, 1119, 1099, 864, 865, 946, 1100, 1109, 1110, ! 1111, 1149, 616, 756, 661, 897, 1045, 662, 663, 901, ! 664, 778, 401, 534, 665, 666, 599, 224, 64, 86, ! 65, 66, 67, 522, 873, 389, 762, 1033, 624, 392, ! 635, 764, 68, 393, 89, 69, 527, 640, 528, 645, ! 879, 880, 70, 71, 185, 453, 721, 523, 524, 633, ! 769, 1037, 634, 768, 966, 316, 573, 718, 719, 720, ! 920, 921, 455, 575, 317, 318, 319, 320, 321, 731, ! 732, 836, 733, 467, 225, 333, 583, 470, 471, 472, ! 226, 227, 228 }; ! static const short yypact[] = { 119, ! 144, 3958, 3958, 252,-32768,-32768,-32768,-32768, 120, 120, ! 120, 101, 139, 173,-32768, 378,-32768,-32768, 378, 378, ! -32768, 201, 378, 201, 378, 378,-32768,-32768,-32768,-32768, ! 226, 1004, 4135, 1258, 4163, 479, 953, 685, 1209, 1596, ! 4189, 2962, 4200, 812, 1226, 1060, 1270,-32768,-32768, 204, ! -32768,-32768,-32768,-32768,-32768, 120,-32768, 125, 304, 433, ! -32768,-32768, 3958,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 120, 120, 120, 3430, 2949, 218, ! -32768,-32768,-32768,-32768,-32768, 271, 430, 294,-32768,-32768, ! 281, 74,-32768, 323, 378,-32768, 191, 120, 340,-32768, ! 1323,-32768,-32768,-32768,-32768, 120,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 120,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768, 120,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 120,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 120, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 120,-32768, ! -32768,-32768,-32768, 374, 226,-32768,-32768, 245, 241, 245, ! 265,-32768, 327,-32768, 4291,-32768,-32768,-32768,-32768,-32768, ! 3430, 3430, 303, 359, 368,-32768, 378,-32768,-32768,-32768, ! 3430,-32768,-32768, 2203,-32768, 385, 394, 411,-32768,-32768, ! 487, 3430, 397, 399,-32768, 3497, 3564,-32768, 4764, 1074, ! 505, 434, 1481, 3430,-32768,-32768,-32768,-32768, 445, 3175, ! 4594, 3700, 4648, 634, 787, 911, 1230,-32768, 464, 466, ! -32768, 378, 378, 378, 467, 378, 378,-32768,-32768,-32768, ! -32768, 499, 337, 592, 350, 597,-32768, 226, 226, 120, ! -32768, 120,-32768, 544, 120, 2701, 967, 120,-32768,-32768, ! 191, 120,-32768, 423,-32768, 1585, 330, 422, 471, 1818, ! 553, 537, 3907,-32768, 542,-32768, 137,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 239, 4519,-32768,-32768,-32768,-32768, 3835, 591,-32768, ! -32768,-32768,-32768, 3430, 3430, 4519,-32768,-32768, 559,-32768, ! 567, 572, 3089, 4327, 4519, 378,-32768,-32768, 574, 3430, ! 2203,-32768, 2203,-32768, 3430, 3430, 615,-32768,-32768, 3430, ! 3430, 3430, 3430, 3430, 3430, 3430, 3430, 3430, 3430, 3430, ! 3430,-32768,-32768, 378, 378, 3430, 3430,-32768, 660, 588, ! -32768, 645, 601,-32768,-32768, 376,-32768,-32768,-32768,-32768, ! -32768, 114,-32768, 622,-32768, 201, 613,-32768, 630, 617, ! 625,-32768, 630,-32768, 422, 372, 226,-32768, 708,-32768, ! -32768, 2949, 3162,-32768, 629, 3022, 639,-32768, 3719, 83, ! -32768,-32768, 681, 374, 374,-32768, 120,-32768, 967, 120, ! 120,-32768,-32768,-32768, 967, 652, 120,-32768,-32768, 3175, ! 4594, 3700, 4648, 634, 787, 911, 1230,-32768, 453, 647, ! 4248, 245, 120, 245,-32768, 691, 655,-32768, 137, 4519, ! -32768, 663, 684, 738,-32768, 591,-32768, 328, 4639, 4659, ! 677,-32768,-32768, 3229,-32768,-32768,-32768,-32768, 733, 703, ! 4327,-32768, 705, 713,-32768, 4764, 723, 730, 4764, 4764, ! 3430, 775, 3430, 3430, 2828, 1739, 2419, 1383, 1069, 1113, ! 1113, 717, 717,-32768,-32768,-32768,-32768,-32768, 749, 399, ! 748,-32768,-32768, 378, 1936, 645,-32768,-32768, 191, 120, ! -32768,-32768,-32768,-32768, 577,-32768, 756, 466, 3631, 751, ! 201,-32768, 774, 3992,-32768,-32768, 664, 3791, 777,-32768, ! -32768, 210, 72, 4078, 760, 3430,-32768,-32768, 3430, 3296, ! -32768, 761,-32768,-32768,-32768,-32768,-32768, 3927,-32768, 330, ! 481, 374,-32768, 811,-32768,-32768, 778,-32768,-32768,-32768, ! -32768,-32768, 779,-32768, 780, 3430, 378, 783, 655, 786, ! 4371, 3736,-32768,-32768, 1829, 4519,-32768, 4519, 3430, 4519, ! -32768,-32768, 4407,-32768,-32768, 733,-32768,-32768,-32768, 773, ! 773, 824, 3430, 2170, 2342,-32768,-32768,-32768, 488, 639, ! -32768,-32768, 97, 109, 135, 138, 871,-32768, 789,-32768, ! -32768,-32768,-32768, 376, 376,-32768, 120,-32768,-32768,-32768, ! 283, 795,-32768, 630,-32768, 835,-32768,-32768, 226,-32768, ! -32768,-32768, 673,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 800,-32768,-32768, 796,-32768,-32768, ! 4435, 4550, 1545, 1300, 4455, 4563, 1676, 1382,-32768,-32768, ! -32768, 802, 491,-32768,-32768, 317,-32768, 797, 798,-32768, ! -32768,-32768,-32768, 805, 810, 2451,-32768,-32768, 864,-32768, ! -32768,-32768,-32768, 809,-32768,-32768, 817,-32768,-32768, 120, ! 120, 4764,-32768, 120, 821, 378,-32768, 3835, 4435, 4550, ! 4466, 4576, 1545, 1300, 1686, 1403, 4455, 4563, 4486, 4605, ! 1676, 1382, 1757, 1514, 826, 843,-32768,-32768, 4499, 3756, ! 90,-32768, 845, 848, 851, 4686, 854, 1693, 3430, 849, ! 850, 4407,-32768,-32768, 2257,-32768, 378,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 2612,-32768,-32768, 855, 4109,-32768,-32768,-32768, 3430, ! -32768,-32768, 872, 630,-32768, 374, 226, 4291, 4050,-32768, ! 976, 3873, 460, 460,-32768,-32768,-32768, 627, 463,-32768, ! -32768, 2714,-32768, 939,-32768,-32768, 90,-32768, 374,-32768, ! 226,-32768,-32768, 4764,-32768,-32768, 2451,-32768, 120, 918, ! 120, 146,-32768,-32768,-32768, 120,-32768,-32768,-32768, 627, ! -32768,-32768,-32768, 861,-32768,-32768, 859,-32768, 378,-32768, ! 3430,-32768,-32768, 907, 378,-32768, 910, 4764, 876, 874, ! -32768,-32768, 298, 2379, 399,-32768, 3430,-32768, 849,-32768, ! 3430,-32768, 2774,-32768, 917, 3430, 923, 891, 894, 3363, ! 478, 975, 99, 211,-32768,-32768, 902,-32768,-32768,-32768, ! 903, 1076,-32768,-32768,-32768, 2863,-32768,-32768, 446, 1036, ! -32768, 919, 630,-32768,-32768,-32768, 3430, 942, 912,-32768, ! 912,-32768, 191, 120,-32768, 120, 692, 695, 285,-32768, ! -32768, 120, 191, 120, 285,-32768, 120,-32768,-32768,-32768, ! -32768,-32768,-32768, 512, 528, 1693, 90,-32768, 90,-32768, ! 3430, 214,-32768, 3430, 539,-32768, 120, 285,-32768, 541, ! -32768,-32768,-32768,-32768, 4705,-32768, 1693,-32768,-32768, 2292, ! -32768, 2523,-32768,-32768,-32768, 2257, 1375,-32768,-32768,-32768, ! -32768, 915, 3430, 920,-32768, 934,-32768,-32768, 374, 226, ! -32768,-32768,-32768,-32768,-32768, 940, 998, 2025, 116,-32768, ! -32768,-32768,-32768,-32768, 944, 81, 4764, 3430, 120, 627, ! 465,-32768, 120,-32768, 120,-32768,-32768, 120, 463, 463, ! -32768,-32768, 627, 463,-32768,-32768, 936,-32768,-32768,-32768, ! -32768, 1418, 3430,-32768,-32768, 1418, 3430,-32768,-32768,-32768, ! -32768, 627,-32768, 937, 2523,-32768,-32768, 3430,-32768,-32768, ! 935,-32768, 3430, 979, 579,-32768, 905, 594,-32768, 1272, ! 959, 962,-32768, 964, 3430, 2114,-32768,-32768,-32768,-32768, ! 3430,-32768, 630,-32768,-32768,-32768,-32768, 4764, 460, 692, ! 695, 535,-32768,-32768, 4109, 120, 285,-32768, 285,-32768, ! -32768, 918,-32768, 1418,-32768, 1418,-32768,-32768,-32768, 4746, ! -32768, 51, 120,-32768, 967,-32768, 967, 3430, 3430, 1016, ! 2863, 952,-32768,-32768,-32768,-32768,-32768, 955, 965,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 122, 957, ! -32768,-32768,-32768, 956, 960,-32768,-32768,-32768,-32768, 961, ! -32768,-32768,-32768,-32768, 971,-32768, 981, 378, 142, 958, ! -32768,-32768,-32768,-32768,-32768,-32768, 3430,-32768,-32768,-32768, ! 3430, 968, 122, 978, 122,-32768,-32768,-32768, 991,-32768, ! 966, 1067, 163,-32768,-32768, 861, 861,-32768,-32768,-32768, ! 1010, 708, 997,-32768,-32768, 3430, 3430, 505, 506,-32768, ! 1000, 1002, 1003, 708,-32768,-32768,-32768, 505,-32768,-32768, ! 1089, 1098,-32768 }; static const short yypgoto[] = {-32768, ! -32768,-32768,-32768, 113, -486,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, -16,-32768, -77, 580, -333, 521,-32768,-32768, ! -92, 807,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -384, ! -32768, -411, 698,-32768,-32768, 150, 353, -387, -808, 26, ! 33, 62, 64, 85, 104, 38, 111, -480, -364, -520, ! -516, -357, -281, -503, -487, -409, -406, 557, 562, -483, ! -256, -195, -720, -240, 670, 1151, 1210, 1222,-32768, -727, ! -170, -270, 565,-32768, 714,-32768, 312, 15, 27,-32768, ! 616,-32768, 346,-32768, -780,-32768, 215,-32768, -757,-32768, ! -32768, 313,-32768,-32768,-32768,-32768,-32768,-32768, -100, 357, ! -708, 178, -159, 80,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 581, -143,-32768, 710,-32768,-32768, ! 244, 242, 725, 612, -61,-32768,-32768, -657, -354, -356, ! -564,-32768, 136,-32768,-32768,-32768,-32768,-32768,-32768, -334, ! -32768,-32768, -689, 106,-32768,-32768, 682, -714,-32768, 370, ! -32768,-32768, -706,-32768,-32768,-32768,-32768,-32768, 675, -298, ! 112, -918, -370, -183,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768, -993, 67,-32768, ! 70,-32768, 582,-32768, -722,-32768,-32768, 628, 633,-32768, ! -32768, 540, -405,-32768,-32768,-32768,-32768, 9,-32768, 280, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, -11, -1, -462,-32768, 564,-32768, ! 428, 158, -476,-32768,-32768,-32768,-32768, -374,-32768,-32768, ! -32768,-32768, 578,-32768,-32768, 437,-32768,-32768,-32768, 498, ! -32768, 208, 520,-32768, 649, 654, -154,-32768, -279,-32768, ! -32768, 389, 496,-32768,-32768,-32768,-32768,-32768,-32768, 770, ! -32768,-32768,-32768 }; ! #define YYLAST 4824 static const short yytable[] = { 85, ! 213, 229, 87, 88, 279, 420, 91, 553, 85, 95, ! 63, 63, 93, 556, 533, 555, 56, 56, 529, 513, ! 90, 512, 90, 75, 76, 77, 439, 32, 32, 552, ! 414, 861, 500, 868, 33, 33, 285, 628, 457, 38, ! 38, 179, 181, 183, 643, 863, 106, 632, 115, 754, ! 124, 709, 133, 655, 142, 710, 151, 961, 160, 626, ! 169, 904, 862, 34, 34, 35, 35, 655, 713, 886, ! 406, 63, 903, 276, 545, 245, 934, 56, 252, 249, ! 368, 1035, 177, -115, 714, 90, 36, 36, 32, 90, ! 814, 707, 546, 56, 655, 33, 1089, -457, 322, 323, ! 38, 177, 177, 177, 1070, 37, 37, 922, 328, -458, ! 101, 56, 39, 39, 630, 72, 1030, 631, -1, 338, ! 890, 896, 253, 1129, 34, 987, 35, 81, 82, 254, ! 1107, 374, 177, 1090, 611, -459, 863, 445, -460, 81, ! 82, 177, 332, -2, -34, 861, 1004, 36, 96, 14, ! 177, 16, 1151, 862, 647, 1102, 632, 250, 255, 177, ! 256, 242, 715, 456, 1036, 716, 37, 78, 177, 656, ! 608, -115, 771, 39, 1007, 184, 657, 177, 815, 469, ! 327, -437, 1031, 656, 439, 500, 177, 1123, 405, 1108, ! 657, 914, 988, -438, 989, 177, 517, 8, 709, 83, ! 1130, 518, 710, 97, 84, 79, 536, 708, 1142, 1138, ! 656, 83, 98, 178, 711, 713, 84, 657, 56, -439, ! 14, 1015, -440, 381, 1124, 385, 386, 387, 96, 390, ! 391, 714, 739, 742, 745, 748, 264, 717, 707, 80, ! 1160, 81, 82, 14, 106, 1143, 115, 1059, 124, 763, ! 133, 452, 658, 16, 280, 466, -33, 753, 513, 993, ! 755, 709, 1098, 16, 461, 710, 658, 106, 614, 115, ! 446, 644, 750, 473, 1046, 655, 265, 266, 713, 477, ! 56, 478, 875, 97, 240, 56, 177, 176, 643, 501, ! 712, 441, 98, 658, 714, 451, 253, 56, 563, 870, ! 565, 707, 92, 254, 94, 450, 81, 82, 430, 715, ! 328, 752, 716, 83, 14, 431, 586, 281, 84, 474, ! 436, 612, 1082, 241, 535, 1048, 1050, 56, 542, 284, ! 81, 82, 255, 16, 256, 73, 74, 395, 396, 246, ! 56, 932, 859, 103, 432, 860, 433, 497, 498, 56, ! 861, 265, 266, 286, 708, 56, 112, 56, 242, 630, ! 247, 711, 631, 825, -580, 759, 14, 434, -580, 324, ! 760, 582, 899, 787, 520, 900, 96, 270, 83, 14, ! 81, 82, 248, 84, 90, 813, 435, 800, 570, 872, ! 802, 656, 180, 437, 576, 835, 421, 266, 657, 783, ! 174, 175, 83, 592, 784, 754, 251, 84, 420, 259, ! 242, 910, 422, 913, 754, 288, 56, 708, 457, 740, ! 743, 746, 749, 261, 711, 325, 869, 262, 730, 1144, ! 1145, 271, 446, 509, 326, 81, 82, 712, 265, 266, ! 272, 577, 510, 266, 106, 843, 115, 328, 124, 441, ! 133, 334, 83, 273, 530, 56, 859, 84, 668, 860, ! 335, 669, 96, 270, 56, 96, 430, 96, 81, 82, ! 378, 379, 380, 431, 658, 243, 532, 336, 436, 339, ! 81, 82, 16, 120, 7, 121, 340, 598, 265, 266, ! 9, 10, 11, 395, 396, 337, 244, 907, 965, 909, ! 712, 381, 432, 835, 433, 877, 416, 83, 14, 625, ! 417, 516, 84, 368, 724, 644, 725, 271, 727, 90, ! 893, 182, 883, 56, 369, 434, 272, 375, 962, 894, ! 266, 884, 266, 340, 253, 943, -392, -392, 56, 273, ! 83, 254, 56, 456, 435, 84, 377, 421, 266, 32, ! 446, 437, 83, 430, 423, 388, 33, 84, 262, 651, ! 431, 38, -256, 677, 655, 436, 652, 1043, 14, 1044, ! 255, 736, 256, 651, 781, 737, 400, 839, 782, 413, ! 652, 1039, 394, 415, 997, 34, 56, 35, 1153, 432, ! 56, 433, 56, 1154, 56, 985, 279, 699, 108, 417, ! 651, 975, 266, 117, 700, 265, 266, 652, 36, 705, ! 399, 986, 434, 753, 513, 262, 755, 1081, 653, 426, ! 905, 427, 753, 513, 1001, 755, 443, 37, 1002, 96, ! 882, 435, 653, 701, 39, 702, 458, 654, 437, 7, ! 121, 462, 970, 617, 266, 9, 10, 11, 1014, 463, ! 618, 654, 979, 1092, 464, 1093, 703, 475, 1079, 653, ! -82, 859, 1064, 14, 860, 106, 417, 124, 502, 142, ! 503, 160, 878, 878, 857, 704, 504, 1066, 654, 807, ! 656, 262, 706, 508, 883, 422, 422, 657, 519, 129, ! 7, 130, 1052, 884, 266, 521, 9, 10, 11, 912, ! -632, 104, 109, 113, 118, 525, 885, 526, 532, 140, ! 145, 149, 154, 106, 14, 115, 188, 124, 538, 133, ! 842, 142, 543, 151, 549, 160, 557, 169, 17, 18, ! 561, 554, 400, 56, 566, 856, 342, 344, 558, 636, ! 637, 638, 567, -634, 699, 571, 420, 574, 639, 516, ! 516, 700, 738, 741, 564, 747, 705, 1148, 973, 266, ! 866, 975, 266, 658, 580, 857, 56, 572, -258, 1158, ! 550, 551, 942, 374, 359, 360, 361, 32, 584, 1018, ! 701, 651, 702, 56, 33, 585, 56, 588, 652, 38, ! 559, 560, 7, 126, 32, 589, 56, 430, 9, 10, ! 11, 33, 924, 703, 431, 590, 38, 699, 926, 436, ! 1041, 1042, 591, 34, 700, 35, 156, 7, 157, 705, ! 593, 615, 704, 9, 10, 11, 856, 1136, 1137, 706, ! 34, 596, 35, 432, 944, 433, 36, 597, 619, 623, ! 653, 14, 93, 701, 627, 702, 532, 646, 1017, 667, ! 671, 90, 90, 36, 681, 37, 434, 889, 895, 654, ! 683, 581, 39, 690, 691, 1011, 703, 694, 696, 734, ! 532, 407, 37, 751, 866, 435, 629, 761, 776, 39, ! 56, 915, 437, 775, 780, 704, 785, 786, 788, 918, ! 264, 32, 706, 790, 837, -264, 799, 56, 33, 104, ! 109, 113, 118, 38, 801, 806, 978, 56, 253, 809, ! 636, 637, 638, 516, 516, 254, 7, 130, 253, 765, ! 96, 270, 9, 10, 11, 254, 811, 34, 757, 35, ! 819, 264, 782, 820, -286, 1062, 822, 867, 878, 838, ! 14, 902, 871, 371, 255, 516, 256, 1072, -286, 815, ! 36, 912, -31, 1078, 255, 928, 256, 125, 7, 126, ! 929, 930, -32, 911, 9, 10, 11, 407, 938, 37, ! -486, -486, -486, -486, 939, 271, 39, 940, -486, -486, ! -486, 945, 766, 767, 272, 948, 951, 968, -286, 964, ! 1094, 1095, -286, 1097, -486, 773, 774, 273, 1010, 969, ! 1013, 803, 804, 1012, 177, 805, 1025, 5, 102, 7, ! 103, 777, 777, 1026, 1034, 9, 10, 11, 1061, -486, ! 1051, 1058, 974, 976, 1063, 1068, 789, 791, 1069, 1020, ! 1071, 13, 1096, 14, 1101, 1106, -257, 1105, 1115, 1097, ! 1112, -486, 1116, 1131, 1118, 1125, -486, 1121, 1140, 395, ! 396, 636, 637, 638, 1120, -114, 16, 1132, 395, 396, ! 876, 1134, 1047, 1049, 165, 7, 166, 810, 1097, 1152, ! 651, 9, 10, 11, 1139, 1141, 1147, 652, 22, 866, ! 1150, 918, 1155, 24, 1156, 56, 1157, -252, 1162, 14, ! 952, 1122, 953, 954, 955, 956, 32, 1163, 622, 104, ! 109, 113, 118, 33, 674, 516, 516, 547, 38, 675, ! 531, 636, 637, 638, 516, 516, 678, 916, 516, 516, ! 963, 629, 355, 356, 357, 358, 359, 360, 361, 653, ! 459, 460, 34, 620, 35, 362, 363, 516, 364, 365, ! 366, 367, 908, -266, 1006, 933, 476, 1040, 654, 695, ! 562, 479, 480, 990, 995, 36, 485, 486, 487, 488, ! 489, 490, 491, 492, 493, 494, 495, 496, 357, 358, ! 359, 360, 361, 569, 37, 974, 976, 976, 693, 610, ! 1103, 39, 105, 110, 114, 119, 923, 613, 1104, 1133, ! 141, 146, 150, 155, 1135, 971, 1080, 972, 758, 779, ! 977, 881, 722, 772, 874, 980, 981, 723, 982, 1057, ! 770, 949, 950, 134, 7, 135, 812, 808, 672, 697, ! 9, 10, 11, 994, 698, 935, 998, 840, 999, 1000, ! 161, 7, 162, 686, 689, 7, 135, 9, 10, 11, ! 587, 9, 10, 11, 0, 122, 127, 131, 136, 0, ! 0, 983, 984, 158, 163, 167, 172, 123, 128, 132, ! 137, 5, 111, 7, 112, 159, 164, 168, 173, 9, ! 10, 11, 0, 0, 170, 7, 171, 610, 610, 744, ! 610, 9, 10, 11, 400, 13, 400, 14, 0, 594, ! 595, 0, -259, 0, 0, 0, 0, 0, 264, 0, ! 0, -286, 0, 1053, 125, 7, 126, 1055, 0, -265, ! 16, 9, 10, 11, 0, -286, 0, 0, 0, 0, ! 104, 109, 0, 263, 140, 145, -27, -27, -27, -27, ! 0, 0, 22, 0, -27, -27, -27, 24, 265, 266, ! 0, -254, 0, 0, 0, 0, 0, 0, 0, 264, ! -27, 0, -286, -267, 796, -286, 798, 1083, 1084, -286, ! 1085, 0, 0, 0, 0, 1086, -286, 1087, 104, 109, ! 113, 118, 692, 0, 1091, -27, 140, 145, 149, 154, ! 105, 110, 114, 119, 1008, 726, 161, 7, 162, 265, ! 266, 0, 0, 9, 10, 11, 0, -27, 0, 735, ! 0, 0, -27, 0, 0, 0, -286, 134, 7, 135, ! -286, -27, 0, 0, 9, 10, 11, 345, 346, 347, ! 1009, 348, 349, 350, 351, 352, 353, 354, 355, 356, ! 357, 358, 359, 360, 361, 354, 355, 356, 357, 358, ! 359, 360, 361, 122, 127, 131, 136, 14, 0, 0, ! 0, 0, 0, 0, 0, 123, 128, 132, 137, 0, ! 345, 346, 347, 0, 348, 349, 350, 351, 352, 353, ! 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, ! 0, 370, 794, -462, -462, -462, -462, -462, -462, -462, ! 0, -462, -462, -462, -462, -462, 0, -462, -462, -462, ! -462, -462, -462, -462, -462, -462, -462, -462, -462, -462, ! -462, -462, -462, -462, -462, -462, -462, -462, 170, 7, ! 171, 0, -462, 0, 0, 9, 10, 11, -462, 0, ! 947, -462, 0, -462, 828, 0, -462, -462, -462, 0, ! 0, 0, -462, -462, 0, 0, 0, -462, -462, 120, ! 7, 121, -462, 0, -462, -462, 9, 10, 11, -462, ! -462, 0, 0, 0, -462, 371, -462, -462, 0, -462, ! 0, -462, 0, 0, 14, 0, 0, 0, 0, 0, ! 105, 110, 114, 119, 991, 418, 0, 689, -19, -19, ! -19, -19, 0, 0, 0, 0, -19, -19, -19, 5, ! 138, 7, 139, 794, 0, 0, 0, 9, 10, 11, ! 0, 264, -19, 0, -286, 0, 0, 0, 0, 0, ! 0, 0, 0, 13, 0, 14, 0, 925, -286, 0, ! 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, ! 828, 0, 0, 122, 127, 131, 136, 936, 16, 0, ! 0, 0, 937, 0, 0, 123, 128, 132, 137, -19, ! 0, 0, 0, 0, -19, 0, 0, 0, -286, 0, ! 22, 0, -286, -19, 0, 24, 0, 0, 0, -260, ! 156, 7, 157, 967, 0, 0, 0, 9, 10, 11, ! 129, 7, 130, 823, 0, 824, 82, 9, 10, 11, ! 187, 188, 744, 189, 0, 14, 0, 0, 0, 0, ! 0, 0, 828, 0, 0, 14, 0, 992, 0, 0, ! 996, 190, 0, 15, 0, 191, 192, 193, 194, 195, ! 0, 0, 0, 828, 196, 0, 828, 0, 828, 0, ! 197, 0, 0, 198, 0, 0, 0, 0, 199, 200, ! 201, 744, 0, 0, 202, 203, 0, 0, 825, 204, ! 205, 165, 7, 166, 206, 0, 207, 83, 9, 10, ! 11, 208, 84, 0, 1038, 0, 0, -314, 209, 210, ! 0, 826, 0, 211, 0, 0, 14, 1126, 1127, 352, ! 353, 354, 355, 356, 357, 358, 359, 360, 361, 1054, ! 0, 105, 110, 1056, 0, 141, 146, 0, 0, 0, ! 0, 828, 0, 0, 1060, 0, 0, 0, 424, 0, ! 0, -23, -23, -23, -23, 0, 0, 0, 0, -23, ! -23, -23, 5, 6, 7, 8, 0, 0, 650, 0, ! 9, 10, 11, 0, 264, -23, 0, -286, 0, 105, ! 110, 114, 119, 0, 0, 0, 13, 141, 146, 150, ! 155, -286, 122, 127, 0, 0, 158, 163, 0, 0, ! -23, 0, 0, 0, 123, 128, 0, 0, 159, 164, ! 0, 16, 0, 0, 265, 266, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, -23, 0, 0, ! 0, -286, 0, 22, 0, -286, -23, 0, 24, 0, ! 0, 0, 122, 127, 131, 136, 0, 0, 0, 0, ! 158, 163, 167, 172, 123, 128, 132, 137, 0, 0, ! 0, 0, 159, 164, 168, 173, 600, 0, -486, -486, ! -486, -486, -486, -486, -486, 0, -486, -486, -486, -486, ! -486, 0, -486, -486, -486, -486, -486, -486, -486, -486, ! -486, -486, -486, -486, -486, -486, -486, 0, -486, -486, ! -486, -486, -486, 0, 0, 0, 0, -486, 0, 0, ! 0, 0, 0, -486, 0, 0, -486, 0, -486, 0, ! 0, -486, -486, -486, 0, 0, 0, -486, -486, 0, ! 0, 0, -486, -486, 0, 0, 0, -486, 0, -486, ! -486, 0, 0, 0, -486, -486, 0, 0, 0, -486, ! 0, -486, -486, 0, -486, 1027, -486, -464, -464, 0, ! 0, 0, -464, -464, 0, -464, 0, 0, 0, -464, ! 0, -464, -464, -464, -464, -464, -464, -464, -464, -464, ! -464, -464, 0, -464, 0, -464, 0, -464, -464, -464, ! -464, -464, 0, 0, 0, 0, -464, 0, 0, 0, ! 0, 0, -464, 0, 0, -464, 0, 0, 0, 0, ! -464, -464, -464, 0, 0, 0, -464, -464, 0, 0, ! 0, -464, -464, 0, 0, 0, -464, 0, -464, -464, ! 0, 0, 0, -464, -464, 0, 0, 0, -464, 0, ! -464, -464, 0, -464, 1073, -464, -493, -493, 0, 0, ! 0, -493, -493, 0, -493, 0, 0, 0, -493, 0, ! -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, ! -493, 0, -493, 0, -493, 0, -493, -493, -493, -493, ! -493, 0, 0, 0, 0, -493, 0, 0, 0, 0, ! 0, -493, 0, 0, -493, 0, 0, 0, 0, -493, ! -493, -493, 0, 0, 0, -493, -493, 0, 0, 0, ! -493, -493, 0, 0, 0, -493, 0, -493, -493, 0, ! 0, 0, -493, -493, 0, 0, 0, -493, 0, -493, ! -493, 0, -493, 329, -493, 186, 5, 0, 7, 8, ! 187, 188, 0, 189, 9, 10, 11, 349, 350, 351, ! 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, ! 13, 190, 14, 15, 0, 191, 192, 193, 194, 195, ! 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, ! 197, 0, 0, 198, 0, 16, 0, 0, 199, 200, ! 201, 0, 0, 0, 202, 203, 0, 0, 0, 204, ! 205, 0, 0, 0, 206, 0, 207, 22, 0, 0, ! 0, 208, 24, 0, 0, 0, 0, 0, 209, 210, ! 0, 330, 823, 211, 824, 82, 0, 0, 0, 187, ! 188, 347, 189, 348, 349, 350, 351, 352, 353, 354, ! 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, ! 190, 0, 15, 0, 191, 192, 193, 194, 195, 0, ! 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, ! 0, 0, 198, 0, 0, 0, 0, 199, 200, 201, ! 0, 0, 0, 202, 203, 0, 0, 825, 204, 205, ! 0, 0, 0, 206, 0, 207, 83, 0, 0, 0, ! 208, 84, 0, 0, 0, 0, -380, 209, 210, 823, ! 826, 186, 211, 0, 0, 0, 187, 188, 0, 189, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, ! 360, 361, 0, 0, 0, 0, 0, 190, 0, 15, ! 0, 191, 192, 193, 194, 195, 0, 0, 0, 0, ! 196, 0, -327, 0, 0, 0, 197, 0, 0, 198, ! 0, 0, 0, 0, 199, 200, 201, 0, 0, 0, ! 202, 203, 0, 0, -327, 204, 205, 0, 0, 0, ! 206, 792, 207, 186, 0, 0, 0, 208, 187, 188, ! 0, 189, 0, 0, 209, 210, 0, 826, 0, 211, ! 353, 354, 355, 356, 357, 358, 359, 360, 361, 190, ! 0, 15, 0, 191, 192, 193, 194, 195, 0, 0, ! 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, ! 0, 198, 0, 0, 0, 0, 199, 200, 201, 0, ! 0, 0, 202, 203, 0, 0, 0, 204, 205, 0, ! 0, 0, 206, 823, 207, 186, 0, 0, 0, 208, ! 187, 188, 0, 189, 0, 0, 209, 210, 0, 793, ! 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 190, 0, 15, 0, 191, 192, 193, 194, 195, ! 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, ! 197, 0, 0, 198, 0, 0, 0, 0, 199, 200, ! 201, 0, 0, 0, 202, 203, 0, 0, 0, 204, ! 205, 0, 0, 0, 206, 0, 207, 0, 0, 0, ! 0, 208, 0, 0, 0, 0, 0, 0, 209, 210, ! 0, 826, 0, 211, 824, 845, 6, 7, 8, 187, ! 188, 0, 189, 9, 10, 11, 0, 0, 0, 0, ! 0, 0, 846, 847, 848, 849, 850, 851, 852, 13, ! 190, 14, 15, 0, 191, 192, 193, 194, 195, 0, ! 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, ! 0, 0, 198, 0, 16, 0, 0, 199, 200, 201, ! 0, 0, 0, 202, 203, 0, 0, 0, 204, 205, ! 0, 0, 0, 206, 0, 207, 853, 0, 0, 0, ! 208, 854, 0, 0, 0, 855, 0, 209, 210, 0, ! 815, 0, 211, 186, 5, 402, 7, 8, 187, 188, ! 0, 189, 9, 10, 11, 0, 0, 5, 6, 7, ! 8, 0, 0, 898, 0, 9, 10, 11, 13, 190, ! 14, 15, 0, 191, 192, 193, 194, 195, 0, 0, ! 0, 13, 196, 14, 0, 0, 0, 0, 197, 0, ! 0, 198, 0, 16, 0, 0, 199, 200, 403, 0, ! 0, 0, 202, 203, 0, 0, 16, 204, 205, 0, ! 0, 0, 206, 0, 207, 22, 824, 82, 0, 208, ! 24, 187, 188, 0, 189, 0, 209, 210, 22, 0, ! 404, 211, 0, 24, 846, 847, 848, 849, 850, 851, ! 852, 0, 190, 0, 15, 0, 191, 192, 193, 194, ! 195, 0, 0, 0, 0, 196, 0, 0, 0, 0, ! 0, 197, 0, 0, 198, 0, 0, 0, 0, 199, ! 200, 201, 0, 0, 0, 202, 203, 0, 0, 0, ! 204, 205, 0, 0, 0, 206, 0, 207, 83, 0, ! 0, 0, 208, 84, 0, 0, 0, 855, 0, 209, ! 210, 0, 815, 0, 211, 186, 5, 6, 7, 8, ! 187, 188, 0, 189, 9, 10, 11, 351, 352, 353, ! 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, ! 13, 190, 14, 15, 0, 191, 192, 193, 194, 195, ! 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, ! 197, 0, 0, 198, 0, 16, 0, 0, 199, 200, ! 201, 0, 0, 0, 202, 203, 0, 0, 0, 204, ! 205, 0, 0, 0, 206, 0, 207, 22, 0, 0, ! 0, 208, 24, 0, 0, 0, 0, 0, 209, 210, ! 0, 186, 5, 211, 7, 8, 187, 188, 0, 189, ! 9, 10, 11, 0, 0, 5, 147, 7, 148, 0, ! 0, 0, 0, 9, 10, 11, 13, 190, 14, 15, ! 0, 191, 192, 193, 194, 195, 0, 0, 0, 13, ! 196, 14, 0, 0, 0, 0, 197, 0, 0, 198, ! 0, 16, 0, 0, 199, 200, 201, 0, 0, 0, ! 202, 203, 0, 0, 16, 204, 205, 0, 0, 0, ! 206, 0, 207, 22, 186, 0, 539, 208, 24, 187, ! 188, 0, 189, 0, 209, 210, 22, 0, 0, 211, ! 0, 24, 0, 0, 0, -262, 0, 0, 0, 0, ! 190, 0, 15, 0, 191, 192, 193, 194, 195, 0, ! 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, ! 0, 0, 198, 0, 0, 0, 0, 199, 200, 540, ! 0, 0, 0, 202, 203, 0, 0, 0, 204, 205, ! 0, 186, 0, 206, 0, 207, 187, 188, 0, 189, ! 208, 0, 0, 0, 0, 0, 0, 209, 210, 0, ! 0, 541, 211, 0, 0, 0, 0, 190, 0, 15, ! 0, 191, 192, 193, 194, 195, 0, 0, 0, 0, ! 196, 0, 0, 0, 0, 0, 197, 0, 0, 198, ! 0, 0, 0, 0, 199, 200, 201, 0, 0, 0, ! 202, 203, 0, 0, 0, 204, 205, 0, 0, 0, ! 206, 0, 207, 465, 186, 0, 0, 208, 0, 187, ! 188, 0, 189, 0, 209, 210, 0, 0, 5, 211, ! 7, 103, 0, 0, 0, 0, 9, 10, 11, 0, ! 190, 0, 15, 0, 191, 192, 193, 194, 195, 0, ! 0, 0, 13, 196, 14, 0, 0, 0, 0, 197, ! 0, 0, 198, 0, 0, 0, 0, 199, 200, 201, ! 0, 0, 0, 202, 203, 0, 0, 16, 204, 205, ! 0, 186, 0, 206, 0, 207, 187, 188, 0, 189, ! 208, 0, 0, 0, 0, 0, 0, 209, 210, 22, ! 0, 537, 211, 0, 24, 0, 0, 190, 0, 15, ! 0, 191, 192, 193, 194, 195, 0, 0, 0, 0, ! 196, 0, 0, 0, 0, 0, 197, 0, 0, 198, ! 0, 0, 0, 0, 199, 200, 201, 0, 0, 0, ! 202, 203, 0, 0, 0, 204, 205, 0, 186, 0, ! 206, 0, 207, 187, 188, 0, 189, 208, 0, 0, ! 0, 0, 0, 0, 209, 210, 0, 581, 0, 211, ! 0, 0, 0, 0, 190, 0, 15, 0, 191, 192, ! 193, 194, 195, 0, 0, 0, 0, 196, 0, 0, ! 0, 0, 0, 197, 0, 0, 198, 0, 0, 0, ! 0, 199, 200, 201, 0, 0, 0, 202, 203, 0, ! 0, 0, 204, 205, 0, 186, 0, 206, 0, 207, ! 187, 188, 0, 189, 208, 0, 0, 0, 0, 0, ! 0, 209, 210, 0, 0, 670, 211, 0, 0, 0, ! 0, 190, 0, 15, 0, 191, 192, 193, 194, 195, ! 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, ! 197, 0, 0, 198, 0, 0, 0, 0, 199, 200, ! 201, 0, 0, 0, 202, 203, 0, 0, 0, 204, ! 205, 0, 186, 0, 206, 0, 207, 187, 188, 0, ! 189, 208, 0, 0, 0, 0, 941, 0, 209, 210, ! 0, 0, 0, 211, 0, 0, 0, 0, 190, 0, ! 15, 0, 191, 192, 193, 194, 195, 0, 0, 0, ! 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, ! 198, 0, 0, 0, 0, 199, 200, 201, 0, 0, ! 0, 202, 203, 0, 0, 0, 204, 205, 0, 186, ! 0, 206, 0, 207, 187, 188, 0, 189, 208, 0, ! 0, 0, 0, 0, 0, 209, 210, 0, 0, 0, ! 211, 0, 0, 0, 0, 190, 0, 15, 0, 191, ! 192, 193, 194, 195, 0, 0, 0, 0, 196, 0, ! 0, 0, 0, 0, 197, 0, 0, 198, 0, 0, ! 0, 0, 199, 200, 201, 0, 0, 0, 202, 203, ! 0, 0, 0, 341, 205, 0, 186, 0, 206, 0, ! 207, 187, 188, 0, 189, 208, 0, 0, 0, 0, ! 0, 0, 209, 210, 0, 0, 0, 211, 0, 0, ! 0, 0, 190, 0, 15, 0, 191, 192, 193, 194, ! 195, 0, 0, 0, 0, 196, 0, 0, 0, 0, ! 0, 197, 0, 0, 198, 0, 0, 0, 0, 199, ! 200, 201, 0, 0, 0, 202, 203, 0, 0, 0, ! 343, 205, 0, 621, 0, 206, 0, 207, 187, 188, ! 0, 189, 208, 0, 0, 0, 0, 0, 0, 209, ! 210, 0, 0, 0, 211, 0, 0, 0, 0, 190, ! 0, 15, 0, 191, 192, 193, 194, 195, 0, 0, ! 0, 0, 196, 0, 0, 0, 0, 0, 197, 0, ! 0, 198, 0, 0, 0, 0, 199, 200, 201, 0, ! 0, 0, 202, 203, 0, 0, 0, 204, 205, 0, ! 0, 0, 206, 5, 207, 7, 112, 0, 0, 208, ! 0, 9, 10, 11, 0, 0, 209, 210, 0, 407, ! 0, 211, -118, -118, -118, -118, 0, 13, -118, 14, ! -118, -118, -118, 0, 0, 0, 407, 0, 0, 5, ! 6, 7, 8, 0, 0, 0, -118, 9, 10, 11, ! 0, 0, 16, 0, 0, 0, 407, 0, 0, -653, ! -653, -653, -653, 13, 0, 14, 0, -653, -653, -653, ! 0, -118, 0, 0, 22, 0, 0, 0, 0, 24, ! 0, 0, 0, -653, 0, -653, 0, 0, 16, 0, ! 0, 641, 0, -118, 5, 0, 7, 8, -118, 0, ! 0, 0, 9, 10, 11, 0, 0, -118, -653, 0, ! 22, 0, 0, 0, 0, 24, 0, 0, 13, 0, ! 14, 0, 0, 0, -651, 0, 0, 0, 0, 0, ! -653, 0, 0, 0, 0, -653, 0, 289, 290, 0, ! 291, 292, 0, 16, -653, 293, 294, 295, 296, 297, ! 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, ! 308, 309, 310, 311, 0, 22, -610, -610, -610, 0, ! 24, 0, 0, 641, 642, -610, 5, 0, 7, 8, ! 312, 0, 0, 0, 9, 10, 11, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 13, 0, 14, 0, 0, 0, 0, 428, 0, 314, ! 5, 0, 7, 8, 315, 0, 0, 0, 9, 10, ! 11, 0, 454, 0, 0, 16, 0, 0, 0, 0, ! 5, 6, 7, 8, 13, 0, 14, 15, 9, 10, ! 11, 0, 0, 0, 0, 0, 0, 22, -609, -609, ! -609, 0, 24, 0, 13, 0, 642, -609, 4, 16, ! -127, 5, 6, 7, 8, 0, 0, 0, 0, 9, ! 10, 11, 0, 0, 0, 0, 0, 0, 0, 16, ! 0, 22, 0, 0, 12, 13, 24, 14, 15, 0, ! 429, -383, 4, 0, -127, 5, 6, 7, 8, 0, ! 0, 22, 0, 9, 10, 11, 24, 0, 0, 0, ! 16, 0, 0, 17, 18, -127, 0, 0, 0, 13, ! 0, 14, 0, 0, -127, 0, 19, 20, 21, 0, ! 0, 0, 22, 0, 0, 0, 23, 24, 25, 26, ! 0, 27, 0, 0, 16, 0, 0, 17, 18, -127, ! 4, 0, -127, 5, 6, 7, 8, 0, -127, 0, ! 0, 9, 10, 11, 0, 0, 22, 0, 0, 0, ! 0, 24, 0, 0, 0, 27, 0, 13, 648, 14, ! 649, 5, 6, 7, 8, 0, 0, 650, 0, 9, ! 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 16, 0, 0, 13, 0, -127, 0, 648, ! 0, 0, 5, 6, 7, 8, -127, 0, 650, 0, ! 9, 10, 11, 0, 22, 0, 0, 0, 0, 24, ! 16, 0, 0, 27, 0, 0, 13, 0, 5, 107, ! 7, 108, 0, 0, 0, 0, 9, 10, 11, 0, ! 0, 0, 22, 0, 0, 0, 0, 24, 0, 0, ! -548, 16, 13, 0, 0, 0, 5, 116, 7, 117, ! 0, 0, 0, 0, 9, 10, 11, 0, 0, 0, ! 0, 0, 0, 22, 0, 0, 0, 16, 24, 0, ! 13, -548, 5, 143, 7, 144, 0, 0, 0, 0, ! 9, 10, 11, 5, 152, 7, 153, 0, 0, 22, ! 0, 9, 10, 11, 24, 16, 13, 0, -253, 0, ! 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, ! 0, 16, 24, 0, 0, 0, -255, 0, 428, 0, ! 0, 5, 16, 7, 8, 0, 0, 0, 0, 9, ! 10, 11, 0, 22, 0, 0, 0, 0, 24, 0, ! 0, 0, -261, 0, 22, 13, 0, 14, 15, 24, ! 0, 0, 0, -263, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 289, 290, 0, 291, 292, 0, 0, ! 16, 293, 294, 295, 296, 297, 298, 299, 300, 301, ! 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, ! 0, 0, 22, 0, 0, 0, 0, 24, 0, 289, ! 290, 0, 291, 292, 0, 0, 312, 293, 294, 295, ! 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, ! 306, 307, 308, 309, 310, 311, 0, 313, 0, 0, ! 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, ! 315, 0, 468, 289, 290, 0, 291, 292, 0, 0, ! 0, 293, 294, 295, 296, 297, 298, 299, 300, 301, ! 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, ! 0, 314, 0, 0, 0, 0, 315, 0, 0, 289, ! 290, 0, 291, 292, 0, 0, 312, 293, 294, 295, ! 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, ! 306, 307, 308, 309, 310, 311, 0, 0, 5, 102, ! 7, 103, 0, 0, 0, 314, 9, 10, 11, 0, ! 315, 0, 729, 0, 0, 0, 0, 0, 5, 138, ! 7, 139, 13, 0, 14, 0, 9, 10, 11, 5, ! 111, 7, 112, 0, 0, 0, 0, 9, 10, 11, ! 0, 314, 13, 0, 14, 0, 315, 16, 0, 5, ! 147, 7, 148, 13, 0, 14, 0, 9, 10, 11, ! 0, 0, 5, 6, 7, 8, 0, 16, 0, 22, ! 9, 10, 11, 13, 24, 14, 0, 0, 16, 0, ! 0, 0, 5, 0, 7, 8, 13, 0, 14, 22, ! 9, 10, 11, 0, 24, 0, 0, 0, 16, 0, ! 22, 0, 0, 0, 0, 24, 13, 0, 14, 0, ! 0, 16, 0, 5, 107, 7, 108, 0, 0, 0, ! 22, 9, 10, 11, 0, 24, 5, 143, 7, 144, ! 0, 16, 0, 22, 9, 10, 11, 13, 24, 5, ! 116, 7, 117, 0, 0, 0, 0, 9, 10, 11, ! 13, 0, 0, 22, 0, 0, 0, 5, 24, 7, ! 108, 0, 16, 13, 0, 9, 10, 11, 5, 152, ! 7, 153, 0, 0, 0, 16, 9, 10, 11, 0, ! 0, 13, 0, 0, 22, 0, 0, 0, 16, 24, ! 0, 0, 13, 0, 0, 0, 0, 22, 0, 0, ! 0, 0, 24, 0, 0, 0, 16, 0, 0, 0, ! 22, 5, 0, 7, 117, 24, 0, 16, 0, 9, ! 10, 11, 0, 0, 0, 0, 0, 0, 22, 0, ! 0, 0, 0, 24, 0, 13, 0, 0, 0, 22, ! 0, 345, 346, 347, 24, 348, 349, 350, 351, 352, ! 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, ! 16, 345, 346, 347, 0, 348, 349, 350, 351, 352, ! 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, ! 0, 0, 22, 0, 0, 0, 578, 24, 345, 346, ! 347, 0, 348, 349, 350, 351, 352, 353, 354, 355, ! 356, 357, 358, 359, 360, 361, 579, 345, 346, 347, ! 0, 348, 349, 350, 351, 352, 353, 354, 355, 356, ! 357, 358, 359, 360, 361, 0, 0, 0, 0, 0, ! 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 1003, 345, 346, ! 347, 1088, 348, 349, 350, 351, 352, 353, 354, 355, ! 356, 357, 358, 359, 360, 361, 345, 346, 347, 0, ! 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, ! 358, 359, 360, 361 }; static const short yycheck[] = { 16, ! 78, 79, 19, 20, 175, 276, 23, 419, 25, 26, ! 2, 3, 24, 425, 399, 421, 2, 3, 393, 376, ! 22, 376, 24, 9, 10, 11, 283, 2, 3, 417, ! 271, 752, 366, 756, 2, 3, 180, 524, 318, 2, ! 3, 58, 59, 60, 528, 752, 32, 524, 34, 614, ! 36, 572, 38, 534, 40, 572, 42, 866, 44, 522, ! 46, 789, 752, 2, 3, 2, 3, 548, 572, 778, ! 266, 63, 787, 174, 409, 87, 834, 63, 95, 91, ! 9, 1, 56, 1, 572, 87, 2, 3, 63, 91, ! 1, 572, 10, 79, 575, 63, 46, 1, 191, 192, ! 63, 75, 76, 77, 1023, 2, 3, 814, 201, 1, ! 31, 97, 2, 3, 524, 3, 1, 524, 0, 212, ! 778, 779, 97, 1117, 63, 906, 63, 3, 4, 97, ! 9, 224, 106, 83, 505, 1, 843, 1, 1, 3, ! 4, 115, 204, 0, 46, 866, 927, 63, 3, 30, ! 124, 53, 1146, 843, 83, 1074, 633, 84, 97, 133, ! 97, 88, 572, 318, 84, 572, 63, 67, 142, 534, ! 505, 89, 635, 63, 932, 63, 534, 151, 89, 334, ! 197, 85, 67, 548, 441, 519, 160, 46, 266, 68, ! 548, 46, 907, 85, 909, 169, 83, 7, 719, 75, ! 1119, 88, 719, 58, 80, 67, 402, 572, 46, 1128, ! 575, 75, 67, 89, 572, 719, 80, 575, 204, 85, ! 30, 949, 85, 240, 83, 242, 243, 244, 3, 246, ! 247, 719, 603, 604, 605, 606, 27, 572, 719, 67, ! 1159, 3, 4, 30, 230, 83, 232, 1005, 234, 624, ! 236, 313, 534, 53, 175, 333, 46, 614, 615, 46, ! 615, 782, 1071, 53, 326, 782, 548, 253, 509, 255, ! 287, 528, 607, 335, 983, 756, 67, 68, 782, 341, ! 266, 343, 769, 58, 67, 271, 260, 84, 772, 367, ! 572, 283, 67, 575, 782, 312, 271, 283, 442, 762, ! 444, 782, 23, 271, 25, 67, 3, 4, 283, 719, ! 403, 610, 719, 75, 30, 283, 471, 73, 80, 336, ! 283, 505, 1045, 53, 402, 983, 984, 313, 406, 89, ! 3, 4, 271, 53, 271, 84, 85, 258, 259, 46, ! 326, 44, 752, 7, 283, 752, 283, 364, 365, 335, ! 1071, 67, 68, 89, 719, 341, 7, 343, 88, 769, ! 67, 719, 769, 66, 84, 83, 30, 283, 88, 67, ! 88, 464, 782, 672, 386, 782, 3, 4, 75, 30, ! 3, 4, 89, 80, 386, 720, 283, 686, 450, 764, ! 689, 756, 89, 283, 67, 729, 67, 68, 756, 83, ! 48, 49, 75, 481, 88, 970, 84, 80, 679, 98, ! 88, 799, 277, 801, 979, 89, 402, 782, 698, 603, ! 604, 605, 606, 84, 782, 67, 760, 88, 583, 1136, ! 1137, 58, 449, 58, 67, 3, 4, 719, 67, 68, ! 67, 458, 67, 68, 430, 744, 432, 540, 434, 441, ! 436, 67, 75, 80, 83, 441, 866, 80, 536, 866, ! 67, 539, 3, 4, 450, 3, 441, 3, 3, 4, ! 5, 6, 7, 441, 756, 46, 397, 67, 441, 83, ! 3, 4, 53, 5, 6, 7, 88, 504, 67, 68, ! 12, 13, 14, 414, 415, 9, 67, 796, 873, 798, ! 782, 518, 441, 837, 441, 46, 84, 75, 30, 521, ! 88, 376, 80, 9, 576, 772, 578, 58, 580, 521, ! 58, 89, 58, 509, 91, 441, 67, 83, 83, 67, ! 68, 67, 68, 88, 509, 58, 84, 85, 524, 80, ! 75, 509, 528, 698, 441, 80, 83, 67, 68, 524, ! 567, 441, 75, 528, 84, 89, 524, 80, 88, 534, ! 528, 524, 84, 83, 1045, 528, 534, 973, 30, 975, ! 509, 84, 509, 548, 84, 88, 265, 732, 88, 268, ! 548, 969, 84, 272, 46, 524, 572, 524, 83, 528, ! 576, 528, 578, 88, 580, 84, 767, 572, 7, 88, ! 575, 67, 68, 7, 572, 67, 68, 575, 524, 572, ! 67, 84, 528, 970, 971, 88, 971, 83, 534, 67, ! 791, 85, 979, 980, 84, 980, 85, 524, 88, 3, ! 4, 528, 548, 572, 524, 572, 46, 534, 528, 6, ! 7, 83, 883, 67, 68, 12, 13, 14, 947, 83, ! 515, 548, 893, 1065, 83, 1067, 572, 84, 1033, 575, ! 46, 1071, 84, 30, 1071, 651, 88, 653, 9, 655, ! 83, 657, 773, 774, 752, 572, 32, 84, 575, 696, ! 1045, 88, 572, 83, 58, 550, 551, 1045, 67, 5, ! 6, 7, 991, 67, 68, 83, 12, 13, 14, 800, ! 71, 32, 33, 34, 35, 89, 80, 83, 629, 40, ! 41, 42, 43, 699, 30, 701, 9, 703, 90, 705, ! 737, 707, 84, 709, 44, 711, 75, 713, 56, 57, ! 84, 420, 421, 719, 44, 752, 216, 217, 427, 76, ! 77, 78, 88, 71, 719, 83, 1017, 10, 85, 614, ! 615, 719, 603, 604, 443, 606, 719, 1142, 67, 68, ! 752, 67, 68, 1045, 88, 843, 752, 84, 84, 1154, ! 414, 415, 850, 866, 58, 59, 60, 752, 46, 950, ! 719, 756, 719, 769, 752, 83, 772, 83, 756, 752, ! 438, 439, 6, 7, 769, 83, 782, 772, 12, 13, ! 14, 769, 819, 719, 772, 83, 769, 782, 825, 772, ! 970, 971, 83, 752, 782, 752, 5, 6, 7, 782, ! 46, 510, 719, 12, 13, 14, 843, 1126, 1127, 719, ! 769, 83, 769, 772, 851, 772, 752, 90, 83, 89, ! 756, 30, 854, 782, 71, 782, 767, 71, 949, 90, ! 90, 853, 854, 769, 44, 752, 772, 778, 779, 756, ! 83, 89, 752, 85, 85, 943, 782, 85, 83, 46, ! 791, 1, 769, 85, 866, 772, 524, 83, 83, 769, ! 866, 802, 772, 84, 83, 782, 90, 90, 84, 810, ! 27, 866, 782, 84, 46, 84, 88, 883, 866, 230, ! 231, 232, 233, 866, 88, 85, 892, 893, 883, 84, ! 76, 77, 78, 778, 779, 883, 6, 7, 893, 85, ! 3, 4, 12, 13, 14, 893, 84, 866, 617, 866, ! 83, 27, 88, 83, 30, 1013, 83, 83, 1039, 90, ! 30, 3, 71, 85, 883, 810, 883, 1025, 44, 89, ! 866, 1052, 46, 1031, 893, 46, 893, 5, 6, 7, ! 85, 88, 46, 46, 12, 13, 14, 1, 46, 866, ! 4, 5, 6, 7, 84, 58, 866, 84, 12, 13, ! 14, 7, 630, 631, 67, 84, 84, 46, 84, 71, ! 1068, 1069, 88, 1071, 28, 643, 644, 80, 84, 88, ! 67, 690, 691, 84, 978, 694, 67, 4, 5, 6, ! 7, 659, 660, 16, 71, 12, 13, 14, 84, 53, ! 85, 85, 887, 888, 46, 67, 674, 675, 67, 950, ! 67, 28, 17, 30, 83, 71, 84, 83, 83, 1117, ! 84, 75, 83, 1121, 84, 88, 80, 67, 83, 970, ! 971, 76, 77, 78, 84, 89, 53, 90, 979, 980, ! 85, 84, 983, 984, 5, 6, 7, 715, 1146, 1147, ! 1045, 12, 13, 14, 84, 9, 67, 1045, 75, 1071, ! 84, 1002, 83, 80, 83, 1071, 84, 84, 0, 30, ! 15, 1108, 17, 18, 19, 20, 1071, 0, 519, 430, ! 431, 432, 433, 1071, 548, 970, 971, 410, 1071, 548, ! 397, 76, 77, 78, 979, 980, 552, 806, 983, 984, ! 85, 769, 54, 55, 56, 57, 58, 59, 60, 1045, ! 324, 325, 1071, 518, 1071, 62, 63, 1002, 65, 66, ! 67, 68, 797, 84, 930, 833, 340, 970, 1045, 569, ! 441, 345, 346, 910, 913, 1071, 350, 351, 352, 353, ! 354, 355, 356, 357, 358, 359, 360, 361, 56, 57, ! 58, 59, 60, 449, 1071, 1040, 1041, 1042, 567, 505, ! 1075, 1071, 32, 33, 34, 35, 817, 506, 1077, 1123, ! 40, 41, 42, 43, 1125, 884, 1039, 886, 617, 660, ! 889, 774, 575, 640, 768, 894, 895, 575, 897, 1002, ! 633, 859, 860, 5, 6, 7, 719, 698, 544, 571, ! 12, 13, 14, 912, 571, 837, 915, 732, 917, 918, ! 5, 6, 7, 559, 560, 6, 7, 12, 13, 14, ! 471, 12, 13, 14, -1, 36, 37, 38, 39, -1, ! -1, 899, 900, 44, 45, 46, 47, 36, 37, 38, ! 39, 4, 5, 6, 7, 44, 45, 46, 47, 12, ! 13, 14, -1, -1, 5, 6, 7, 603, 604, 605, ! 606, 12, 13, 14, 973, 28, 975, 30, -1, 483, ! 484, -1, 84, -1, -1, -1, -1, -1, 27, -1, ! -1, 30, -1, 992, 5, 6, 7, 996, -1, 84, ! 53, 12, 13, 14, -1, 44, -1, -1, -1, -1, ! 651, 652, -1, 1, 655, 656, 4, 5, 6, 7, ! -1, -1, 75, -1, 12, 13, 14, 80, 67, 68, ! -1, 84, -1, -1, -1, -1, -1, -1, -1, 27, ! 28, -1, 30, 84, 680, 84, 682, 1046, 1047, 88, ! 1049, -1, -1, -1, -1, 1054, 44, 1056, 699, 700, ! 701, 702, 566, -1, 1063, 53, 707, 708, 709, 710, ! 230, 231, 232, 233, 10, 579, 5, 6, 7, 67, ! 68, -1, -1, 12, 13, 14, -1, 75, -1, 593, ! -1, -1, 80, -1, -1, -1, 84, 5, 6, 7, ! 88, 89, -1, -1, 12, 13, 14, 43, 44, 45, ! 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60, 53, 54, 55, 56, 57, ! 58, 59, 60, 234, 235, 236, 237, 30, -1, -1, ! -1, -1, -1, -1, -1, 234, 235, 236, 237, -1, ! 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, ! -1, 1, 676, 3, 4, 5, 6, 7, 8, 9, ! -1, 11, 12, 13, 14, 15, -1, 17, 18, 19, ! 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! 30, 31, 32, 33, 34, 35, 36, 37, 5, 6, ! 7, -1, 42, -1, -1, 12, 13, 14, 48, -1, ! 856, 51, -1, 53, 728, -1, 56, 57, 58, -1, ! -1, -1, 62, 63, -1, -1, -1, 67, 68, 5, ! 6, 7, 72, -1, 74, 75, 12, 13, 14, 79, ! 80, -1, -1, -1, 84, 85, 86, 87, -1, 89, ! -1, 91, -1, -1, 30, -1, -1, -1, -1, -1, ! 430, 431, 432, 433, 910, 1, -1, 913, 4, 5, ! 6, 7, -1, -1, -1, -1, 12, 13, 14, 4, ! 5, 6, 7, 797, -1, -1, -1, 12, 13, 14, ! -1, 27, 28, -1, 30, -1, -1, -1, -1, -1, ! -1, -1, -1, 28, -1, 30, -1, 821, 44, -1, ! -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, ! 834, -1, -1, 434, 435, 436, 437, 841, 53, -1, ! -1, -1, 846, -1, -1, 434, 435, 436, 437, 75, ! -1, -1, -1, -1, 80, -1, -1, -1, 84, -1, ! 75, -1, 88, 89, -1, 80, -1, -1, -1, 84, ! 5, 6, 7, 877, -1, -1, -1, 12, 13, 14, ! 5, 6, 7, 1, -1, 3, 4, 12, 13, 14, ! 8, 9, 1028, 11, -1, 30, -1, -1, -1, -1, ! -1, -1, 906, -1, -1, 30, -1, 911, -1, -1, ! 914, 29, -1, 31, -1, 33, 34, 35, 36, 37, ! -1, -1, -1, 927, 42, -1, 930, -1, 932, -1, ! 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, ! 58, 1077, -1, -1, 62, 63, -1, -1, 66, 67, ! 68, 5, 6, 7, 72, -1, 74, 75, 12, 13, ! 14, 79, 80, -1, 968, -1, -1, 85, 86, 87, ! -1, 89, -1, 91, -1, -1, 30, 1113, 1114, 51, ! 52, 53, 54, 55, 56, 57, 58, 59, 60, 993, ! -1, 651, 652, 997, -1, 655, 656, -1, -1, -1, ! -1, 1005, -1, -1, 1008, -1, -1, -1, 1, -1, ! -1, 4, 5, 6, 7, -1, -1, -1, -1, 12, ! 13, 14, 4, 5, 6, 7, -1, -1, 10, -1, ! 12, 13, 14, -1, 27, 28, -1, 30, -1, 699, ! 700, 701, 702, -1, -1, -1, 28, 707, 708, 709, ! 710, 44, 653, 654, -1, -1, 657, 658, -1, -1, ! 53, -1, -1, -1, 653, 654, -1, -1, 657, 658, ! -1, 53, -1, -1, 67, 68, -1, -1, -1, -1, ! -1, -1, 75, -1, -1, -1, -1, 80, -1, -1, ! -1, 84, -1, 75, -1, 88, 89, -1, 80, -1, ! -1, -1, 703, 704, 705, 706, -1, -1, -1, -1, ! 711, 712, 713, 714, 703, 704, 705, 706, -1, -1, ! -1, -1, 711, 712, 713, 714, 1, -1, 3, 4, ! 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, ! 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, ! 25, 26, 27, 28, 29, 30, 31, -1, 33, 34, ! 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, ! -1, -1, -1, 48, -1, -1, 51, -1, 53, -1, ! -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, ! -1, -1, 67, 68, -1, -1, -1, 72, -1, 74, ! 75, -1, -1, -1, 79, 80, -1, -1, -1, 84, ! -1, 86, 87, -1, 89, 1, 91, 3, 4, -1, ! -1, -1, 8, 9, -1, 11, -1, -1, -1, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, ! -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, 72, -1, 74, 75, ! -1, -1, -1, 79, 80, -1, -1, -1, 84, -1, ! 86, 87, -1, 89, 1, 91, 3, 4, -1, -1, ! -1, 8, 9, -1, 11, -1, -1, -1, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ! 27, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, ! -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, 72, -1, 74, 75, -1, -1, -1, 79, 80, -1, -1, -1, 84, -1, 86, ! 87, -1, 89, 1, 91, 3, 4, -1, 6, 7, ! 8, 9, -1, 11, 12, 13, 14, 48, 49, 50, ! 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ! 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, ! 48, -1, -1, 51, -1, 53, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, 72, -1, 74, 75, -1, -1, ! -1, 79, 80, -1, -1, -1, -1, -1, 86, 87, -1, 89, 1, 91, 3, 4, -1, -1, -1, 8, ! 9, 45, 11, 47, 48, 49, 50, 51, 52, 53, ! 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, -1, 66, 67, 68, -1, -1, -1, 72, -1, 74, 75, -1, -1, -1, ! 79, 80, -1, -1, -1, -1, 85, 86, 87, 1, ! 89, 3, 91, -1, -1, -1, 8, 9, -1, 11, ! 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, ! 59, 60, -1, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, ! 42, -1, 44, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, ! 62, 63, -1, -1, 66, 67, 68, -1, -1, -1, 72, 1, 74, 3, -1, -1, -1, 79, 8, 9, -1, 11, -1, -1, 86, 87, -1, 89, -1, 91, ! 52, 53, 54, 55, 56, 57, 58, 59, 60, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, ! -1, -1, 72, 1, 74, 3, -1, -1, -1, 79, ! 8, 9, -1, 11, -1, -1, 86, 87, -1, 89, ! -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, ! -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, ! 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, ! 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, ! 68, -1, -1, -1, 72, -1, 74, -1, -1, -1, ! -1, 79, -1, -1, -1, -1, -1, -1, 86, 87, ! -1, 89, -1, 91, 3, 4, 5, 6, 7, 8, ! 9, -1, 11, 12, 13, 14, -1, -1, -1, -1, ! -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, ! 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, ! -1, -1, 51, -1, 53, -1, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, ! -1, -1, -1, 72, -1, 74, 75, -1, -1, -1, ! 79, 80, -1, -1, -1, 84, -1, 86, 87, -1, ! 89, -1, 91, 3, 4, 5, 6, 7, 8, 9, ! -1, 11, 12, 13, 14, -1, -1, 4, 5, 6, ! 7, -1, -1, 10, -1, 12, 13, 14, 28, 29, ! 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, ! -1, 28, 42, 30, -1, -1, -1, -1, 48, -1, ! -1, 51, -1, 53, -1, -1, 56, 57, 58, -1, ! -1, -1, 62, 63, -1, -1, 53, 67, 68, -1, ! -1, -1, 72, -1, 74, 75, 3, 4, -1, 79, ! 80, 8, 9, -1, 11, -1, 86, 87, 75, -1, ! 90, 91, -1, 80, 21, 22, 23, 24, 25, 26, ! 27, -1, 29, -1, 31, -1, 33, 34, 35, 36, ! 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, ! -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, ! 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, ! 67, 68, -1, -1, -1, 72, -1, 74, 75, -1, ! -1, -1, 79, 80, -1, -1, -1, 84, -1, 86, ! 87, -1, 89, -1, 91, 3, 4, 5, 6, 7, ! 8, 9, -1, 11, 12, 13, 14, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, ! 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, ! -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, ! 48, -1, -1, 51, -1, 53, -1, -1, 56, 57, ! 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, ! 68, -1, -1, -1, 72, -1, 74, 75, -1, -1, ! -1, 79, 80, -1, -1, -1, -1, -1, 86, 87, ! -1, 3, 4, 91, 6, 7, 8, 9, -1, 11, 12, 13, 14, -1, -1, 4, 5, 6, 7, -1, ! -1, -1, -1, 12, 13, 14, 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, 28, 42, 30, -1, -1, -1, -1, 48, -1, -1, 51, -1, 53, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, 53, 67, 68, -1, -1, -1, ! 72, -1, 74, 75, 3, -1, 5, 79, 80, 8, ! 9, -1, 11, -1, 86, 87, 75, -1, -1, 91, ! -1, 80, -1, -1, -1, 84, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, ! -1, 3, -1, 72, -1, 74, 8, 9, -1, 11, ! 79, -1, -1, -1, -1, -1, -1, 86, 87, -1, ! -1, 90, 91, -1, -1, -1, -1, 29, -1, 31, ! -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, ! 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, ! -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, ! 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, ! 72, -1, 74, 75, 3, -1, -1, 79, -1, 8, ! 9, -1, 11, -1, 86, 87, -1, -1, 4, 91, ! 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, ! 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, 28, 42, 30, -1, -1, -1, -1, 48, ! -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, -1, 53, 67, 68, ! -1, 3, -1, 72, -1, 74, 8, 9, -1, 11, ! 79, -1, -1, -1, -1, -1, -1, 86, 87, 75, ! -1, 90, 91, -1, 80, -1, -1, 29, -1, 31, ! -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, ! 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, ! -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, ! 62, 63, -1, -1, -1, 67, 68, -1, 3, -1, ! 72, -1, 74, 8, 9, -1, 11, 79, -1, -1, ! -1, -1, -1, -1, 86, 87, -1, 89, -1, 91, ! -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, ! 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, ! -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, ! -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, ! -1, -1, 67, 68, -1, 3, -1, 72, -1, 74, ! 8, 9, -1, 11, 79, -1, -1, -1, -1, -1, ! -1, 86, 87, -1, -1, 90, 91, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, ! -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, ! 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, 3, -1, 72, -1, 74, 8, 9, -1, ! 11, 79, -1, -1, -1, -1, 84, -1, 86, 87, ! -1, -1, -1, 91, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, 3, -1, 72, -1, 74, 8, 9, -1, 11, 79, -1, ! -1, -1, -1, -1, -1, 86, 87, -1, -1, -1, 91, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, 3, -1, 72, -1, 74, 8, 9, -1, 11, 79, -1, -1, -1, -1, ! -1, -1, 86, 87, -1, -1, -1, 91, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, 3, -1, 72, -1, 74, 8, 9, ! -1, 11, 79, -1, -1, -1, -1, -1, -1, 86, 87, -1, -1, -1, 91, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, ! -1, -1, 72, 4, 74, 6, 7, -1, -1, 79, ! -1, 12, 13, 14, -1, -1, 86, 87, -1, 1, ! -1, 91, 4, 5, 6, 7, -1, 28, 10, 30, ! 12, 13, 14, -1, -1, -1, 1, -1, -1, 4, ! 5, 6, 7, -1, -1, -1, 28, 12, 13, 14, ! -1, -1, 53, -1, -1, -1, 1, -1, -1, 4, ! 5, 6, 7, 28, -1, 30, -1, 12, 13, 14, ! -1, 53, -1, -1, 75, -1, -1, -1, -1, 80, ! -1, -1, -1, 28, -1, 30, -1, -1, 53, -1, ! -1, 1, -1, 75, 4, -1, 6, 7, 80, -1, ! -1, -1, 12, 13, 14, -1, -1, 89, 53, -1, ! 75, -1, -1, -1, -1, 80, -1, -1, 28, -1, ! 30, -1, -1, -1, 89, -1, -1, -1, -1, -1, ! 75, -1, -1, -1, -1, 80, -1, 3, 4, -1, ! 6, 7, -1, 53, 89, 11, 12, 13, 14, 15, ! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, -1, 75, 76, 77, 78, -1, ! 80, -1, -1, 1, 84, 85, 4, -1, 6, 7, ! 46, -1, -1, -1, 12, 13, 14, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 28, -1, 30, -1, -1, -1, -1, 1, -1, 75, ! 4, -1, 6, 7, 80, -1, -1, -1, 12, 13, ! 14, -1, 88, -1, -1, 53, -1, -1, -1, -1, ! 4, 5, 6, 7, 28, -1, 30, 31, 12, 13, ! 14, -1, -1, -1, -1, -1, -1, 75, 76, 77, ! 78, -1, 80, -1, 28, -1, 84, 85, 1, 53, ! 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, ! 13, 14, -1, -1, -1, -1, -1, -1, -1, 53, ! -1, 75, -1, -1, 27, 28, 80, 30, 31, -1, ! 84, 85, 1, -1, 3, 4, 5, 6, 7, -1, ! -1, 75, -1, 12, 13, 14, 80, -1, -1, -1, ! 53, -1, -1, 56, 57, 58, -1, -1, -1, 28, ! -1, 30, -1, -1, 67, -1, 69, 70, 71, -1, ! -1, -1, 75, -1, -1, -1, 79, 80, 81, 82, ! -1, 84, -1, -1, 53, -1, -1, 56, 57, 58, ! 1, -1, 3, 4, 5, 6, 7, -1, 67, -1, ! -1, 12, 13, 14, -1, -1, 75, -1, -1, -1, ! -1, 80, -1, -1, -1, 84, -1, 28, 1, 30, ! 3, 4, 5, 6, 7, -1, -1, 10, -1, 12, ! 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, 53, -1, -1, 28, -1, 58, -1, 1, ! -1, -1, 4, 5, 6, 7, 67, -1, 10, -1, ! 12, 13, 14, -1, 75, -1, -1, -1, -1, 80, ! 53, -1, -1, 84, -1, -1, 28, -1, 4, 5, ! 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, -1, -1, 75, -1, -1, -1, -1, 80, -1, -1, ! 83, 53, 28, -1, -1, -1, 4, 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, -1, -1, ! -1, -1, -1, 75, -1, -1, -1, 53, 80, -1, ! 28, 83, 4, 5, 6, 7, -1, -1, -1, -1, ! 12, 13, 14, 4, 5, 6, 7, -1, -1, 75, ! -1, 12, 13, 14, 80, 53, 28, -1, 84, -1, ! -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, ! -1, 53, 80, -1, -1, -1, 84, -1, 1, -1, ! -1, 4, 53, 6, 7, -1, -1, -1, -1, 12, ! 13, 14, -1, 75, -1, -1, -1, -1, 80, -1, ! -1, -1, 84, -1, 75, 28, -1, 30, 31, 80, ! -1, -1, -1, 84, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, 3, 4, -1, 6, 7, -1, -1, ! 53, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! -1, -1, 75, -1, -1, -1, -1, 80, -1, 3, ! 4, -1, 6, 7, -1, -1, 46, 11, 12, 13, ! 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, ! 24, 25, 26, 27, 28, 29, -1, 67, -1, -1, ! -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, ! 80, -1, 46, 3, 4, -1, 6, 7, -1, -1, ! -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! -1, 75, -1, -1, -1, -1, 80, -1, -1, 3, ! 4, -1, 6, 7, -1, -1, 46, 11, 12, 13, ! 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, ! 24, 25, 26, 27, 28, 29, -1, -1, 4, 5, ! 6, 7, -1, -1, -1, 75, 12, 13, 14, -1, ! 80, -1, 46, -1, -1, -1, -1, -1, 4, 5, ! 6, 7, 28, -1, 30, -1, 12, 13, 14, 4, ! 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, ! -1, 75, 28, -1, 30, -1, 80, 53, -1, 4, ! 5, 6, 7, 28, -1, 30, -1, 12, 13, 14, ! -1, -1, 4, 5, 6, 7, -1, 53, -1, 75, ! 12, 13, 14, 28, 80, 30, -1, -1, 53, -1, ! -1, -1, 4, -1, 6, 7, 28, -1, 30, 75, ! 12, 13, 14, -1, 80, -1, -1, -1, 53, -1, ! 75, -1, -1, -1, -1, 80, 28, -1, 30, -1, ! -1, 53, -1, 4, 5, 6, 7, -1, -1, -1, ! 75, 12, 13, 14, -1, 80, 4, 5, 6, 7, ! -1, 53, -1, 75, 12, 13, 14, 28, 80, 4, ! 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, ! 28, -1, -1, 75, -1, -1, -1, 4, 80, 6, ! 7, -1, 53, 28, -1, 12, 13, 14, 4, 5, 6, 7, -1, -1, -1, 53, 12, 13, 14, -1, ! -1, 28, -1, -1, 75, -1, -1, -1, 53, 80, ! -1, -1, 28, -1, -1, -1, -1, 75, -1, -1, ! -1, -1, 80, -1, -1, -1, 53, -1, -1, -1, ! 75, 4, -1, 6, 7, 80, -1, 53, -1, 12, ! 13, 14, -1, -1, -1, -1, -1, -1, 75, -1, ! -1, -1, -1, 80, -1, 28, -1, -1, -1, 75, ! -1, 43, 44, 45, 80, 47, 48, 49, 50, 51, ! 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, ! 53, 43, 44, 45, -1, 47, 48, 49, 50, 51, ! 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, ! -1, -1, 75, -1, -1, -1, 88, 80, 43, 44, ! 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, ! 55, 56, 57, 58, 59, 60, 88, 43, 44, 45, ! -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60, -1, -1, -1, -1, -1, ! -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 83, 43, 44, ! 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ! 55, 56, 57, 58, 59, 60, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ! 57, 58, 59, 60 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" --- 778,2150 ---- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 3, 1, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 1, 1, 1, ! 1, 4, 1, 3, 3, 3, 3, 3, 3, 3, ! 3, 3, 3, 3, 3, 0, 4, 0, 4, 0, ! 0, 7, 0, 5, 3, 3, 1, 1, 1, 1, ! 0, 7, 3, 3, 3, 3, 4, 6, 8, 6, ! 4, 3, 3, 2, 2, 1, 1, 1, 1, 1, ! 1, 2, 2, 3, 0, 1, 2, 3, 1, 1, ! 2, 2, 4, 4, 2, 2, 3, 0, 1, 4, ! 4, 3, 3, 2, 2, 1, 2, 2, 2, 2, ! 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, ! 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, ! 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, ! 4, 4, 1, 4, 1, 4, 0, 4, 0, 6, ! 3, 0, 6, 3, 0, 1, 1, 2, 6, 1, ! 3, 0, 1, 4, 6, 4, 1, 1, 1, 1, ! 1, 0, 4, 1, 0, 2, 1, 3, 3, 2, ! 0, 4, 1, 0, 4, 1, 1, 1, 2, 2, ! 0, 0, 7, 0, 0, 7, 1, 1, 4, 3, ! 2, 3, 1, 1, 1, 1, 3, 2, 1, 1, ! 3, 2, 3, 3, 4, 3, 4, 3, 2, 1, ! 1, 2, 1, 2, 1, 2, 0, 7, 5, 0, ! 7, 5, 0, 8, 0, 7, 2, 2, 2, 0, ! 1, 0, 1, 1, 2, 0, 3, 2, 4, 3, ! 4, 3, 1, 1, 2, 1, 4, 1, 4, 4, ! 6, 5, 4, 6, 5, 1, 3, 1, 1, 3, ! 0, 3, 0, 1, 0, 1, 2, 1, 1, 1, ! 3, 2, 3, 4, 3, 2, 2, 1, 3, 4, ! 2, 3, 3, 4, 4, 5, 5, 1, 1, 1, ! 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, ! 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, ! 1, 2, 0, 0, 0, 0, 0, 1, 1, 2, ! 3, 1, 2, 1, 1, 5, 1, 1, 2, 2, ! 2, 2, 0, 5, 0, 4, 0, 0, 1, 2, ! 3, 3, 3, 0, 4, 1, 3, 0, 0, 7, ! 5, 2, 0, 0, 0, 0, 12, 0, 6, 2, ! 1, 1, 2, 3, 2, 2, 2, 3, 6, 8, ! 10, 12, 3, 4, 1, 3, 5, 2, 5, 0, ! 1, 0, 1, 0, 1, 1, 3, 4, 7, 1, ! 3, 0, 3, 2, 0, 0, 6, 2, 0, 1, ! 1, 3, 1, 3, 4, 4, 3, 4, 3, 4, ! 4, 3, 4, 3, 1, 0, 3, 1, 2, 1, ! 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, ! 1, 3, 3, 4, 0, 0, 10, 0, 6, 0, ! 0, 12, 0, 8, 0, 6, 2, 0, 8, 4, ! 0, 9, 5, 0, 6, 3, 0, 1, 3, 3, ! 1, 1, 1, 1, 0, 3, 2, 3, 3, 1, ! 0, 1, 4, 1, 3, 2, 1, 1, 0, 0, ! 0, 7, 0, 0, 2, 1, 1, 2, 0, 3, ! 1, 1, 0, 0, 5, 4, 1, 5, 2, 0, ! 2, 0, 1, 1, 1, 2, 2, 4, 2, 2, ! 1, 3, 2, 2, 1, 0, 2, 0, 3, 1, ! 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 1, 1, 1, 1, 1, 1, 1, 1, 6, 3, ! 5, 2, 1, 1, 1, 2, 1, 3, 2, 1, ! 1, 0, 0, 6, 1, 1, 1, 2, 2, 1, ! 4, 4, 4 }; static const short yydefact[] = { 3, ! 5, 0, 0, 0, 277, 168, 274, 136, 365, 361, ! 363, 0, 60, 0, 574, 0, 627, 628, 0, 0, ! 580, 607, 0, 607, 0, 0, 18, 4, 8, 7, ! 0, 0, 221, 222, 223, 224, 213, 214, 215, 216, ! 225, 226, 227, 228, 217, 218, 219, 220, 128, 128, ! 0, 144, 151, 271, 273, 272, 142, 297, 0, 0, ! 0, 276, 275, 0, 9, 576, 577, 575, 578, 280, ! 629, 579, 6, 16, 17, 366, 362, 364, 0, 0, ! 31, 32, 34, 33, 581, 0, 607, 597, 278, 608, ! 607, 0, 279, 0, 0, 0, 360, 269, 295, 0, ! 285, 0, 171, 137, 149, 155, 139, 172, 138, 150, ! 156, 178, 140, 161, 166, 143, 179, 141, 162, 167, ! 189, 145, 147, 153, 152, 190, 146, 148, 154, 204, ! 157, 159, 164, 163, 205, 158, 160, 165, 173, 169, ! 187, 196, 175, 174, 170, 188, 197, 180, 176, 202, ! 211, 182, 181, 177, 203, 212, 191, 183, 185, 194, ! 193, 192, 184, 186, 195, 206, 198, 200, 209, 208, ! 207, 199, 201, 210, 0, 0, 15, 298, 386, 377, ! 386, 378, 375, 379, 11, 0, 87, 88, 111, 58, ! 59, 0, 0, 0, 0, 0, 90, 0, 35, 37, ! 36, 0, 38, 39, 0, 712, 0, 0, 0, 40, ! 41, 0, 0, 0, 42, 61, 0, 0, 63, 45, ! 47, 89, 110, 0, 0, 106, 107, 108, 109, 302, ! 609, 0, 0, 0, 588, 0, 0, 595, 604, 606, ! 583, 0, 0, 249, 250, 251, 252, 245, 246, 247, ! 248, 411, 0, 241, 242, 243, 244, 270, 0, 0, ! 296, 12, 295, 30, 0, 295, 0, 0, 295, 359, ! 343, 269, 295, 344, 0, 283, 0, 337, 338, 0, ! 0, 0, 0, 0, 367, 0, 370, 0, 373, 673, ! 674, 697, 698, 694, 678, 679, 680, 681, 682, 683, ! 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, ! 695, 696, 0, 0, 675, 676, 630, 647, 666, 670, ! 677, 671, 56, 57, 0, 0, 0, 51, 48, 0, ! 479, 0, 0, 0, 0, 0, 0, 113, 50, 0, ! 0, 0, 52, 0, 54, 0, 0, 80, 78, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 104, 105, 0, 0, 43, 0, 112, 0, ! 0, 475, 467, 0, 49, 308, 309, 310, 307, 0, ! 300, 303, 582, 607, 0, 585, 634, 600, 0, 615, ! 634, 584, 281, 413, 282, 358, 0, 0, 129, 0, ! 566, 356, 0, 0, 431, 0, 0, 0, 28, 0, ! 487, 120, 488, 294, 0, 0, 14, 295, 22, 0, ! 295, 295, 341, 13, 26, 0, 0, 295, 394, 388, ! 241, 242, 243, 244, 237, 238, 239, 240, 128, 128, ! 385, 0, 386, 295, 386, 408, 409, 382, 406, 0, ! 0, 702, 0, 650, 668, 649, 0, 672, 0, 0, ! 0, 0, 94, 93, 0, 711, 710, 713, 720, 715, ! 0, 716, 717, 0, 0, 10, 46, 0, 0, 86, ! 85, 0, 0, 0, 0, 74, 75, 73, 72, 71, ! 69, 70, 64, 65, 66, 67, 68, 103, 102, 0, ! 44, 0, 114, 96, 0, 0, 468, 469, 95, 0, ! 302, 43, 593, 607, 615, 0, 0, 598, 603, 0, ! 0, 0, 269, 295, 412, 414, 419, 418, 420, 428, ! 357, 286, 287, 0, 0, 0, 0, 433, 429, 0, ! 0, 432, 0, 462, 487, 122, 117, 121, 0, 292, ! 342, 0, 0, 20, 291, 340, 24, 0, 369, 487, ! 487, 387, 395, 0, 372, 0, 0, 383, 0, 382, ! 0, 0, 0, 631, 667, 549, 0, 700, 0, 0, ! 0, 91, 62, 0, 719, 721, 0, 718, 723, 722, ! 53, 55, 0, 0, 79, 77, 97, 101, 572, 0, ! 478, 447, 477, 487, 487, 487, 487, 0, 456, 0, ! 488, 442, 451, 470, 299, 301, 87, 0, 590, 634, ! 601, 0, 589, 637, 0, 128, 128, 643, 639, 636, ! 615, 614, 612, 613, 596, 615, 620, 617, 128, 128, ! 0, 605, 422, 542, 427, 295, 426, 288, 0, 570, ! 550, 233, 234, 229, 230, 235, 236, 231, 232, 128, ! 128, 568, 0, 551, 553, 567, 0, 435, 0, 0, ! 434, 430, 488, 118, 128, 128, 0, 339, 284, 287, ! 487, 289, 487, 389, 390, 396, 488, 392, 398, 488, ! 295, 295, 410, 407, 295, 0, 0, 646, 666, 221, ! 222, 223, 224, 213, 214, 215, 216, 225, 226, 227, ! 228, 217, 218, 219, 220, 128, 0, 655, 651, 653, ! 0, 0, 669, 551, 0, 0, 0, 0, 0, 0, ! 703, 0, 704, 705, 81, 84, 471, 0, 448, 443, ! 452, 449, 444, 453, 488, 445, 454, 450, 446, 455, ! 457, 464, 465, 304, 0, 306, 615, 0, 634, 586, ! 0, 0, 0, 0, 638, 0, 0, 621, 621, 616, ! 421, 423, 0, 0, 542, 425, 548, 565, 415, 415, ! 544, 545, 0, 569, 0, 436, 437, 0, 125, 0, ! 126, 0, 314, 312, 311, 293, 488, 0, 488, 295, ! 391, 295, 0, 368, 371, 376, 295, 701, 648, 659, ! 415, 660, 656, 657, 0, 474, 632, 463, 472, 0, ! 98, 0, 100, 327, 87, 0, 324, 0, 326, 0, ! 380, 317, 323, 0, 0, 707, 709, 0, 714, 0, ! 706, 0, 573, 465, 476, 277, 0, 0, 0, 0, ! 0, 0, 530, 607, 607, 525, 487, 0, 127, 128, ! 128, 0, 0, 512, 492, 493, 0, 0, 0, 594, ! 0, 634, 644, 640, 599, 0, 624, 618, 622, 619, ! 424, 543, 349, 269, 295, 350, 295, 345, 346, 295, ! 562, 416, 419, 269, 295, 295, 564, 295, 552, 128, ! 128, 554, 571, 29, 0, 0, 0, 0, 290, 0, ! 487, 0, 295, 487, 0, 295, 374, 295, 295, 665, ! 0, 661, 473, 480, 699, 0, 330, 0, 321, 92, ! 0, 316, 0, 329, 320, 708, 82, 0, 528, 515, ! 516, 517, 0, 0, 0, 531, 0, 488, 513, 0, ! 0, 134, 483, 498, 485, 503, 0, 496, 0, 0, ! 466, 135, 305, 591, 602, 0, 0, 626, 0, 295, ! 422, 542, 560, 295, 348, 295, 352, 561, 417, 422, ! 542, 563, 546, 415, 415, 123, 124, 0, 21, 25, ! 397, 488, 295, 0, 400, 399, 295, 0, 403, 663, ! 664, 658, 415, 99, 0, 0, 318, 319, 0, 526, ! 518, 0, 523, 0, 0, 0, 132, 331, 0, 133, ! 334, 0, 0, 465, 0, 0, 0, 482, 487, 481, ! 502, 0, 514, 634, 587, 642, 641, 645, 625, 0, ! 353, 354, 0, 347, 351, 0, 295, 295, 557, 295, ! 559, 313, 0, 402, 295, 405, 295, 662, 325, 322, ! 0, 524, 0, 295, 130, 0, 131, 0, 0, 0, ! 0, 532, 0, 497, 465, 466, 489, 487, 0, 0, ! 623, 355, 547, 555, 556, 558, 401, 404, 527, 534, ! 0, 529, 332, 335, 0, 0, 486, 533, 511, 504, ! 0, 508, 495, 491, 490, 0, 592, 0, 0, 0, ! 535, 536, 519, 487, 487, 484, 499, 532, 510, 465, ! 501, 0, 0, 534, 0, 0, 488, 488, 465, 0, ! 509, 0, 0, 0, 520, 537, 0, 0, 500, 505, ! 538, 0, 0, 0, 333, 336, 532, 0, 540, 0, ! 521, 0, 0, 0, 0, 506, 539, 522, 541, 465, ! 507, 0, 0, 0 }; ! static const short yydefgoto[] = { 1162, ! 1, 2, 3, 28, 29, 30, 420, 681, 426, 683, ! 268, 545, 828, 213, 332, 500, 215, 216, 217, 218, ! 31, 219, 220, 485, 484, 482, 842, 483, 221, 729, ! 222, 223, 409, 410, 411, 674, 602, 32, 398, 859, ! 244, 245, 246, 247, 248, 249, 250, 251, 41, 42, ! 43, 44, 45, 46, 47, 48, 49, 50, 660, 661, ! 439, 258, 252, 51, 259, 52, 53, 54, 55, 56, ! 275, 100, 269, 276, 798, 101, 677, 399, 261, 58, ! 380, 381, 382, 796, 907, 830, 831, 832, 1006, 833, ! 928, 834, 835, 1017, 1066, 1114, 1020, 1068, 1115, 680, ! 278, 918, 888, 889, 279, 59, 60, 61, 62, 443, ! 445, 450, 288, 63, 932, 569, 283, 284, 441, 685, ! 688, 686, 689, 448, 449, 253, 394, 525, 920, 892, ! 893, 528, 529, 270, 603, 604, 605, 606, 607, 608, ! 412, 373, 845, 1029, 1033, 506, 507, 508, 817, 818, ! 374, 610, 224, 819, 958, 959, 1022, 960, 1024, 413, ! 549, 1076, 1030, 1077, 1078, 961, 1075, 1023, 1129, 1025, ! 1118, 1147, 1160, 1120, 1100, 865, 866, 947, 1101, 1110, ! 1111, 1112, 1150, 645, 774, 662, 898, 1046, 663, 664, ! 902, 665, 779, 402, 535, 666, 667, 600, 225, 65, ! 86, 66, 67, 68, 515, 872, 387, 757, 1034, 620, ! 390, 631, 759, 69, 391, 89, 70, 520, 636, 521, ! 641, 878, 879, 71, 72, 186, 454, 722, 516, 517, ! 629, 764, 1038, 630, 763, 967, 317, 574, 719, 720, ! 721, 921, 922, 456, 576, 318, 319, 320, 321, 322, ! 732, 733, 837, 734, 468, 226, 334, 584, 471, 472, ! 473, 227, 228, 229 }; ! static const short yypact[] = { 147, ! 180, 4042, 4042, 594,-32768,-32768,-32768,-32768, 128, 128, ! 128, 152,-32768, 182,-32768, 356,-32768,-32768, 356, 356, ! -32768, 215, 356, 215, 356, 356,-32768,-32768,-32768,-32768, ! 213, 143, 1192, 1596, 1289, 4217, 768, 478, 925, 517, ! 3020, 4243, 4189, 4254, 959, 1275, 1011, 1398,-32768,-32768, ! 206,-32768,-32768,-32768,-32768,-32768, 128,-32768, 122, 350, ! 438,-32768,-32768, 4042,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 128, 128, 128, 3421, 245, ! -32768,-32768,-32768,-32768,-32768, 197, 398, 252,-32768,-32768, ! 60, 393,-32768, 394, 356, 3007,-32768, 276, 128, 432, ! -32768, 1505,-32768,-32768,-32768,-32768, 128,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 128,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768, 128,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768, 128,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 128,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768, 128,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 128,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 128, ! -32768,-32768,-32768,-32768, 459, 143,-32768,-32768, 261, 229, ! 261, 263,-32768, 269,-32768, 4345,-32768,-32768,-32768,-32768, ! -32768, 3421, 3421, 300, 324, 330,-32768, 356,-32768,-32768, ! -32768, 3421,-32768,-32768, 2261,-32768, 353, 362, 371,-32768, ! -32768, 446, 3421, 381, 418,-32768, 3488, 3555,-32768, 4889, ! 1203, 471, 378, 1905, 3421,-32768,-32768,-32768,-32768, 755, ! -32768, 356, 356, 356, 439, 356, 356,-32768,-32768,-32768, ! -32768, 441, 452, 1730, 4668, 3166, 4740, 810, 989, 1042, ! 1108,-32768, 455, 313, 536, 338, 539,-32768, 143, 143, ! 128,-32768, 128,-32768, 489, 128, 2759, 3822, 128,-32768, ! -32768, 276, 128,-32768, 460,-32768, 3717, 679, 698, 484, ! 3698, 491, 495, 3957,-32768, 514,-32768, 148,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 257, 4614,-32768,-32768,-32768,-32768, 3901, 525, ! -32768,-32768,-32768,-32768, 3421, 3421, 4614,-32768,-32768, 494, ! -32768, 503, 521, 3080, 4381, 4614, 356,-32768,-32768, 523, ! 3421, 2261,-32768, 2261,-32768, 3421, 3421, 590,-32768,-32768, ! 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3421, ! 3421, 3421,-32768,-32768, 356, 356, 3421, 3421,-32768, 603, ! 531,-32768, 607, 564,-32768,-32768,-32768,-32768,-32768, 72, ! -32768, 582,-32768, 215, 584,-32768, 587, 580, 589,-32768, ! 587,-32768,-32768, 492,-32768, 698, 319, 143,-32768, 676, ! -32768,-32768, 3007, 3153,-32768, 602, 1611, 617,-32768, 1246, ! 99,-32768,-32768, 659, 459, 459,-32768, 128,-32768, 3822, ! 128, 128,-32768,-32768,-32768, 3822, 630, 128,-32768,-32768, ! 1730, 4668, 3166, 4740, 810, 989, 1042, 1108,-32768, 694, ! 624, 4302, 261, 128, 261,-32768, 670, 632,-32768, 148, ! 4614,-32768, 641, 642, 718,-32768, 525,-32768, 290, 1827, ! 4774, 644,-32768,-32768, 3220,-32768,-32768,-32768,-32768, 684, ! 653, 4381,-32768, 655, 660,-32768, 4889, 665, 685, 4889, ! 4889, 3421, 704, 3421, 3421, 1740, 2885, 1693, 890, 1127, ! 1342, 1342, 658, 658,-32768,-32768,-32768,-32768,-32768, 687, ! 418, 650,-32768,-32768, 356, 1994, 607,-32768,-32768, 709, ! 755, 3622, 664, 215,-32768, 724, 4074,-32768,-32768, 557, ! 3856, 732, 276, 128,-32768,-32768,-32768,-32768, 722,-32768, ! -32768,-32768, 139, 109, 3991, 715, 3421,-32768,-32768, 3421, ! 3287,-32768, 719,-32768,-32768,-32768,-32768,-32768, 4633,-32768, ! 679, 392, 459,-32768, 769,-32768,-32768, 736,-32768,-32768, ! -32768,-32768,-32768, 744,-32768, 747, 3421, 356, 754, 632, ! 738, 4425, 1726,-32768,-32768, 4489, 4614,-32768, 4614, 3421, ! 4614,-32768,-32768, 4461,-32768,-32768, 684,-32768,-32768,-32768, ! 753, 753, 800, 3421, 2228, 2400,-32768,-32768,-32768, 486, ! 617,-32768,-32768, 85, 98, 102, 123, 852,-32768, 772, ! -32768,-32768,-32768,-32768,-32768,-32768, 155, 781,-32768, 587, ! -32768, 568,-32768,-32768, 143,-32768,-32768,-32768, 416,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! 783,-32768, 492, 492,-32768, 128,-32768,-32768, 785,-32768, ! -32768, 4507, 4645, 1075, 978, 4518, 4698, 1128, 1450,-32768, ! -32768,-32768, 786, 499,-32768,-32768, 158,-32768, 782, 784, ! -32768,-32768,-32768,-32768, 789, 792, 2509,-32768,-32768, 853, ! -32768,-32768,-32768,-32768, 793,-32768,-32768, 794,-32768,-32768, ! 128, 128, 4889,-32768, 128, 798, 356,-32768, 3901, 4507, ! 4645, 4549, 4710, 1075, 978, 1219, 1479, 4518, 4698, 4561, ! 4727, 1128, 1450, 1278, 1517, 801, 803,-32768,-32768, 4603, ! 3803, 97,-32768, 802, 805, 809, 4792, 811, 1386, 3421, ! 850, 807, 4461,-32768,-32768, 2315,-32768, 356,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, 2670,-32768, 3421,-32768,-32768, 829, 587,-32768, ! 459, 143, 4345, 4132,-32768, 606, 3938, 368, 368,-32768, ! -32768,-32768, 818, 4160,-32768,-32768,-32768,-32768, 332, 430, ! -32768,-32768, 2772,-32768, 899,-32768,-32768, 97,-32768, 459, ! -32768, 143,-32768,-32768, 4889,-32768,-32768, 2509,-32768, 128, ! 511, 128, 454,-32768,-32768,-32768, 128,-32768,-32768,-32768, ! 332,-32768,-32768,-32768, 817,-32768,-32768, 824,-32768, 356, ! -32768, 3421,-32768,-32768, 864, 356,-32768, 869, 4889, 832, ! 833,-32768,-32768, 62, 2437, 418,-32768, 3421,-32768, 850, ! -32768, 3421,-32768, 2832,-32768, 874, 3421, 878, 841, 843, ! 3354, 618, 921, 277, 294,-32768,-32768, 845,-32768,-32768, ! -32768, 851, 1348,-32768,-32768,-32768, 2921, 191, 611,-32768, ! 882, 587,-32768,-32768,-32768, 3421, 894, 866,-32768, 866, ! -32768,-32768,-32768, 276, 128,-32768, 128, 733, 758, 145, ! -32768,-32768, 128, 276, 128, 145,-32768, 128,-32768,-32768, ! -32768,-32768,-32768,-32768, 501, 542, 1386, 97,-32768, 97, ! -32768, 3421, 115,-32768, 3421, 259,-32768, 128, 145,-32768, ! 566,-32768,-32768,-32768,-32768, 4816,-32768, 1386,-32768,-32768, ! 2350,-32768, 2581,-32768,-32768,-32768, 2315, 1807,-32768,-32768, ! -32768,-32768, 872, 3421, 876,-32768, 895,-32768,-32768, 459, ! 143,-32768,-32768,-32768,-32768,-32768, 896, 951, 2083, 110, ! -32768,-32768,-32768,-32768,-32768, 897, 101, 4889, 3421, 128, ! 332, 443,-32768, 128,-32768, 128,-32768,-32768, 128, 430, ! 430,-32768,-32768, 332, 430,-32768,-32768, 884,-32768,-32768, ! -32768,-32768, 4853, 3421,-32768,-32768, 4853, 3421,-32768,-32768, ! -32768,-32768, 332,-32768, 889, 2581,-32768,-32768, 3421,-32768, ! -32768, 891,-32768, 3421, 932, 575,-32768, 449, 586,-32768, ! 667, 912, 915,-32768, 930, 3421, 2172,-32768,-32768,-32768, ! -32768, 3421,-32768, 587,-32768,-32768,-32768,-32768, 4889, 368, ! 733, 758, 436,-32768,-32768, 4160, 128, 145,-32768, 145, ! -32768,-32768, 511,-32768, 4853,-32768, 4853,-32768,-32768,-32768, ! 4871,-32768, 81, 128,-32768, 3822,-32768, 3822, 3421, 3421, ! 982, 2921, 922,-32768,-32768,-32768,-32768,-32768, 927, 941, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 111, ! 929,-32768,-32768,-32768, 937, 938,-32768,-32768,-32768,-32768, ! 942,-32768,-32768,-32768,-32768, 943,-32768, 955, 356, 90, ! 947,-32768,-32768,-32768,-32768,-32768,-32768, 3421,-32768,-32768, ! -32768, 3421, 948, 111, 953, 111,-32768,-32768,-32768, 958, ! -32768, 956, 1035, 116,-32768,-32768, 817, 817,-32768,-32768, ! -32768, 983, 676, 961,-32768,-32768, 3421, 3421, 471, 297, ! -32768, 968, 986, 987, 676,-32768,-32768,-32768, 471,-32768, ! -32768, 1073, 1074,-32768 }; static const short yypgoto[] = {-32768, ! -32768,-32768,-32768, 136, -493,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768, -16,-32768, 14, 565, -336, 620,-32768,-32768, ! -32768, -152, 706,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -398,-32768, -406, 674,-32768,-32768, 105, 354, -407, -818, ! 32, 67, 24, 92, 44, 131, 140, 169, -395, -382, ! -505, -491, -351, -346, -481, -472, -469, -454, 527, 543, ! -479, -268, -177, -730, -253, 1067, 1132, 1107, 1190,-32768, ! -713, -137, -269, 541,-32768, 699,-32768, 433, 19, -2, ! -32768, 588,-32768, 308,-32768, -545,-32768, 167,-32768, -770, ! -32768,-32768, 273,-32768,-32768,-32768,-32768,-32768,-32768, -174, ! 428, -722, 141, -109, 208,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, 547, -128,-32768, 677,-32768, ! -32768, 212, 216, 681, 558, 427,-32768,-32768, -708, -362, ! -343, -605,-32768, 390,-32768,-32768,-32768,-32768,-32768,-32768, ! -377,-32768,-32768, -675, 51,-32768,-32768, 622, -676,-32768, ! 320,-32768,-32768, -728,-32768,-32768,-32768,-32768,-32768, 657, ! -552, 59, -702, -349, -199,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -883, 25, ! -32768, 17,-32768, 502,-32768, -737,-32768,-32768, 574, 581, ! -32768,-32768, 490, -410,-32768,-32768,-32768,-32768, 3,-32768, ! 424,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, ! -32768,-32768,-32768,-32768,-32768, -6, -7, -426,-32768, 520, ! -32768, 391, 132, -420,-32768,-32768,-32768,-32768, -378,-32768, ! -32768,-32768,-32768, 549,-32768,-32768, 408,-32768,-32768,-32768, ! 474,-32768, 192, 508,-32768, 628, 636, -228,-32768, -283, ! -32768,-32768, 372, 476,-32768,-32768,-32768,-32768,-32768,-32768, ! 741,-32768,-32768,-32768 }; ! #define YYLAST 4949 static const short yytable[] = { 85, ! 277, 534, 87, 88, 64, 64, 91, 421, 85, 95, ! 553, 556, 522, 554, 90, 440, 90, 93, 415, 557, ! 57, 57, 862, 624, 864, 35, 35, 76, 77, 78, ! 501, 526, 546, 33, 33, 458, 882, 772, 280, 323, ! 324, 639, 180, 182, 184, 37, 37, 626, 962, 329, ! 527, 107, 286, 116, 178, 125, 887, 134, 753, 143, ! 339, 152, 627, 161, 935, 170, 64, 710, 34, 34, ! 891, 897, 375, 178, 178, 178, 905, 863, 242, 90, ! 235, 711, 57, 90, 239, -458, 923, 35, 622, 407, ! 457, 714, 214, 36, 36, 33, 628, 815, -459, -116, ! 715, 1036, -460, 716, 178, 933, 470, 37, 547, 243, ! 1031, 904, 16, 178, 57, 864, 57, 369, 717, 1108, ! 788, 256, 178, -461, 81, 82, 1090, 826, 609, 254, ! 34, 178, 38, 38, 801, 1124, 862, 803, 73, 656, ! 178, 39, 39, -581, 14, 97, -1, -581, 446, 178, ! 81, 82, 657, 656, 510, 36, 612, 14, 178, 511, ! 994, 1143, 1008, 1091, 255, 265, 657, 178, 863, -438, ! 40, 40, 1125, 440, 14, 501, 1032, 708, 1109, -2, ! 656, 328, -439, 658, 1037, 816, -440, -116, 659, 257, ! 709, 648, 844, 657, 38, 718, 83, 658, 1144, 185, ! 98, 84, 659, 39, 766, 266, 267, -441, 628, 99, ! 179, 266, 267, 379, 710, 383, 384, 385, 79, 388, ! 389, 712, 83, 57, 658, 537, 713, 84, 711, 659, ! 751, 989, 40, 990, 1130, 1060, 1016, 754, 714, 102, ! 784, 758, 755, 587, 908, 785, 910, 715, 80, 231, ! 716, 329, 640, 1099, 740, 743, 746, 749, 178, 81, ! 82, 1047, 107, 1152, 116, 717, 125, 16, 134, 643, ! 874, 447, 107, 963, 116, 1049, 1051, 710, 341, 96, ! 406, 773, 8, 860, 232, 57, 442, 639, 14, 177, ! 57, 711, 81, 82, 626, 256, 452, 236, 861, 771, ! 527, 714, 57, 254, 998, 14, 613, 433, 1083, 627, ! 715, 230, 583, 900, 564, 431, 566, 285, 237, 104, ! 475, 1071, -34, 451, 708, 266, 267, 435, 901, 16, ! 869, 83, 57, 282, 97, 883, 84, 709, 255, -33, ! 238, 862, 14, 814, 113, 57, 16, 467, 498, 499, ! 432, 287, 81, 82, 57, 731, 577, 289, 81, 82, ! 57, 988, 57, 257, 83, 772, 325, 14, 712, 84, ! 97, 271, 1103, 713, 772, 434, 90, 513, 656, 1154, ! 871, 502, 1005, 281, 1155, 266, 267, 708, 329, 884, ! 326, 657, 911, 836, 914, 1015, 327, 860, 885, 267, ! 709, 531, 175, 176, 741, 744, 747, 750, 1145, 1146, ! 421, 886, 861, 876, 436, 458, 536, 1131, 868, 335, ! 543, 57, 658, 437, 83, 272, 1139, 659, 336, 84, ! 83, 712, 97, 447, 273, 84, 713, 337, 181, 1053, ! 81, 82, 578, 233, 442, 97, 92, 274, 94, 107, ! 16, 116, 438, 125, 338, 134, 97, 1161, 422, 267, ! 57, 97, 271, 340, 234, 433, 396, 397, 370, 57, ! 457, 17, 18, 431, 678, 265, 240, 241, -287, 369, ! 232, 232, 126, 7, 127, 435, -635, 894, 599, 9, ! 10, 11, -287, 966, 379, 593, 895, 267, 640, 915, ! 884, 836, 976, 267, 840, 341, 90, 621, 432, 885, ! 267, 98, 83, 97, 271, 262, 272, 84, 1082, 263, ! 99, 135, 7, 136, 392, 273, 183, 386, 9, 10, ! 11, 260, -287, 434, 393, 57, -287, 395, 274, 57, ! 35, 57, 109, 417, 433, 118, 256, 418, 33, 523, ! 669, 447, 431, 670, 254, 400, 912, 427, 524, 267, ! 37, -258, 1040, 1044, 435, 1045, 652, 424, 272, 737, ! 459, 263, 436, 738, 1137, 1138, 463, 273, 654, 428, ! 652, 437, 782, 34, 986, 464, 783, 432, 418, 255, ! 274, 57, 654, 877, 877, 57, 702, 57, 444, 57, ! -260, 653, 860, 465, 700, 533, 476, 652, 36, 773, ! 438, 503, 434, 504, 257, 653, 704, 861, 773, 654, ! 81, 82, 396, 397, 280, 987, 913, 771, 527, 263, ! 971, 333, 632, 633, 634, -83, 771, 527, 505, 701, ! 980, 635, 653, 632, 633, 634, 509, 38, 512, 1002, ! 656, 436, 760, 1003, 906, 1080, 39, -633, 1065, 1093, ! 437, 1094, 418, 657, 703, 655, 514, 423, 518, 1067, ! 107, 519, 125, 263, 143, 944, 161, 74, 75, 655, ! 808, 632, 633, 634, 189, 40, 632, 633, 634, 438, ! 875, 539, 83, 265, 658, 964, -287, 84, 401, 659, ! 544, 414, 550, 705, 558, 416, 655, 562, 739, 742, ! -287, 748, 706, 567, 375, 360, 361, 362, 107, 568, ! 116, 843, 125, 572, 134, 573, 143, 575, 152, 585, ! 161, 581, 170, 266, 267, 586, 857, 589, 57, 598, ! 453, 707, 590, 702, 1149, 422, 267, 591, 421, 594, ! -287, 700, 619, 462, -287, 867, 1159, 81, 82, 376, ! 377, 378, 474, 704, 266, 267, 858, 592, 478, 597, ! 479, 57, 121, 7, 122, 1018, 35, -393, -393, 9, ! 10, 11, 57, 530, 33, 57, 701, 35, 646, 267, ! 433, 615, 560, 561, 623, 33, 37, 14, 431, 974, ! 267, 57, 642, 925, 668, 652, 702, 37, 672, 927, ! 435, 703, 682, 1019, 700, 7, 122, 654, 684, 34, ! 697, 9, 10, 11, 976, 267, 704, 857, 691, 83, ! 34, 692, 533, 432, 84, 945, 343, 345, 695, 14, ! 653, 582, 551, 552, 36, 735, 90, 90, 93, 701, ! 705, -257, 408, 555, 401, 36, 752, 858, 434, 706, ! 559, 1042, 1043, 756, 943, 877, 770, 777, 781, 867, ! 625, 786, 789, 787, 703, 791, 565, 571, 913, 265, ! 800, 802, 807, 38, 810, 57, 812, 820, 707, 783, ! 35, 821, 39, 823, 38, 838, 839, 436, 33, 870, ! 881, 903, 57, 39, 655, 816, 437, 256, 372, -31, ! 37, 979, 57, 705, 929, 254, 930, 256, 647, -32, ! 931, 40, 706, 939, 940, 254, 941, 946, 949, 130, ! 7, 131, 40, 34, 952, 438, 9, 10, 11, 969, ! 423, 423, 355, 356, 357, 358, 359, 360, 361, 362, ! 255, 707, 965, 970, 14, 1011, 644, 1012, 36, 1013, ! 255, 1014, 1026, 157, 7, 158, 1027, 1035, 1052, 533, ! 9, 10, 11, 1059, 1062, 257, 178, 1064, 1069, 761, ! 762, 1070, 126, 7, 127, 257, 890, 896, 14, 9, ! 10, 11, 768, 769, 7, 127, 1072, 38, 1097, 533, ! 9, 10, 11, 725, 1102, 726, 39, 728, -259, 1106, ! 916, 1107, 1113, 778, 778, 166, 7, 167, 919, 1116, ! 1117, 1122, 9, 10, 11, 1119, 1121, 1063, 790, 792, ! 460, 461, 530, 530, 1126, 40, 1135, 1133, 1141, 1073, ! 14, 1140, -265, 1142, 1151, 1079, 477, 7, 131, 1148, ! 1156, 480, 481, 9, 10, 11, 486, 487, 488, 489, ! 490, 491, 492, 493, 494, 495, 496, 497, 1157, 811, ! 1158, 14, 1163, 1164, 867, 675, 618, 652, 775, 121, ! 7, 122, 1095, 1096, 548, 1098, 9, 10, 11, 654, ! 57, 676, 1123, 679, -267, 35, 532, 1007, 616, 105, ! 110, 114, 119, 33, 14, 909, 934, 141, 146, 150, ! 155, 1041, 653, 7, 136, 37, 696, 625, 563, 9, ! 10, 11, 991, 804, 805, 694, 1104, 806, 614, 996, ! 570, 1098, 157, 7, 158, 1132, 1105, 924, 34, 9, ! 10, 11, 1136, 123, 128, 132, 137, 776, 1134, 723, ! 780, 159, 164, 168, 173, 767, 724, 14, 1021, 880, ! 1098, 1153, 611, 36, 106, 111, 115, 120, 530, 530, ! 873, 1081, 142, 147, 151, 156, 655, 765, 396, 397, ! 356, 357, 358, 359, 360, 361, 362, 396, 397, 595, ! 596, 1048, 1050, 813, 1058, 5, 103, 7, 104, 698, ! 530, 673, 38, 9, 10, 11, 809, 699, 841, 936, ! 919, 39, 588, 950, 951, 0, 687, 690, 0, 13, ! 0, 14, 0, 130, 7, 131, 124, 129, 133, 138, ! 9, 10, 11, 0, 160, 165, 169, 174, 0, 917, ! 40, 0, 0, 0, 16, 0, 408, 0, 14, -119, ! -119, -119, -119, 984, 985, -119, 0, -119, -119, -119, ! 611, 611, 745, 611, 363, 364, 22, 365, 366, 367, ! 368, 24, 693, -119, 0, -253, 0, 975, 977, 162, ! 7, 163, 166, 7, 167, 727, 9, 10, 11, 9, ! 10, 11, 5, 112, 7, 113, 0, 0, -119, 736, ! 9, 10, 11, 0, 0, 0, 0, 14, 0, 0, ! 105, 110, 114, 119, 0, 0, 13, 972, 14, 973, ! -119, 0, 978, 0, 0, -119, 0, 981, 982, 0, ! 983, 0, 0, 0, -119, 0, 0, 797, 0, 799, ! 0, 16, 0, 0, 0, 995, 0, 0, 999, 0, ! 1000, 1001, 0, 0, 123, 128, 132, 137, -266, 0, ! 530, 530, 953, 22, 954, 955, 956, 957, 24, 530, ! 530, 0, -255, 530, 530, 106, 111, 115, 120, 0, ! 0, 0, 795, 0, 0, 0, 824, 0, 825, 82, ! 0, 0, 530, 188, 189, 0, 190, 358, 359, 360, ! 361, 362, 171, 7, 172, 0, 401, 0, 401, 9, ! 10, 11, 0, 0, 191, 0, 15, 0, 192, 193, ! 194, 195, 196, 0, 0, 1054, 0, 197, 0, 1056, ! 975, 977, 977, 198, 829, 0, 199, 124, 129, 133, ! 138, 200, 201, 202, 0, 0, 0, 203, 204, 0, ! 0, 826, 205, 206, 162, 7, 163, 207, 0, 208, ! 83, 9, 10, 11, 209, 84, 0, 0, 0, 0, ! -315, 210, 211, 0, 827, 0, 212, 0, 0, 1084, ! 1085, -268, 1086, 135, 7, 136, 0, 1087, 0, 1088, ! 9, 10, 11, 0, 0, 0, 1092, 105, 110, 114, ! 119, 0, 0, 795, 0, 264, 0, 0, -27, -27, ! -27, -27, 0, 948, 0, 0, -27, -27, -27, 0, ! 0, 171, 7, 172, 0, 0, 0, 926, 9, 10, ! 11, 265, -27, 0, -287, 0, 0, 0, 0, 0, ! 829, 123, 128, 132, 137, 0, 0, 937, -287, 0, ! 0, 0, 938, 0, 0, 0, 0, -27, 0, 0, ! 0, 0, 106, 111, 115, 120, 0, 992, 0, 0, ! 690, 266, 267, 0, 0, 0, 0, 0, 0, -27, ! 0, 968, 0, 0, -27, 0, 0, 0, -287, 0, ! 0, 0, -287, -27, 0, 0, 0, 0, 0, 5, ! 108, 7, 109, 0, 0, 0, 0, 9, 10, 11, ! 0, 0, 829, 187, 0, 540, 0, 993, 188, 189, ! 997, 190, 0, 13, 124, 129, 133, 138, 0, 0, ! 0, 0, 0, 829, 0, 0, 829, 0, 829, 191, ! 0, 15, 0, 192, 193, 194, 195, 196, 16, 0, ! 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, ! 0, 199, 0, 0, 0, 0, 200, 201, 541, 0, ! 22, 0, 203, 204, 1039, 24, 0, 205, 206, -254, ! 0, 0, 207, 0, 208, 745, 0, 0, 0, 209, ! 0, 0, 0, 0, 0, 0, 210, 211, 0, 1055, ! 542, 212, 0, 1057, 0, 0, 0, 0, 0, 0, ! 0, 829, 0, 0, 1061, 0, 0, 0, 105, 110, ! 0, 0, 141, 146, 0, 0, 408, 0, 0, 5, ! 6, 7, 8, 5, 745, 7, 104, 9, 10, 11, ! 0, 9, 10, 11, 354, 355, 356, 357, 358, 359, ! 360, 361, 362, 13, 0, 14, 0, 13, 0, 14, ! 123, 128, 0, 0, 159, 164, 105, 110, 114, 119, ! 1127, 1128, 0, 0, 141, 146, 150, 155, 16, 0, ! 0, 0, 16, 106, 111, 0, 0, 142, 147, 352, ! 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ! 22, 0, 0, 0, 22, 24, 0, 0, 0, 24, ! 123, 128, 132, 137, -652, 0, 1009, 0, 159, 164, ! 168, 173, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 106, 111, 115, 120, 0, 0, 0, 0, 142, ! 147, 151, 156, 124, 129, 0, 0, 160, 165, 346, ! 347, 348, 1010, 349, 350, 351, 352, 353, 354, 355, ! 356, 357, 358, 359, 360, 361, 362, 0, 0, 346, ! 347, 348, 0, 349, 350, 351, 352, 353, 354, 355, ! 356, 357, 358, 359, 360, 361, 362, 0, 0, 0, ! 0, 0, 0, 124, 129, 133, 138, 0, 0, 0, ! 0, 160, 165, 169, 174, 371, 0, -463, -463, -463, ! -463, -463, -463, -463, 579, -463, -463, -463, -463, -463, ! 0, -463, -463, -463, -463, -463, -463, -463, -463, -463, ! -463, -463, -463, -463, -463, -463, -463, -463, -463, -463, ! -463, -463, 0, 0, 0, 0, -463, 0, 0, 0, ! 0, 0, -463, 0, 0, -463, 0, -463, 0, 0, ! -463, -463, -463, 0, 0, 0, -463, -463, 0, 0, ! 0, -463, -463, 0, 0, 0, -463, 0, -463, -463, ! 0, 0, 0, -463, -463, 0, 0, 0, -463, 372, ! -463, -463, 0, -463, 601, -463, -487, -487, -487, -487, ! -487, -487, -487, 0, -487, -487, -487, -487, -487, 0, ! -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, ! -487, -487, -487, -487, -487, 0, -487, -487, -487, -487, ! -487, 0, 0, 0, 0, -487, 0, 0, 0, 0, ! 0, -487, 0, 0, -487, 0, -487, 0, 0, -487, ! -487, -487, 0, 0, 0, -487, -487, 0, 0, 0, ! -487, -487, 0, 0, 0, -487, 0, -487, -487, 0, ! 0, 0, -487, -487, 0, 0, 0, -487, 0, -487, ! -487, 0, -487, 1028, -487, -465, -465, 0, 0, 0, ! -465, -465, 0, -465, 0, 0, 0, -465, 0, -465, ! -465, -465, -465, -465, -465, -465, -465, -465, -465, -465, ! 0, -465, 0, -465, 0, -465, -465, -465, -465, -465, ! 0, 0, 0, 0, -465, 0, 0, 0, 0, 0, ! -465, 0, 0, -465, 0, 0, 0, 0, -465, -465, ! -465, 0, 0, 0, -465, -465, 0, 0, 0, -465, ! -465, 0, 0, 0, -465, 0, -465, -465, 0, 0, ! 0, -465, -465, 0, 0, 0, -465, 0, -465, -465, ! 0, -465, 1074, -465, -494, -494, 0, 0, 0, -494, ! -494, 0, -494, 0, 0, 0, -494, 0, -494, -494, ! -494, -494, -494, -494, -494, -494, -494, -494, -494, 0, ! -494, 0, -494, 0, -494, -494, -494, -494, -494, 0, ! 0, 0, 0, -494, 0, 0, 0, 0, 0, -494, ! 0, 0, -494, 0, 0, 0, 0, -494, -494, -494, ! 0, 0, 0, -494, -494, 0, 0, 0, -494, -494, ! 0, 0, 0, -494, 0, -494, -494, 0, 0, 0, ! -494, -494, 0, 0, 0, -494, 0, -494, -494, 0, ! -494, 330, -494, 187, 5, 0, 7, 8, 188, 189, ! 0, 190, 9, 10, 11, 350, 351, 352, 353, 354, ! 355, 356, 357, 358, 359, 360, 361, 362, 13, 191, ! 14, 15, 0, 192, 193, 194, 195, 196, 0, 0, ! 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, ! 0, 199, 0, 16, 0, 0, 200, 201, 202, 0, ! 0, 0, 203, 204, 0, 0, 0, 205, 206, 0, ! 0, 0, 207, 0, 208, 22, 0, 0, 0, 209, ! 24, 0, 0, 0, 0, 0, 210, 211, 0, 331, ! 824, 212, 825, 82, 0, 0, 0, 188, 189, 348, ! 190, 349, 350, 351, 352, 353, 354, 355, 356, 357, ! 358, 359, 360, 361, 362, 0, 0, 0, 191, 0, ! 15, 0, 192, 193, 194, 195, 196, 0, 0, 0, ! 0, 197, 0, 0, 0, 0, 0, 198, 0, 0, ! 199, 0, 0, 0, 0, 200, 201, 202, 0, 0, ! 0, 203, 204, 0, 0, 826, 205, 206, 0, 0, ! 0, 207, 0, 208, 83, 0, 0, 0, 209, 84, ! 0, 0, 0, 0, -381, 210, 211, 824, 827, 187, ! 212, 0, 0, 0, 188, 189, 0, 190, 351, 352, ! 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ! 0, 0, 0, 0, 0, 191, 0, 15, 0, 192, ! 193, 194, 195, 196, 0, 0, 0, 0, 197, 0, ! -328, 0, 0, 0, 198, 0, 0, 199, 0, 0, ! 0, 0, 200, 201, 202, 0, 0, 0, 203, 204, ! 0, 0, -328, 205, 206, 0, 0, 0, 207, 793, ! 208, 187, 0, 0, 0, 209, 188, 189, 0, 190, ! 0, 0, 210, 211, 0, 827, 0, 212, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 191, 0, 15, ! 0, 192, 193, 194, 195, 196, 0, 0, 0, 0, ! 197, 0, 0, 0, 0, 0, 198, 0, 0, 199, ! 0, 0, 0, 0, 200, 201, 202, 0, 0, 0, ! 203, 204, 0, 0, 0, 205, 206, 0, 0, 0, ! 207, 824, 208, 187, 0, 0, 0, 209, 188, 189, ! 0, 190, 0, 0, 210, 211, 0, 794, 0, 212, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, ! 0, 15, 0, 192, 193, 194, 195, 196, 0, 0, ! 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, ! 0, 199, 0, 0, 0, 0, 200, 201, 202, 0, ! 0, 0, 203, 204, 0, 0, 0, 205, 206, 0, ! 0, 0, 207, 0, 208, 0, 0, 0, 0, 209, ! 0, 0, 0, 0, 0, 0, 210, 211, 0, 827, ! 0, 212, 825, 846, 6, 7, 8, 188, 189, 0, ! 190, 9, 10, 11, 0, 0, 0, 0, 0, 0, ! 847, 848, 849, 850, 851, 852, 853, 13, 191, 14, ! 15, 0, 192, 193, 194, 195, 196, 0, 0, 0, ! 0, 197, 0, 0, 0, 0, 0, 198, 0, 0, ! 199, 0, 16, 0, 0, 200, 201, 202, 0, 0, ! 0, 203, 204, 0, 0, 0, 205, 206, 0, 0, ! 0, 207, 0, 208, 854, 0, 0, 0, 209, 855, ! 0, 0, 0, 856, 0, 210, 211, 0, 816, 0, ! 212, 187, 5, 403, 7, 8, 188, 189, 0, 190, ! 9, 10, 11, 0, 0, 5, 6, 7, 8, 0, ! 0, 899, 0, 9, 10, 11, 13, 191, 14, 15, ! 0, 192, 193, 194, 195, 196, 0, 0, 0, 13, ! 197, 14, 0, 0, 0, 0, 198, 0, 0, 199, ! 0, 16, 0, 0, 200, 201, 404, 0, 0, 0, ! 203, 204, 0, 0, 16, 205, 206, 0, 0, 0, ! 207, 0, 208, 22, 825, 82, 0, 209, 24, 188, ! 189, 0, 190, 0, 210, 211, 22, 0, 405, 212, ! 0, 24, 847, 848, 849, 850, 851, 852, 853, 0, ! 191, 0, 15, 0, 192, 193, 194, 195, 196, 0, ! 0, 0, 0, 197, 0, 0, 0, 0, 0, 198, ! 0, 0, 199, 0, 0, 0, 0, 200, 201, 202, ! 0, 0, 0, 203, 204, 0, 0, 0, 205, 206, ! 0, 0, 0, 207, 0, 208, 83, 0, 0, 0, ! 209, 84, 0, 0, 0, 856, 0, 210, 211, 0, ! 816, 0, 212, 187, 5, 6, 7, 8, 188, 189, ! 0, 190, 9, 10, 11, 353, 354, 355, 356, 357, ! 358, 359, 360, 361, 362, 0, 0, 0, 13, 191, ! 14, 15, 0, 192, 193, 194, 195, 196, 0, 0, ! 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, ! 0, 199, 0, 16, 0, 0, 200, 201, 202, 0, ! 0, 0, 203, 204, 0, 0, 0, 205, 206, 0, ! 0, 0, 207, 0, 208, 22, 0, 0, 0, 209, ! 24, 0, 0, 0, 0, 0, 210, 211, 0, 187, ! 5, 212, 7, 8, 188, 189, 0, 190, 9, 10, ! 11, 0, 0, 5, 139, 7, 140, 0, 0, 0, ! 0, 9, 10, 11, 13, 191, 14, 15, 0, 192, ! 193, 194, 195, 196, 0, 0, 0, 13, 197, 14, ! 0, 0, 0, 0, 198, 0, 0, 199, 0, 16, ! 0, 0, 200, 201, 202, 0, 0, 0, 203, 204, ! 0, 0, 16, 205, 206, 0, 0, 0, 207, 0, ! 208, 22, 187, 0, 0, 209, 24, 188, 189, 0, ! 190, 0, 210, 211, 22, 0, 0, 212, 0, 24, ! 0, 0, 0, -261, 0, 0, 0, 0, 191, 0, ! 15, 0, 192, 193, 194, 195, 196, 0, 0, 0, ! 0, 197, 0, 0, 0, 0, 0, 198, 0, 0, ! 199, 0, 0, 0, 0, 200, 201, 202, 0, 0, ! 0, 203, 204, 0, 0, 0, 205, 206, 0, 0, ! 0, 207, 0, 208, 466, 187, 0, 0, 209, 0, ! 188, 189, 0, 190, 0, 210, 211, 0, 0, 5, ! 212, 7, 113, 0, 0, 0, 0, 9, 10, 11, ! 0, 191, 0, 15, 0, 192, 193, 194, 195, 196, ! 0, 0, 0, 13, 197, 14, 0, 0, 0, 0, ! 198, 0, 0, 199, 0, 0, 0, 0, 200, 201, ! 202, 0, 0, 0, 203, 204, 0, 0, 16, 205, ! 206, 0, 187, 0, 207, 0, 208, 188, 189, 0, ! 190, 209, 0, 0, 0, 0, 0, 0, 210, 211, ! 22, 0, 538, 212, 0, 24, 0, 0, 191, 0, ! 15, 0, 192, 193, 194, 195, 196, 0, 0, 0, ! 0, 197, 0, 0, 0, 0, 0, 198, 0, 0, ! 199, 0, 0, 0, 0, 200, 201, 202, 0, 0, ! 0, 203, 204, 0, 0, 0, 205, 206, 0, 187, ! 0, 207, 0, 208, 188, 189, 0, 190, 209, 0, ! 0, 0, 0, 0, 0, 210, 211, 0, 582, 0, ! 212, 0, 0, 0, 0, 191, 0, 15, 0, 192, ! 193, 194, 195, 196, 0, 0, 0, 0, 197, 0, ! 0, 0, 0, 0, 198, 0, 0, 199, 0, 0, ! 0, 0, 200, 201, 202, 0, 0, 0, 203, 204, ! 0, 0, 0, 205, 206, 0, 187, 0, 207, 0, ! 208, 188, 189, 0, 190, 209, 0, 0, 0, 0, ! 0, 0, 210, 211, 0, 0, 671, 212, 0, 0, ! 0, 0, 191, 0, 15, 0, 192, 193, 194, 195, ! 196, 0, 0, 0, 0, 197, 0, 0, 0, 0, ! 0, 198, 0, 0, 199, 0, 0, 0, 0, 200, ! 201, 202, 0, 0, 0, 203, 204, 0, 0, 0, ! 205, 206, 0, 187, 0, 207, 0, 208, 188, 189, ! 0, 190, 209, 0, 0, 0, 0, 942, 0, 210, ! 211, 0, 0, 0, 212, 0, 0, 0, 0, 191, ! 0, 15, 0, 192, 193, 194, 195, 196, 0, 0, ! 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, ! 0, 199, 0, 0, 0, 0, 200, 201, 202, 0, ! 0, 0, 203, 204, 0, 0, 0, 205, 206, 0, ! 187, 0, 207, 0, 208, 188, 189, 0, 190, 209, ! 0, 0, 0, 0, 0, 0, 210, 211, 0, 0, ! 0, 212, 0, 0, 0, 0, 191, 0, 15, 0, ! 192, 193, 194, 195, 196, 0, 0, 0, 0, 197, ! 0, 0, 0, 0, 0, 198, 0, 0, 199, 0, ! 0, 0, 0, 200, 201, 202, 0, 0, 0, 203, ! 204, 0, 0, 0, 342, 206, 0, 187, 0, 207, ! 0, 208, 188, 189, 0, 190, 209, 0, 0, 0, ! 0, 0, 0, 210, 211, 0, 0, 0, 212, 0, ! 0, 0, 0, 191, 0, 15, 0, 192, 193, 194, ! 195, 196, 0, 0, 0, 0, 197, 0, 0, 0, ! 0, 0, 198, 0, 0, 199, 0, 0, 0, 0, ! 200, 201, 202, 0, 0, 0, 203, 204, 0, 0, ! 0, 344, 206, 0, 617, 0, 207, 0, 208, 188, ! 189, 0, 190, 209, 0, 0, 0, 0, 0, 0, ! 210, 211, 0, 0, 0, 212, 0, 0, 0, 0, ! 191, 0, 15, 0, 192, 193, 194, 195, 196, 0, ! 0, 0, 0, 197, 0, 0, 0, 0, 0, 198, ! 0, 0, 199, 0, 0, 0, 0, 200, 201, 202, ! 0, 0, 0, 203, 204, 0, 0, 0, 205, 206, ! 0, 0, 0, 207, 0, 208, 0, 0, 425, 0, ! 209, -23, -23, -23, -23, 0, 0, 210, 211, -23, ! -23, -23, 212, 0, 0, 0, 0, 419, 0, 0, ! -19, -19, -19, -19, 265, -23, 0, -287, -19, -19, ! -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, -287, 0, 265, -19, 0, -287, 0, 0, 0, ! -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! -287, 0, 0, 0, 266, 267, 0, 0, 0, -19, 0, 0, -23, 0, 0, 0, 0, -23, 0, 0, ! 0, -287, 0, 0, 0, -287, -23, 0, 0, 0, ! 0, -19, 0, 0, 0, 0, -19, 0, 0, 0, ! -287, 0, 0, 408, -287, -19, -654, -654, -654, -654, ! 0, 0, 0, 0, -654, -654, -654, 0, 0, 0, ! 0, 0, 408, 0, 0, -487, -487, -487, -487, 0, ! -654, 0, -654, -487, -487, -487, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 0, 0, -487, ! 0, 0, 0, 0, 0, -654, 637, 0, 0, 5, ! 0, 7, 8, 0, 0, 0, 0, 9, 10, 11, ! 0, 0, 0, 0, -487, 0, 0, -654, 0, 0, ! 0, 0, -654, 13, 0, 14, 0, 0, 0, 0, ! 0, -654, 0, 0, 0, 0, -487, 0, 0, 0, ! 0, -487, 0, 290, 291, 0, 292, 293, 16, 0, ! -115, 294, 295, 296, 297, 298, 299, 300, 301, 302, ! 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, ! 22, -611, -611, -611, 0, 24, 0, 0, 637, 638, ! -611, 5, 0, 7, 8, 0, 313, 0, 0, 9, ! 10, 11, 0, 0, 0, 0, 0, 429, 0, 0, ! 5, 0, 7, 8, 0, 13, 0, 14, 9, 10, ! 11, 0, 0, 0, 0, 315, 0, 0, 0, 0, ! 316, 0, 0, 0, 13, 0, 14, 15, 455, 0, ! 16, 649, 0, 650, 5, 6, 7, 8, 0, 0, ! 651, 0, 9, 10, 11, 0, 0, 0, 0, 16, ! 0, 0, 22, -610, -610, -610, 0, 24, 13, 0, ! 0, 638, -610, 0, 0, 0, 0, 0, 0, 0, ! 0, 22, 0, 0, 0, 0, 24, 0, 0, 0, ! 430, -384, 4, 16, -128, 5, 6, 7, 8, 0, ! 0, 0, 0, 9, 10, 11, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 22, 0, 0, 12, 13, ! 24, 14, 15, -549, 4, 0, -128, 5, 6, 7, ! 8, 0, 0, 0, 0, 9, 10, 11, 0, 0, ! 0, 0, 0, 0, 16, 0, 0, 17, 18, -128, ! 0, 13, 0, 14, 0, 0, 0, 0, -128, 0, ! 19, 20, 21, 0, 0, 0, 22, 0, 0, 0, ! 23, 24, 25, 26, 0, 27, 16, 0, 0, 17, ! 18, -128, 4, 0, -128, 5, 6, 7, 8, 0, ! -128, 0, 0, 9, 10, 11, 0, 0, 22, 0, ! 0, 0, 0, 24, 0, 0, 0, 27, 0, 13, ! 649, 14, 0, 5, 6, 7, 8, 0, 0, 651, ! 0, 9, 10, 11, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 16, 0, 0, 13, 0, -128, ! 0, 0, 5, 148, 7, 149, 0, 0, -128, 0, ! 9, 10, 11, 0, 0, 0, 22, 0, 0, 0, ! 0, 24, 16, 0, 0, 27, 13, 0, 14, 0, ! 5, 117, 7, 118, 0, 0, 0, 0, 9, 10, ! 11, 0, 0, 0, 22, 0, 0, 0, 0, 24, ! 0, 16, -549, 0, 13, 0, 5, 144, 7, 145, ! 0, 0, 0, 0, 9, 10, 11, 5, 153, 7, ! 154, 0, 0, 22, 0, 9, 10, 11, 24, 16, ! 13, 0, -263, 0, 0, 0, 0, 0, 0, 0, ! 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, ! 0, 22, 0, 0, 0, 16, 24, 0, 0, 0, ! -256, 0, 429, 0, 0, 5, 16, 7, 8, 0, ! 0, 0, 0, 9, 10, 11, 0, 22, 0, 0, ! 0, 0, 24, 0, 0, 0, -262, 0, 22, 13, ! 0, 14, 15, 24, 0, 0, 0, -264, 0, 0, ! 0, 0, 0, 0, 0, 0, 0, 290, 291, 0, ! 292, 293, 0, 0, 16, 294, 295, 296, 297, 298, ! 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, ! 309, 310, 311, 312, 0, 0, 22, 0, 0, 0, ! 0, 24, 0, 290, 291, 0, 292, 293, 0, 0, ! 313, 294, 295, 296, 297, 298, 299, 300, 301, 302, ! 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, ! 0, 314, 0, 0, 0, 0, 0, 0, 0, 315, ! 0, 0, 0, 0, 316, 0, 469, 290, 291, 0, ! 292, 293, 0, 0, 0, 294, 295, 296, 297, 298, ! 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, ! 309, 310, 311, 312, 0, 315, 0, 0, 0, 0, ! 316, 0, 0, 290, 291, 0, 292, 293, 0, 0, ! 313, 294, 295, 296, 297, 298, 299, 300, 301, 302, ! 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, ! 0, 0, 5, 6, 7, 8, 0, 0, 651, 315, ! 9, 10, 11, 0, 316, 0, 730, 0, 0, 0, ! 5, 103, 7, 104, 0, 0, 13, 0, 9, 10, ! 11, 5, 139, 7, 140, 0, 0, 0, 0, 9, ! 10, 11, 0, 0, 13, 315, 14, 0, 0, 0, ! 316, 16, 0, 0, 0, 13, 0, 14, 0, 0, ! 0, 0, 5, 112, 7, 113, 0, 0, 0, 16, ! 9, 10, 11, 22, 5, 148, 7, 149, 24, 0, ! 16, 0, 9, 10, 11, 0, 13, 0, 14, 0, ! 0, 22, 0, 0, 0, 0, 24, 0, 13, 0, ! 14, 0, 22, 0, 0, 0, 0, 24, 0, 0, ! 0, 16, 0, 0, 0, 0, 5, 6, 7, 8, ! 0, 0, 0, 16, 9, 10, 11, 5, 0, 7, ! 8, 0, 0, 22, 0, 9, 10, 11, 24, 0, ! 13, 0, 14, 0, 0, 22, 5, 6, 7, 8, ! 24, 13, 0, 14, 9, 10, 11, 0, 5, 108, ! 7, 109, 0, 0, 0, 16, 9, 10, 11, 0, ! 13, 0, 0, 0, 0, 0, 16, 0, 0, 0, ! 0, 5, 13, 7, 109, 0, 0, 22, 0, 9, ! 10, 11, 24, 0, 0, 16, 0, 0, 22, 0, ! 0, 0, 0, 24, 0, 13, 0, 16, 0, 0, ! 0, 5, 144, 7, 145, 0, 0, 22, 0, 9, ! 10, 11, 24, 5, 117, 7, 118, 0, 0, 22, ! 16, 9, 10, 11, 24, 13, 0, 0, 0, 0, ! 5, 153, 7, 154, 0, 0, 0, 13, 9, 10, ! 11, 0, 22, 5, 0, 7, 118, 24, 0, 0, ! 16, 9, 10, 11, 13, 0, 0, 0, 0, 0, ! 0, 0, 16, 0, 0, 0, 0, 13, 0, 0, ! 0, 0, 22, 0, 0, 0, 0, 24, 0, 16, ! 0, 0, 0, 0, 22, 0, 0, 0, 0, 24, ! 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, ! 0, 22, 0, 0, 0, 0, 24, 0, 0, 0, ! 0, 0, 0, 0, 22, 0, 346, 347, 348, 24, ! 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, ! 359, 360, 361, 362, 346, 347, 348, 0, 349, 350, ! 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, ! 361, 362, 0, 0, 0, 0, 0, 0, 346, 347, ! 348, 580, 349, 350, 351, 352, 353, 354, 355, 356, ! 357, 358, 359, 360, 361, 362, 0, 0, 0, 822, ! 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, ! 0, 0, 0, 0, 0, 346, 347, 348, 1004, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, ! 360, 361, 362, 346, 347, 348, 1089, 349, 350, 351, ! 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, ! 362, 346, 347, 348, 0, 349, 350, 351, 352, 353, ! 354, 355, 356, 357, 358, 359, 360, 361, 362 }; static const short yycheck[] = { 16, ! 175, 400, 19, 20, 2, 3, 23, 277, 25, 26, ! 418, 422, 391, 420, 22, 284, 24, 24, 272, 426, ! 2, 3, 753, 517, 753, 2, 3, 9, 10, 11, ! 367, 394, 410, 2, 3, 319, 774, 643, 176, 192, ! 193, 521, 59, 60, 61, 2, 3, 517, 867, 202, ! 394, 33, 181, 35, 57, 37, 779, 39, 611, 41, ! 213, 43, 517, 45, 835, 47, 64, 573, 2, 3, ! 779, 780, 225, 76, 77, 78, 790, 753, 95, 87, ! 87, 573, 64, 91, 91, 1, 815, 64, 515, 267, ! 319, 573, 79, 2, 3, 64, 517, 1, 1, 1, ! 573, 1, 1, 573, 107, 44, 335, 64, 10, 96, ! 1, 788, 53, 116, 96, 844, 98, 9, 573, 9, ! 673, 98, 125, 1, 3, 4, 46, 66, 506, 98, ! 64, 134, 2, 3, 687, 46, 867, 690, 3, 535, ! 143, 2, 3, 84, 30, 3, 0, 88, 1, 152, ! 3, 4, 535, 549, 83, 64, 506, 30, 161, 88, ! 46, 46, 933, 83, 98, 27, 549, 170, 844, 85, ! 2, 3, 83, 442, 30, 512, 67, 573, 68, 0, ! 576, 198, 85, 535, 84, 89, 85, 89, 535, 98, ! 573, 83, 745, 576, 64, 573, 75, 549, 83, 64, ! 58, 80, 549, 64, 631, 67, 68, 85, 629, 67, ! 89, 67, 68, 230, 720, 232, 233, 234, 67, 236, ! 237, 573, 75, 205, 576, 403, 573, 80, 720, 576, ! 608, 908, 64, 910, 1118, 1006, 950, 83, 720, 32, ! 83, 620, 88, 472, 797, 88, 799, 720, 67, 53, ! 720, 404, 521, 1072, 604, 605, 606, 607, 261, 3, ! 4, 984, 244, 1147, 246, 720, 248, 53, 250, 523, ! 764, 288, 254, 83, 256, 984, 985, 783, 88, 67, ! 267, 644, 7, 753, 88, 267, 284, 767, 30, 84, ! 272, 783, 3, 4, 764, 272, 313, 46, 753, 643, ! 644, 783, 284, 272, 46, 30, 506, 284, 1046, 764, ! 783, 67, 465, 783, 443, 284, 445, 89, 67, 7, ! 337, 1024, 46, 67, 720, 67, 68, 284, 783, 53, ! 757, 75, 314, 73, 3, 4, 80, 720, 272, 46, ! 89, 1072, 30, 721, 7, 327, 53, 334, 365, 366, ! 284, 89, 3, 4, 336, 584, 67, 89, 3, 4, ! 342, 907, 344, 272, 75, 971, 67, 30, 720, 80, ! 3, 4, 1075, 720, 980, 284, 384, 384, 774, 83, ! 759, 368, 928, 176, 88, 67, 68, 783, 541, 58, ! 67, 774, 800, 730, 802, 948, 67, 867, 67, 68, ! 783, 83, 49, 50, 604, 605, 606, 607, 1137, 1138, ! 680, 80, 867, 46, 284, 699, 403, 1120, 755, 67, ! 407, 403, 774, 284, 75, 58, 1129, 774, 67, 80, ! 75, 783, 3, 450, 67, 80, 783, 67, 89, 992, ! 3, 4, 459, 46, 442, 3, 23, 80, 25, 431, ! 53, 433, 284, 435, 9, 437, 3, 1160, 67, 68, ! 442, 3, 4, 83, 67, 442, 259, 260, 91, 451, ! 699, 56, 57, 442, 83, 27, 84, 84, 30, 9, ! 88, 88, 5, 6, 7, 442, 71, 58, 505, 12, ! 13, 14, 44, 872, 511, 482, 67, 68, 767, 46, ! 58, 838, 67, 68, 733, 88, 514, 514, 442, 67, ! 68, 58, 75, 3, 4, 84, 58, 80, 83, 88, ! 67, 5, 6, 7, 84, 67, 89, 89, 12, 13, ! 14, 99, 84, 442, 83, 517, 88, 83, 80, 521, ! 517, 523, 7, 84, 521, 7, 523, 88, 517, 58, ! 537, 568, 521, 540, 523, 67, 46, 67, 67, 68, ! 517, 84, 970, 974, 521, 976, 535, 84, 58, 84, ! 46, 88, 442, 88, 1127, 1128, 83, 67, 535, 85, ! 549, 442, 84, 517, 84, 83, 88, 521, 88, 523, ! 80, 573, 549, 768, 769, 577, 573, 579, 85, 581, ! 84, 535, 1072, 83, 573, 398, 84, 576, 517, 972, ! 442, 9, 521, 83, 523, 549, 573, 1072, 981, 576, ! 3, 4, 415, 416, 762, 84, 801, 971, 972, 88, ! 884, 205, 76, 77, 78, 46, 980, 981, 32, 573, ! 894, 85, 576, 76, 77, 78, 83, 517, 67, 84, ! 1046, 521, 85, 88, 792, 1034, 517, 71, 84, 1066, ! 521, 1068, 88, 1046, 573, 535, 83, 278, 89, 84, ! 652, 83, 654, 88, 656, 58, 658, 84, 85, 549, ! 697, 76, 77, 78, 9, 517, 76, 77, 78, 521, ! 85, 90, 75, 27, 1046, 85, 30, 80, 266, 1046, ! 84, 269, 44, 573, 75, 273, 576, 84, 604, 605, ! 44, 607, 573, 44, 867, 58, 59, 60, 700, 88, ! 702, 738, 704, 83, 706, 84, 708, 10, 710, 46, ! 712, 88, 714, 67, 68, 83, 753, 83, 720, 90, ! 314, 573, 83, 720, 1143, 67, 68, 83, 1018, 46, ! 84, 720, 89, 327, 88, 753, 1155, 3, 4, 5, ! 6, 7, 336, 720, 67, 68, 753, 83, 342, 83, ! 344, 753, 5, 6, 7, 950, 753, 84, 85, 12, ! 13, 14, 764, 394, 753, 767, 720, 764, 67, 68, ! 767, 83, 439, 440, 71, 764, 753, 30, 767, 67, ! 68, 783, 71, 820, 90, 774, 783, 764, 90, 826, ! 767, 720, 44, 951, 783, 6, 7, 774, 83, 753, ! 83, 12, 13, 14, 67, 68, 783, 844, 85, 75, ! 764, 85, 625, 767, 80, 852, 217, 218, 85, 30, ! 774, 89, 415, 416, 753, 46, 854, 855, 855, 783, ! 720, 84, 1, 421, 422, 764, 85, 844, 767, 720, ! 428, 971, 972, 83, 851, 1040, 84, 83, 83, 867, ! 517, 90, 84, 90, 783, 84, 444, 451, 1053, 27, ! 88, 88, 85, 753, 84, 867, 84, 83, 720, 88, ! 867, 83, 753, 83, 764, 46, 90, 767, 867, 71, ! 83, 3, 884, 764, 774, 89, 767, 884, 85, 46, ! 867, 893, 894, 783, 46, 884, 85, 894, 529, 46, ! 88, 753, 783, 46, 84, 894, 84, 7, 84, 5, ! 6, 7, 764, 867, 84, 767, 12, 13, 14, 46, ! 551, 552, 53, 54, 55, 56, 57, 58, 59, 60, ! 884, 783, 71, 88, 30, 84, 524, 944, 867, 84, ! 894, 67, 67, 5, 6, 7, 16, 71, 85, 762, ! 12, 13, 14, 85, 84, 884, 979, 46, 67, 626, ! 627, 67, 5, 6, 7, 894, 779, 780, 30, 12, ! 13, 14, 639, 640, 6, 7, 67, 867, 17, 792, ! 12, 13, 14, 577, 83, 579, 867, 581, 84, 83, ! 803, 71, 84, 660, 661, 5, 6, 7, 811, 83, ! 83, 67, 12, 13, 14, 84, 84, 1014, 675, 676, ! 325, 326, 643, 644, 88, 867, 84, 90, 83, 1026, ! 30, 84, 84, 9, 84, 1032, 341, 6, 7, 67, ! 83, 346, 347, 12, 13, 14, 351, 352, 353, 354, ! 355, 356, 357, 358, 359, 360, 361, 362, 83, 716, ! 84, 30, 0, 0, 1072, 549, 512, 1046, 646, 5, ! 6, 7, 1069, 1070, 411, 1072, 12, 13, 14, 1046, ! 1072, 549, 1109, 553, 84, 1072, 398, 931, 511, 33, ! 34, 35, 36, 1072, 30, 798, 834, 41, 42, 43, ! 44, 971, 1046, 6, 7, 1072, 570, 764, 442, 12, ! 13, 14, 911, 691, 692, 568, 1076, 695, 507, 914, ! 450, 1118, 5, 6, 7, 1122, 1078, 818, 1072, 12, ! 13, 14, 1126, 37, 38, 39, 40, 646, 1124, 576, ! 661, 45, 46, 47, 48, 636, 576, 30, 951, 769, ! 1147, 1148, 506, 1072, 33, 34, 35, 36, 779, 780, ! 763, 1040, 41, 42, 43, 44, 1046, 629, 971, 972, ! 54, 55, 56, 57, 58, 59, 60, 980, 981, 484, ! 485, 984, 985, 720, 1003, 4, 5, 6, 7, 572, ! 811, 545, 1072, 12, 13, 14, 699, 572, 733, 838, ! 1003, 1072, 472, 860, 861, -1, 560, 561, -1, 28, ! -1, 30, -1, 5, 6, 7, 37, 38, 39, 40, ! 12, 13, 14, -1, 45, 46, 47, 48, -1, 807, ! 1072, -1, -1, -1, 53, -1, 1, -1, 30, 4, ! 5, 6, 7, 900, 901, 10, -1, 12, 13, 14, ! 604, 605, 606, 607, 62, 63, 75, 65, 66, 67, ! 68, 80, 567, 28, -1, 84, -1, 888, 889, 5, ! 6, 7, 5, 6, 7, 580, 12, 13, 14, 12, ! 13, 14, 4, 5, 6, 7, -1, -1, 53, 594, ! 12, 13, 14, -1, -1, -1, -1, 30, -1, -1, ! 244, 245, 246, 247, -1, -1, 28, 885, 30, 887, ! 75, -1, 890, -1, -1, 80, -1, 895, 896, -1, ! 898, -1, -1, -1, 89, -1, -1, 681, -1, 683, ! -1, 53, -1, -1, -1, 913, -1, -1, 916, -1, ! 918, 919, -1, -1, 248, 249, 250, 251, 84, -1, ! 971, 972, 15, 75, 17, 18, 19, 20, 80, 980, ! 981, -1, 84, 984, 985, 244, 245, 246, 247, -1, ! -1, -1, 677, -1, -1, -1, 1, -1, 3, 4, ! -1, -1, 1003, 8, 9, -1, 11, 56, 57, 58, ! 59, 60, 5, 6, 7, -1, 974, -1, 976, 12, ! 13, 14, -1, -1, 29, -1, 31, -1, 33, 34, ! 35, 36, 37, -1, -1, 993, -1, 42, -1, 997, ! 1041, 1042, 1043, 48, 729, -1, 51, 248, 249, 250, ! 251, 56, 57, 58, -1, -1, -1, 62, 63, -1, ! -1, 66, 67, 68, 5, 6, 7, 72, -1, 74, ! 75, 12, 13, 14, 79, 80, -1, -1, -1, -1, ! 85, 86, 87, -1, 89, -1, 91, -1, -1, 1047, ! 1048, 84, 1050, 5, 6, 7, -1, 1055, -1, 1057, ! 12, 13, 14, -1, -1, -1, 1064, 431, 432, 433, ! 434, -1, -1, 798, -1, 1, -1, -1, 4, 5, ! 6, 7, -1, 857, -1, -1, 12, 13, 14, -1, ! -1, 5, 6, 7, -1, -1, -1, 822, 12, 13, ! 14, 27, 28, -1, 30, -1, -1, -1, -1, -1, ! 835, 435, 436, 437, 438, -1, -1, 842, 44, -1, ! -1, -1, 847, -1, -1, -1, -1, 53, -1, -1, ! -1, -1, 431, 432, 433, 434, -1, 911, -1, -1, ! 914, 67, 68, -1, -1, -1, -1, -1, -1, 75, ! -1, 876, -1, -1, 80, -1, -1, -1, 84, -1, ! -1, -1, 88, 89, -1, -1, -1, -1, -1, 4, ! 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, ! -1, -1, 907, 3, -1, 5, -1, 912, 8, 9, ! 915, 11, -1, 28, 435, 436, 437, 438, -1, -1, ! -1, -1, -1, 928, -1, -1, 931, -1, 933, 29, ! -1, 31, -1, 33, 34, 35, 36, 37, 53, -1, ! -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, ! -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, ! 75, -1, 62, 63, 969, 80, -1, 67, 68, 84, ! -1, -1, 72, -1, 74, 1029, -1, -1, -1, 79, ! -1, -1, -1, -1, -1, -1, 86, 87, -1, 994, ! 90, 91, -1, 998, -1, -1, -1, -1, -1, -1, ! -1, 1006, -1, -1, 1009, -1, -1, -1, 652, 653, ! -1, -1, 656, 657, -1, -1, 1, -1, -1, 4, ! 5, 6, 7, 4, 1078, 6, 7, 12, 13, 14, ! -1, 12, 13, 14, 52, 53, 54, 55, 56, 57, ! 58, 59, 60, 28, -1, 30, -1, 28, -1, 30, ! 654, 655, -1, -1, 658, 659, 700, 701, 702, 703, ! 1114, 1115, -1, -1, 708, 709, 710, 711, 53, -1, ! -1, -1, 53, 652, 653, -1, -1, 656, 657, 50, ! 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ! 75, -1, -1, -1, 75, 80, -1, -1, -1, 80, ! 704, 705, 706, 707, 89, -1, 10, -1, 712, 713, ! 714, 715, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 700, 701, 702, 703, -1, -1, -1, -1, 708, ! 709, 710, 711, 654, 655, -1, -1, 658, 659, 43, ! 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, ! 54, 55, 56, 57, 58, 59, 60, -1, -1, 43, ! 44, 45, -1, 47, 48, 49, 50, 51, 52, 53, ! 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, ! -1, -1, -1, 704, 705, 706, 707, -1, -1, -1, ! -1, 712, 713, 714, 715, 1, -1, 3, 4, 5, ! 6, 7, 8, 9, 88, 11, 12, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, ! -1, -1, 48, -1, -1, 51, -1, 53, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, 72, -1, 74, 75, ! -1, -1, -1, 79, 80, -1, -1, -1, 84, 85, ! 86, 87, -1, 89, 1, 91, 3, 4, 5, 6, ! 7, 8, 9, -1, 11, 12, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ! 27, 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, ! -1, 48, -1, -1, 51, -1, 53, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, 72, -1, 74, 75, -1, -1, -1, 79, 80, -1, -1, -1, 84, -1, 86, ! 87, -1, 89, 1, 91, 3, 4, -1, -1, -1, ! 8, 9, -1, 11, -1, -1, -1, 15, -1, 17, ! 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, ! -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, ! 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, 72, -1, 74, 75, -1, -1, ! -1, 79, 80, -1, -1, -1, 84, -1, 86, 87, -1, 89, 1, 91, 3, 4, -1, -1, -1, 8, ! 9, -1, 11, -1, -1, -1, 15, -1, 17, 18, ! 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, 72, -1, 74, 75, -1, -1, -1, ! 79, 80, -1, -1, -1, 84, -1, 86, 87, -1, ! 89, 1, 91, 3, 4, -1, 6, 7, 8, 9, ! -1, 11, 12, 13, 14, 48, 49, 50, 51, 52, ! 53, 54, 55, 56, 57, 58, 59, 60, 28, 29, ! 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, ! -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, ! -1, 51, -1, 53, -1, -1, 56, 57, 58, -1, ! -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, ! -1, -1, 72, -1, 74, 75, -1, -1, -1, 79, ! 80, -1, -1, -1, -1, -1, 86, 87, -1, 89, ! 1, 91, 3, 4, -1, -1, -1, 8, 9, 45, ! 11, 47, 48, 49, 50, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60, -1, -1, -1, 29, -1, ! 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, ! -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, ! 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, ! -1, 62, 63, -1, -1, 66, 67, 68, -1, -1, ! -1, 72, -1, 74, 75, -1, -1, -1, 79, 80, ! -1, -1, -1, -1, 85, 86, 87, 1, 89, 3, ! 91, -1, -1, -1, 8, 9, -1, 11, 49, 50, ! 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ! -1, -1, -1, -1, -1, 29, -1, 31, -1, 33, ! 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, ! 44, -1, -1, -1, 48, -1, -1, 51, -1, -1, ! -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, ! -1, -1, 66, 67, 68, -1, -1, -1, 72, 1, ! 74, 3, -1, -1, -1, 79, 8, 9, -1, 11, ! -1, -1, 86, 87, -1, 89, -1, 91, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, ! 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, ! 62, 63, -1, -1, -1, 67, 68, -1, -1, -1, 72, 1, 74, 3, -1, -1, -1, 79, 8, 9, -1, 11, -1, -1, 86, 87, -1, 89, -1, 91, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, ! -1, -1, 72, -1, 74, -1, -1, -1, -1, 79, ! -1, -1, -1, -1, -1, -1, 86, 87, -1, 89, ! -1, 91, 3, 4, 5, 6, 7, 8, 9, -1, ! 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, ! 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, ! 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, ! -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, ! 51, -1, 53, -1, -1, 56, 57, 58, -1, -1, ! -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, ! -1, 72, -1, 74, 75, -1, -1, -1, 79, 80, ! -1, -1, -1, 84, -1, 86, 87, -1, 89, -1, ! 91, 3, 4, 5, 6, 7, 8, 9, -1, 11, 12, 13, 14, -1, -1, 4, 5, 6, 7, -1, ! -1, 10, -1, 12, 13, 14, 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, 28, 42, 30, -1, -1, -1, -1, 48, -1, -1, 51, -1, 53, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, 53, 67, 68, -1, -1, -1, ! 72, -1, 74, 75, 3, 4, -1, 79, 80, 8, ! 9, -1, 11, -1, 86, 87, 75, -1, 90, 91, ! -1, 80, 21, 22, 23, 24, 25, 26, 27, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, ! -1, -1, -1, 72, -1, 74, 75, -1, -1, -1, ! 79, 80, -1, -1, -1, 84, -1, 86, 87, -1, ! 89, -1, 91, 3, 4, 5, 6, 7, 8, 9, ! -1, 11, 12, 13, 14, 51, 52, 53, 54, 55, ! 56, 57, 58, 59, 60, -1, -1, -1, 28, 29, ! 30, 31, -1, 33, 34, 35, 36, 37, -1, -1, ! -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, ! -1, 51, -1, 53, -1, -1, 56, 57, 58, -1, ! -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, ! -1, -1, 72, -1, 74, 75, -1, -1, -1, 79, ! 80, -1, -1, -1, -1, -1, 86, 87, -1, 3, ! 4, 91, 6, 7, 8, 9, -1, 11, 12, 13, ! 14, -1, -1, 4, 5, 6, 7, -1, -1, -1, ! -1, 12, 13, 14, 28, 29, 30, 31, -1, 33, ! 34, 35, 36, 37, -1, -1, -1, 28, 42, 30, ! -1, -1, -1, -1, 48, -1, -1, 51, -1, 53, ! -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, ! -1, -1, 53, 67, 68, -1, -1, -1, 72, -1, ! 74, 75, 3, -1, -1, 79, 80, 8, 9, -1, ! 11, -1, 86, 87, 75, -1, -1, 91, -1, 80, ! -1, -1, -1, 84, -1, -1, -1, -1, 29, -1, ! 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, ! -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, ! 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, ! -1, 62, 63, -1, -1, -1, 67, 68, -1, -1, ! -1, 72, -1, 74, 75, 3, -1, -1, 79, -1, ! 8, 9, -1, 11, -1, 86, 87, -1, -1, 4, ! 91, 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, ! -1, -1, -1, 28, 42, 30, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, ! 58, -1, -1, -1, 62, 63, -1, -1, 53, 67, 68, -1, 3, -1, 72, -1, 74, 8, 9, -1, ! 11, 79, -1, -1, -1, -1, -1, -1, 86, 87, ! 75, -1, 90, 91, -1, 80, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, 3, -1, 72, -1, 74, 8, 9, -1, 11, 79, -1, ! -1, -1, -1, -1, -1, 86, 87, -1, 89, -1, 91, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, 3, -1, 72, -1, 74, 8, 9, -1, 11, 79, -1, -1, -1, -1, ! -1, -1, 86, 87, -1, -1, 90, 91, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, 3, -1, 72, -1, 74, 8, 9, ! -1, 11, 79, -1, -1, -1, -1, 84, -1, 86, 87, -1, -1, -1, 91, -1, -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, -1, ! 3, -1, 72, -1, 74, 8, 9, -1, 11, 79, ! -1, -1, -1, -1, -1, -1, 86, 87, -1, -1, ! -1, 91, -1, -1, -1, -1, 29, -1, 31, -1, ! 33, 34, 35, 36, 37, -1, -1, -1, -1, 42, ! -1, -1, -1, -1, -1, 48, -1, -1, 51, -1, ! -1, -1, -1, 56, 57, 58, -1, -1, -1, 62, ! 63, -1, -1, -1, 67, 68, -1, 3, -1, 72, ! -1, 74, 8, 9, -1, 11, 79, -1, -1, -1, ! -1, -1, -1, 86, 87, -1, -1, -1, 91, -1, ! -1, -1, -1, 29, -1, 31, -1, 33, 34, 35, ! 36, 37, -1, -1, -1, -1, 42, -1, -1, -1, ! -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, ! 56, 57, 58, -1, -1, -1, 62, 63, -1, -1, ! -1, 67, 68, -1, 3, -1, 72, -1, 74, 8, ! 9, -1, 11, 79, -1, -1, -1, -1, -1, -1, ! 86, 87, -1, -1, -1, 91, -1, -1, -1, -1, ! 29, -1, 31, -1, 33, 34, 35, 36, 37, -1, ! -1, -1, -1, 42, -1, -1, -1, -1, -1, 48, ! -1, -1, 51, -1, -1, -1, -1, 56, 57, 58, ! -1, -1, -1, 62, 63, -1, -1, -1, 67, 68, ! -1, -1, -1, 72, -1, 74, -1, -1, 1, -1, ! 79, 4, 5, 6, 7, -1, -1, 86, 87, 12, ! 13, 14, 91, -1, -1, -1, -1, 1, -1, -1, ! 4, 5, 6, 7, 27, 28, -1, 30, 12, 13, ! 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 44, -1, 27, 28, -1, 30, -1, -1, -1, ! 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 44, -1, -1, -1, 67, 68, -1, -1, -1, 53, -1, -1, 75, -1, -1, -1, -1, 80, -1, -1, ! -1, 84, -1, -1, -1, 88, 89, -1, -1, -1, ! -1, 75, -1, -1, -1, -1, 80, -1, -1, -1, ! 84, -1, -1, 1, 88, 89, 4, 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, -1, -1, -1, ! -1, -1, 1, -1, -1, 4, 5, 6, 7, -1, ! 28, -1, 30, 12, 13, 14, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, ! -1, -1, -1, -1, -1, 53, 1, -1, -1, 4, ! -1, 6, 7, -1, -1, -1, -1, 12, 13, 14, ! -1, -1, -1, -1, 53, -1, -1, 75, -1, -1, ! -1, -1, 80, 28, -1, 30, -1, -1, -1, -1, ! -1, 89, -1, -1, -1, -1, 75, -1, -1, -1, ! -1, 80, -1, 3, 4, -1, 6, 7, 53, -1, ! 89, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! 75, 76, 77, 78, -1, 80, -1, -1, 1, 84, ! 85, 4, -1, 6, 7, -1, 46, -1, -1, 12, ! 13, 14, -1, -1, -1, -1, -1, 1, -1, -1, ! 4, -1, 6, 7, -1, 28, -1, 30, 12, 13, ! 14, -1, -1, -1, -1, 75, -1, -1, -1, -1, ! 80, -1, -1, -1, 28, -1, 30, 31, 88, -1, ! 53, 1, -1, 3, 4, 5, 6, 7, -1, -1, ! 10, -1, 12, 13, 14, -1, -1, -1, -1, 53, ! -1, -1, 75, 76, 77, 78, -1, 80, 28, -1, ! -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, ! -1, 75, -1, -1, -1, -1, 80, -1, -1, -1, ! 84, 85, 1, 53, 3, 4, 5, 6, 7, -1, ! -1, -1, -1, 12, 13, 14, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 75, -1, -1, 27, 28, ! 80, 30, 31, 83, 1, -1, 3, 4, 5, 6, ! 7, -1, -1, -1, -1, 12, 13, 14, -1, -1, ! -1, -1, -1, -1, 53, -1, -1, 56, 57, 58, ! -1, 28, -1, 30, -1, -1, -1, -1, 67, -1, ! 69, 70, 71, -1, -1, -1, 75, -1, -1, -1, ! 79, 80, 81, 82, -1, 84, 53, -1, -1, 56, ! 57, 58, 1, -1, 3, 4, 5, 6, 7, -1, ! 67, -1, -1, 12, 13, 14, -1, -1, 75, -1, ! -1, -1, -1, 80, -1, -1, -1, 84, -1, 28, ! 1, 30, -1, 4, 5, 6, 7, -1, -1, 10, ! -1, 12, 13, 14, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, 53, -1, -1, 28, -1, 58, ! -1, -1, 4, 5, 6, 7, -1, -1, 67, -1, ! 12, 13, 14, -1, -1, -1, 75, -1, -1, -1, ! -1, 80, 53, -1, -1, 84, 28, -1, 30, -1, ! 4, 5, 6, 7, -1, -1, -1, -1, 12, 13, ! 14, -1, -1, -1, 75, -1, -1, -1, -1, 80, ! -1, 53, 83, -1, 28, -1, 4, 5, 6, 7, ! -1, -1, -1, -1, 12, 13, 14, 4, 5, 6, ! 7, -1, -1, 75, -1, 12, 13, 14, 80, 53, ! 28, -1, 84, -1, -1, -1, -1, -1, -1, -1, ! -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, ! -1, 75, -1, -1, -1, 53, 80, -1, -1, -1, ! 84, -1, 1, -1, -1, 4, 53, 6, 7, -1, ! -1, -1, -1, 12, 13, 14, -1, 75, -1, -1, ! -1, -1, 80, -1, -1, -1, 84, -1, 75, 28, ! -1, 30, 31, 80, -1, -1, -1, 84, -1, -1, ! -1, -1, -1, -1, -1, -1, -1, 3, 4, -1, ! 6, 7, -1, -1, 53, 11, 12, 13, 14, 15, ! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, -1, -1, 75, -1, -1, -1, ! -1, 80, -1, 3, 4, -1, 6, 7, -1, -1, ! 46, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, ! -1, -1, -1, -1, 80, -1, 46, 3, 4, -1, ! 6, 7, -1, -1, -1, 11, 12, 13, 14, 15, ! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ! 26, 27, 28, 29, -1, 75, -1, -1, -1, -1, ! 80, -1, -1, 3, 4, -1, 6, 7, -1, -1, ! 46, 11, 12, 13, 14, 15, 16, 17, 18, 19, ! 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ! -1, -1, 4, 5, 6, 7, -1, -1, 10, 75, ! 12, 13, 14, -1, 80, -1, 46, -1, -1, -1, ! 4, 5, 6, 7, -1, -1, 28, -1, 12, 13, ! 14, 4, 5, 6, 7, -1, -1, -1, -1, 12, ! 13, 14, -1, -1, 28, 75, 30, -1, -1, -1, ! 80, 53, -1, -1, -1, 28, -1, 30, -1, -1, ! -1, -1, 4, 5, 6, 7, -1, -1, -1, 53, ! 12, 13, 14, 75, 4, 5, 6, 7, 80, -1, ! 53, -1, 12, 13, 14, -1, 28, -1, 30, -1, ! -1, 75, -1, -1, -1, -1, 80, -1, 28, -1, ! 30, -1, 75, -1, -1, -1, -1, 80, -1, -1, ! -1, 53, -1, -1, -1, -1, 4, 5, 6, 7, ! -1, -1, -1, 53, 12, 13, 14, 4, -1, 6, ! 7, -1, -1, 75, -1, 12, 13, 14, 80, -1, ! 28, -1, 30, -1, -1, 75, 4, 5, 6, 7, ! 80, 28, -1, 30, 12, 13, 14, -1, 4, 5, 6, 7, -1, -1, -1, 53, 12, 13, 14, -1, ! 28, -1, -1, -1, -1, -1, 53, -1, -1, -1, ! -1, 4, 28, 6, 7, -1, -1, 75, -1, 12, ! 13, 14, 80, -1, -1, 53, -1, -1, 75, -1, ! -1, -1, -1, 80, -1, 28, -1, 53, -1, -1, ! -1, 4, 5, 6, 7, -1, -1, 75, -1, 12, ! 13, 14, 80, 4, 5, 6, 7, -1, -1, 75, ! 53, 12, 13, 14, 80, 28, -1, -1, -1, -1, ! 4, 5, 6, 7, -1, -1, -1, 28, 12, 13, ! 14, -1, 75, 4, -1, 6, 7, 80, -1, -1, ! 53, 12, 13, 14, 28, -1, -1, -1, -1, -1, ! -1, -1, 53, -1, -1, -1, -1, 28, -1, -1, ! -1, -1, 75, -1, -1, -1, -1, 80, -1, 53, ! -1, -1, -1, -1, 75, -1, -1, -1, -1, 80, ! -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, ! -1, 75, -1, -1, -1, -1, 80, -1, -1, -1, ! -1, -1, -1, -1, 75, -1, 43, 44, 45, 80, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ! 57, 58, 59, 60, 43, 44, 45, -1, 47, 48, ! 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, ! 59, 60, -1, -1, -1, -1, -1, -1, 43, 44, ! 45, 88, 47, 48, 49, 50, 51, 52, 53, 54, ! 55, 56, 57, 58, 59, 60, -1, -1, -1, 88, ! -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, ! -1, -1, -1, -1, -1, 43, 44, 45, 83, 47, ! 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, ! 58, 59, 60, 43, 44, 45, 46, 47, 48, 49, ! 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, ! 60, 43, 44, 45, -1, 47, 48, 49, 50, 51, ! 52, 53, 54, 55, 56, 57, 58, 59, 60 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" *************** case 59: *** 2898,2992 **** #line 510 "objc-parse.y" { skip_evaluation++; ; break;} ! case 61: ! #line 516 "objc-parse.y" ! { yyval.ttype = c_cast_expr (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 63: ! #line 522 "objc-parse.y" ! { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 64: ! #line 524 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 65: ! #line 526 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 66: ! #line 528 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 67: ! #line 530 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 68: ! #line 532 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 69: ! #line 534 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 70: ! #line 536 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 71: ! #line 538 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 72: ! #line 540 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 73: ! #line 542 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 74: ! #line 544 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 75: ! #line 546 "objc-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; break;} ! case 76: ! #line 549 "objc-parse.y" { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 77: ! #line 552 "objc-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; break;} ! case 78: ! #line 555 "objc-parse.y" { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 79: ! #line 558 "objc-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; break;} ! case 80: ! #line 561 "objc-parse.y" { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) - (yyvsp[-4].ttype == boolean_false_node)); ; break;} ! case 81: ! #line 564 "objc-parse.y" { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 82: ! #line 567 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids omitting the middle term of a ?: expression"); /* Make sure first operand is calculated only once. */ --- 2922,3020 ---- #line 510 "objc-parse.y" { skip_evaluation++; ; break;} ! case 60: ! #line 514 "objc-parse.y" ! { skip_evaluation++; ; break;} ! case 62: ! #line 520 "objc-parse.y" ! { yyval.ttype = c_cast_expr (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 64: ! #line 526 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 65: ! #line 528 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 66: ! #line 530 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 67: ! #line 532 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 68: ! #line 534 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 69: ! #line 536 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 70: ! #line 538 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 71: ! #line 540 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 72: ! #line 542 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 73: ! #line 544 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 74: ! #line 546 "objc-parse.y" { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 75: ! #line 548 "objc-parse.y" ! { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ; ! break;} ! case 76: ! #line 550 "objc-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; break;} ! case 77: ! #line 553 "objc-parse.y" { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node; yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 78: ! #line 556 "objc-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; break;} ! case 79: ! #line 559 "objc-parse.y" { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node; yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 80: ! #line 562 "objc-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ; break;} ! case 81: ! #line 565 "objc-parse.y" { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node) - (yyvsp[-4].ttype == boolean_false_node)); ; break;} ! case 82: ! #line 568 "objc-parse.y" { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node; yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 83: ! #line 571 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids omitting the middle term of a ?: expression"); /* Make sure first operand is calculated only once. */ *************** case 82: *** 2994,3006 **** yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; break;} ! case 83: ! #line 574 "objc-parse.y" { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 84: ! #line 577 "objc-parse.y" { char class; yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); --- 3022,3034 ---- yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype)); skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ; break;} ! case 84: ! #line 578 "objc-parse.y" { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node; yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} ! case 85: ! #line 581 "objc-parse.y" { char class; yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); *************** case 84: *** 3008,3015 **** C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} ! case 85: ! #line 584 "objc-parse.y" { char class; yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); /* This inhibits warnings in truthvalue_conversion. */ --- 3036,3043 ---- C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} ! case 86: ! #line 588 "objc-parse.y" { char class; yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); /* This inhibits warnings in truthvalue_conversion. */ *************** case 85: *** 3018,3047 **** C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} ! case 86: ! #line 595 "objc-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.ttype = build_external_ref (yyvsp[0].ttype, yychar == '('); ; break;} ! case 88: ! #line 602 "objc-parse.y" { yyval.ttype = combine_strings (yyvsp[0].ttype); ; break;} ! case 89: ! #line 604 "objc-parse.y" { yyval.ttype = fname_decl (C_RID_CODE (yyval.ttype), yyval.ttype); ; break;} ! case 90: ! #line 606 "objc-parse.y" { start_init (NULL_TREE, NULL, 0); yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); really_start_incremental_init (yyvsp[-2].ttype); ; break;} ! case 91: ! #line 610 "objc-parse.y" { tree constructor = pop_init_level (0); tree type = yyvsp[-5].ttype; finish_init (); --- 3046,3075 ---- C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} ! case 87: ! #line 599 "objc-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.ttype = build_external_ref (yyvsp[0].ttype, yychar == '('); ; break;} ! case 89: ! #line 606 "objc-parse.y" { yyval.ttype = combine_strings (yyvsp[0].ttype); ; break;} ! case 90: ! #line 608 "objc-parse.y" { yyval.ttype = fname_decl (C_RID_CODE (yyval.ttype), yyval.ttype); ; break;} ! case 91: ! #line 610 "objc-parse.y" { start_init (NULL_TREE, NULL, 0); yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype); really_start_incremental_init (yyvsp[-2].ttype); ; break;} ! case 92: ! #line 614 "objc-parse.y" { tree constructor = pop_init_level (0); tree type = yyvsp[-5].ttype; finish_init (); *************** case 91: *** 3051,3069 **** yyval.ttype = build_compound_literal (type, constructor); ; break;} ! case 92: ! #line 619 "objc-parse.y" { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); if (IS_EXPR_CODE_CLASS (class)) C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 93: ! #line 624 "objc-parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 94: ! #line 626 "objc-parse.y" { tree saved_last_tree; if (pedantic) --- 3079,3097 ---- yyval.ttype = build_compound_literal (type, constructor); ; break;} ! case 93: ! #line 623 "objc-parse.y" { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)); if (IS_EXPR_CODE_CLASS (class)) C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 94: ! #line 628 "objc-parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 95: ! #line 630 "objc-parse.y" { tree saved_last_tree; if (pedantic) *************** case 94: *** 3080,3087 **** TREE_SIDE_EFFECTS (yyval.ttype) = 1; ; break;} ! case 95: ! #line 642 "objc-parse.y" { pop_label_level (); last_tree = COMPOUND_BODY (yyvsp[-2].ttype); --- 3108,3115 ---- TREE_SIDE_EFFECTS (yyval.ttype) = 1; ; break;} ! case 96: ! #line 646 "objc-parse.y" { pop_label_level (); last_tree = COMPOUND_BODY (yyvsp[-2].ttype); *************** case 95: *** 3089,3104 **** yyval.ttype = error_mark_node; ; break;} ! case 96: ! #line 649 "objc-parse.y" { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 97: ! #line 651 "objc-parse.y" { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ; break;} ! case 98: ! #line 654 "objc-parse.y" { tree c; --- 3117,3132 ---- yyval.ttype = error_mark_node; ; break;} ! case 97: ! #line 653 "objc-parse.y" { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 98: ! #line 655 "objc-parse.y" { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ; break;} ! case 99: ! #line 658 "objc-parse.y" { tree c; *************** case 98: *** 3109,3116 **** yyval.ttype = integer_zerop (c) ? yyvsp[-1].ttype : yyvsp[-3].ttype; ; break;} ! case 99: ! #line 664 "objc-parse.y" { tree e1, e2; --- 3137,3144 ---- yyval.ttype = integer_zerop (c) ? yyvsp[-1].ttype : yyvsp[-3].ttype; ; break;} ! case 100: ! #line 668 "objc-parse.y" { tree e1, e2; *************** case 99: *** 3121,3132 **** ? build_int_2 (1, 0) : build_int_2 (0, 0); ; break;} ! case 100: ! #line 674 "objc-parse.y" { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 101: ! #line 676 "objc-parse.y" { if (!is_public (yyvsp[-2].ttype, yyvsp[0].ttype)) yyval.ttype = error_mark_node; --- 3149,3160 ---- ? build_int_2 (1, 0) : build_int_2 (0, 0); ; break;} ! case 101: ! #line 678 "objc-parse.y" { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 102: ! #line 680 "objc-parse.y" { if (!is_public (yyvsp[-2].ttype, yyvsp[0].ttype)) yyval.ttype = error_mark_node; *************** case 101: *** 3134,3141 **** yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 102: ! #line 683 "objc-parse.y" { tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); --- 3162,3169 ---- yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 103: ! #line 687 "objc-parse.y" { tree expr = build_indirect_ref (yyvsp[-2].ttype, "->"); *************** case 102: *** 3145,3558 **** yyval.ttype = build_component_ref (expr, yyvsp[0].ttype); ; break;} ! case 103: ! #line 692 "objc-parse.y" { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; break;} ! case 104: ! #line 694 "objc-parse.y" { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; break;} ! case 105: ! #line 696 "objc-parse.y" { yyval.ttype = build_message_expr (yyvsp[0].ttype); ; break;} ! case 106: ! #line 698 "objc-parse.y" { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ; break;} ! case 107: ! #line 700 "objc-parse.y" { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ; break;} ! case 108: ! #line 702 "objc-parse.y" { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ; break;} ! case 109: ! #line 704 "objc-parse.y" { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ; break;} ! case 111: ! #line 711 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 112: ! #line 720 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 113: ! #line 722 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 116: ! #line 730 "objc-parse.y" { c_mark_varargs (); if (pedantic) pedwarn ("ISO C does not permit use of `varargs.h'"); ; break;} ! case 117: ! #line 740 "objc-parse.y" { ; break;} - case 122: - #line 756 "objc-parse.y" - { POP_DECLSPEC_STACK; ; - break;} case 123: ! #line 758 "objc-parse.y" { POP_DECLSPEC_STACK; ; break;} case 124: ! #line 760 "objc-parse.y" { shadow_tag_warned (yyvsp[-1].ttype, 1); pedwarn ("empty declaration"); ; break;} ! case 125: ! #line 763 "objc-parse.y" { pedwarn ("empty declaration"); ; break;} ! case 126: ! #line 772 "objc-parse.y" { ; break;} ! case 127: ! #line 780 "objc-parse.y" { pending_xref_error (); PUSH_DECLSPEC_STACK; split_specs_attrs (yyvsp[0].ttype, ¤t_declspecs, &prefix_attributes); all_prefix_attributes = prefix_attributes; ; break;} - case 128: - #line 791 "objc-parse.y" - { all_prefix_attributes = chainon (yyvsp[0].ttype, prefix_attributes); ; - break;} case 129: ! #line 796 "objc-parse.y" ! { POP_DECLSPEC_STACK; ; break;} case 130: ! #line 798 "objc-parse.y" { POP_DECLSPEC_STACK; ; break;} case 131: ! #line 800 "objc-parse.y" { POP_DECLSPEC_STACK; ; break;} case 132: ! #line 802 "objc-parse.y" { POP_DECLSPEC_STACK; ; break;} case 133: ! #line 804 "objc-parse.y" ! { shadow_tag (yyvsp[-1].ttype); ; break;} case 134: ! #line 806 "objc-parse.y" ! { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; break;} case 135: ! #line 863 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 136: ! #line 866 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 137: ! #line 869 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 138: ! #line 875 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 139: ! #line 881 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 140: ! #line 884 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 141: ! #line 890 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); TREE_STATIC (yyval.ttype) = 0; ; break;} ! case 142: ! #line 893 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} - case 143: - #line 899 "objc-parse.y" - { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); - TREE_STATIC (yyval.ttype) = 1; ; - break;} case 144: ! #line 902 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 145: ! #line 905 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 146: ! #line 908 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 147: ! #line 911 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 148: ! #line 914 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 149: ! #line 917 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 150: ! #line 923 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 1; ; break;} case 151: ! #line 926 "objc-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 152: ! #line 929 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 153: ! #line 932 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 154: ! #line 935 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 155: ! #line 938 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 156: ! #line 944 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 157: ! #line 947 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 158: ! #line 950 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 159: ! #line 953 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 160: ! #line 956 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 161: ! #line 959 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 162: ! #line 965 "objc-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; ! break;} ! case 163: ! #line 968 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 164: ! #line 971 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 165: ! #line 974 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 166: ! #line 977 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 167: ! #line 983 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 0; ; break;} ! case 168: ! #line 986 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 169: ! #line 989 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 170: ! #line 992 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 171: ! #line 998 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 172: ! #line 1004 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 173: ! #line 1010 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 174: ! #line 1019 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 175: ! #line 1025 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 176: ! #line 1028 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 177: ! #line 1031 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 178: ! #line 1037 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 179: ! #line 1043 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 180: ! #line 1049 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 181: ! #line 1058 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} - case 182: - #line 1064 "objc-parse.y" - { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); - TREE_STATIC (yyval.ttype) = 1; ; - break;} case 183: ! #line 1067 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 184: ! #line 1070 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 185: ! #line 1073 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 186: ! #line 1076 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 187: ! #line 1079 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 188: ! #line 1082 "objc-parse.y" ! { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) ! warning ("`%s' is not at beginning of declaration", ! IDENTIFIER_POINTER (yyvsp[0].ttype)); ! yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 189: ! #line 1088 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3173,3578 ---- yyval.ttype = build_component_ref (expr, yyvsp[0].ttype); ; break;} ! case 104: ! #line 696 "objc-parse.y" { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ; break;} ! case 105: ! #line 698 "objc-parse.y" { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ; break;} ! case 106: ! #line 700 "objc-parse.y" { yyval.ttype = build_message_expr (yyvsp[0].ttype); ; break;} ! case 107: ! #line 702 "objc-parse.y" { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ; break;} ! case 108: ! #line 704 "objc-parse.y" { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ; break;} ! case 109: ! #line 706 "objc-parse.y" { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ; break;} ! case 110: ! #line 708 "objc-parse.y" { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ; break;} ! case 112: ! #line 715 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 113: ! #line 724 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 114: ! #line 726 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 117: ! #line 734 "objc-parse.y" { c_mark_varargs (); if (pedantic) pedwarn ("ISO C does not permit use of `varargs.h'"); ; break;} ! case 118: ! #line 744 "objc-parse.y" { ; break;} case 123: ! #line 760 "objc-parse.y" { POP_DECLSPEC_STACK; ; break;} case 124: ! #line 762 "objc-parse.y" ! { POP_DECLSPEC_STACK; ; ! break;} ! case 125: ! #line 764 "objc-parse.y" { shadow_tag_warned (yyvsp[-1].ttype, 1); pedwarn ("empty declaration"); ; break;} ! case 126: ! #line 767 "objc-parse.y" { pedwarn ("empty declaration"); ; break;} ! case 127: ! #line 776 "objc-parse.y" { ; break;} ! case 128: ! #line 784 "objc-parse.y" { pending_xref_error (); PUSH_DECLSPEC_STACK; split_specs_attrs (yyvsp[0].ttype, ¤t_declspecs, &prefix_attributes); all_prefix_attributes = prefix_attributes; ; break;} case 129: ! #line 795 "objc-parse.y" ! { all_prefix_attributes = chainon (yyvsp[0].ttype, prefix_attributes); ; break;} case 130: ! #line 800 "objc-parse.y" { POP_DECLSPEC_STACK; ; break;} case 131: ! #line 802 "objc-parse.y" { POP_DECLSPEC_STACK; ; break;} case 132: ! #line 804 "objc-parse.y" { POP_DECLSPEC_STACK; ; break;} case 133: ! #line 806 "objc-parse.y" ! { POP_DECLSPEC_STACK; ; break;} case 134: ! #line 808 "objc-parse.y" ! { shadow_tag (yyvsp[-1].ttype); ; break;} case 135: ! #line 810 "objc-parse.y" ! { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; break;} case 136: ! #line 867 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 1; ; break;} case 137: ! #line 870 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 138: ! #line 873 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; ! break;} ! case 139: ! #line 879 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 140: ! #line 885 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 141: ! #line 888 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 142: ! #line 894 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); TREE_STATIC (yyval.ttype) = 0; ; break;} ! case 143: ! #line 897 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 144: ! #line 903 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 1; ; break;} case 145: ! #line 906 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 146: ! #line 909 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 147: ! #line 912 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 148: ! #line 915 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 149: ! #line 918 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 150: ! #line 921 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 151: ! #line 927 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 152: ! #line 930 "objc-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 153: ! #line 933 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 154: ! #line 936 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 155: ! #line 939 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 156: ! #line 942 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 157: ! #line 948 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 158: ! #line 951 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 159: ! #line 954 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 160: ! #line 957 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 161: ! #line 960 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 162: ! #line 963 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} + case 163: + #line 969 "objc-parse.y" + { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); + TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; + break;} case 164: ! #line 972 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 165: ! #line 975 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 166: ! #line 978 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 167: ! #line 981 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; ! break;} ! case 168: ! #line 987 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); TREE_STATIC (yyval.ttype) = 0; ; break;} ! case 169: ! #line 990 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 170: ! #line 993 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 171: ! #line 996 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 172: ! #line 1002 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 173: ! #line 1008 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 174: ! #line 1014 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 175: ! #line 1023 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 176: ! #line 1029 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 177: ! #line 1032 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 178: ! #line 1035 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 179: ! #line 1041 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 180: ! #line 1047 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 181: ! #line 1053 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} ! case 182: ! #line 1062 "objc-parse.y" { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 183: ! #line 1068 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 184: ! #line 1071 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 185: ! #line 1074 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 186: ! #line 1077 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 187: ! #line 1080 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 188: ! #line 1083 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 189: ! #line 1086 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 189: *** 3560,3566 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 190: ! #line 1094 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3580,3586 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 190: ! #line 1092 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 190: *** 3568,3574 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 191: ! #line 1100 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3588,3594 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 191: ! #line 1098 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 191: *** 3576,3645 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 192: ! #line 1109 "objc-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 193: ! #line 1112 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 194: ! #line 1115 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 195: ! #line 1118 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 196: ! #line 1121 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 197: ! #line 1127 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 198: ! #line 1130 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 199: ! #line 1133 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 200: ! #line 1136 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 201: ! #line 1139 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 202: ! #line 1142 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 203: ! #line 1145 "objc-parse.y" ! { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) ! warning ("`%s' is not at beginning of declaration", ! IDENTIFIER_POINTER (yyvsp[0].ttype)); ! yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 204: ! #line 1151 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3596,3665 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 192: ! #line 1104 "objc-parse.y" ! { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) ! warning ("`%s' is not at beginning of declaration", ! IDENTIFIER_POINTER (yyvsp[0].ttype)); ! yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 193: ! #line 1113 "objc-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 194: ! #line 1116 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 195: ! #line 1119 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 196: ! #line 1122 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 197: ! #line 1125 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 198: ! #line 1131 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 199: ! #line 1134 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 200: ! #line 1137 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 201: ! #line 1140 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 202: ! #line 1143 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 203: ! #line 1146 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 204: ! #line 1149 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 204: *** 3647,3653 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 205: ! #line 1157 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3667,3673 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 205: ! #line 1155 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 205: *** 3655,3661 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 206: ! #line 1163 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); --- 3675,3681 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 206: ! #line 1161 "objc-parse.y" { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); *************** case 206: *** 3663,3874 **** TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 207: ! #line 1172 "objc-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 208: ! #line 1175 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 209: ! #line 1178 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 210: ! #line 1181 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 211: ! #line 1184 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 268: ! #line 1272 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 269: ! #line 1274 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 273: ! #line 1309 "objc-parse.y" { OBJC_NEED_RAW_IDENTIFIER (1); ; break;} ! case 276: ! #line 1319 "objc-parse.y" { /* For a typedef name, record the meaning, not the name. In case of `foo foo, bar;'. */ yyval.ttype = lookup_name (yyvsp[0].ttype); ; break;} - case 277: - #line 1323 "objc-parse.y" - { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} case 278: ! #line 1325 "objc-parse.y" ! { yyval.ttype = get_object_reference (yyvsp[0].ttype); ; break;} case 279: ! #line 1330 "objc-parse.y" { yyval.ttype = get_object_reference (yyvsp[0].ttype); ; break;} case 280: ! #line 1332 "objc-parse.y" ! { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; break;} case 281: ! #line 1334 "objc-parse.y" ! { yyval.ttype = groktypename (yyvsp[-1].ttype); ; break;} ! case 286: ! #line 1351 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 287: ! #line 1353 "objc-parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 288: ! #line 1360 "objc-parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, chainon (yyvsp[-1].ttype, all_prefix_attributes)); start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; break;} ! case 289: ! #line 1365 "objc-parse.y" { finish_init (); finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 290: ! #line 1368 "objc-parse.y" { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, chainon (yyvsp[0].ttype, all_prefix_attributes)); finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 291: ! #line 1376 "objc-parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, chainon (yyvsp[-1].ttype, all_prefix_attributes)); start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; break;} ! case 292: ! #line 1381 "objc-parse.y" { finish_init (); finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 293: ! #line 1384 "objc-parse.y" { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, chainon (yyvsp[0].ttype, all_prefix_attributes)); finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} - case 294: - #line 1392 "objc-parse.y" - { yyval.ttype = NULL_TREE; ; - break;} case 295: ! #line 1394 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 296: ! #line 1399 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 297: ! #line 1401 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 298: ! #line 1406 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype; ; break;} case 299: ! #line 1411 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 300: ! #line 1413 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 301: ! #line 1418 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 302: ! #line 1420 "objc-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} case 303: ! #line 1422 "objc-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} case 304: ! #line 1424 "objc-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; break;} case 305: ! #line 1426 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 311: ! #line 1444 "objc-parse.y" { really_start_incremental_init (NULL_TREE); ; break;} ! case 312: ! #line 1446 "objc-parse.y" { yyval.ttype = pop_init_level (0); ; break;} ! case 313: ! #line 1448 "objc-parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 314: ! #line 1454 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids empty initializer braces"); ; break;} ! case 318: ! #line 1468 "objc-parse.y" { if (pedantic && ! flag_isoc99) pedwarn ("ISO C89 forbids specifying subobject to initialize"); ; break;} ! case 319: ! #line 1471 "objc-parse.y" { if (pedantic) pedwarn ("obsolete use of designated initializer without `='"); ; break;} ! case 320: ! #line 1474 "objc-parse.y" { set_init_label (yyvsp[-1].ttype); if (pedantic) pedwarn ("obsolete use of designated initializer with `:'"); ; break;} ! case 323: ! #line 1483 "objc-parse.y" ! { push_init_level (0); ; break;} case 324: ! #line 1485 "objc-parse.y" ! { process_init_element (pop_init_level (0)); ; break;} case 325: ! #line 1487 "objc-parse.y" { process_init_element (yyvsp[0].ttype); ; break;} ! case 329: ! #line 1498 "objc-parse.y" { set_init_label (yyvsp[0].ttype); ; break;} ! case 330: ! #line 1506 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids nested functions"); --- 3683,3906 ---- TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 207: ! #line 1167 "objc-parse.y" ! { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype)) ! warning ("`%s' is not at beginning of declaration", ! IDENTIFIER_POINTER (yyvsp[0].ttype)); ! yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 208: ! #line 1176 "objc-parse.y" ! { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 209: ! #line 1179 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 210: ! #line 1182 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 211: ! #line 1185 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} ! case 212: ! #line 1188 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ! TREE_STATIC (yyval.ttype) = 1; ; break;} case 269: ! #line 1276 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; ! break;} ! case 270: ! #line 1278 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 274: ! #line 1313 "objc-parse.y" { OBJC_NEED_RAW_IDENTIFIER (1); ; break;} ! case 277: ! #line 1323 "objc-parse.y" { /* For a typedef name, record the meaning, not the name. In case of `foo foo, bar;'. */ yyval.ttype = lookup_name (yyvsp[0].ttype); ; break;} case 278: ! #line 1327 "objc-parse.y" ! { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 279: ! #line 1329 "objc-parse.y" { yyval.ttype = get_object_reference (yyvsp[0].ttype); ; break;} case 280: ! #line 1334 "objc-parse.y" ! { yyval.ttype = get_object_reference (yyvsp[0].ttype); ; break;} case 281: ! #line 1336 "objc-parse.y" ! { skip_evaluation--; yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ; break;} ! case 282: ! #line 1338 "objc-parse.y" ! { skip_evaluation--; yyval.ttype = groktypename (yyvsp[-1].ttype); ; break;} case 287: ! #line 1355 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; ! break;} ! case 288: ! #line 1357 "objc-parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 289: ! #line 1364 "objc-parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, chainon (yyvsp[-1].ttype, all_prefix_attributes)); start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; break;} ! case 290: ! #line 1369 "objc-parse.y" { finish_init (); finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 291: ! #line 1372 "objc-parse.y" { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, chainon (yyvsp[0].ttype, all_prefix_attributes)); finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} ! case 292: ! #line 1380 "objc-parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, chainon (yyvsp[-1].ttype, all_prefix_attributes)); start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ; break;} ! case 293: ! #line 1385 "objc-parse.y" { finish_init (); finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} ! case 294: ! #line 1388 "objc-parse.y" { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0, chainon (yyvsp[0].ttype, all_prefix_attributes)); finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ; break;} case 295: ! #line 1396 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 296: ! #line 1398 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 297: ! #line 1403 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 298: ! #line 1405 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 299: ! #line 1410 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype; ; break;} case 300: ! #line 1415 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 301: ! #line 1417 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 302: ! #line 1422 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 303: ! #line 1424 "objc-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} case 304: ! #line 1426 "objc-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} case 305: ! #line 1428 "objc-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; ! break;} ! case 306: ! #line 1430 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 312: ! #line 1448 "objc-parse.y" { really_start_incremental_init (NULL_TREE); ; break;} ! case 313: ! #line 1450 "objc-parse.y" { yyval.ttype = pop_init_level (0); ; break;} ! case 314: ! #line 1452 "objc-parse.y" { yyval.ttype = error_mark_node; ; break;} ! case 315: ! #line 1458 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids empty initializer braces"); ; break;} ! case 319: ! #line 1472 "objc-parse.y" { if (pedantic && ! flag_isoc99) pedwarn ("ISO C89 forbids specifying subobject to initialize"); ; break;} ! case 320: ! #line 1475 "objc-parse.y" { if (pedantic) pedwarn ("obsolete use of designated initializer without `='"); ; break;} ! case 321: ! #line 1478 "objc-parse.y" { set_init_label (yyvsp[-1].ttype); if (pedantic) pedwarn ("obsolete use of designated initializer with `:'"); ; break;} ! case 322: ! #line 1482 "objc-parse.y" ! {; break;} case 324: ! #line 1488 "objc-parse.y" ! { push_init_level (0); ; break;} case 325: ! #line 1490 "objc-parse.y" ! { process_init_element (pop_init_level (0)); ; ! break;} ! case 326: ! #line 1492 "objc-parse.y" { process_init_element (yyvsp[0].ttype); ; break;} ! case 330: ! #line 1503 "objc-parse.y" { set_init_label (yyvsp[0].ttype); ; break;} ! case 331: ! #line 1511 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids nested functions"); *************** case 330: *** 3881,3892 **** } ; break;} ! case 331: ! #line 1518 "objc-parse.y" { store_parm_decls (); ; break;} ! case 332: ! #line 1526 "objc-parse.y" { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = yyvsp[-2].filename; DECL_SOURCE_LINE (decl) = yyvsp[-1].lineno; --- 3913,3924 ---- } ; break;} ! case 332: ! #line 1523 "objc-parse.y" { store_parm_decls (); ; break;} ! case 333: ! #line 1531 "objc-parse.y" { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = yyvsp[-2].filename; DECL_SOURCE_LINE (decl) = yyvsp[-1].lineno; *************** case 332: *** 3894,3901 **** pop_function_context (); add_decl_stmt (decl); ; break;} ! case 333: ! #line 1536 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids nested functions"); --- 3926,3933 ---- pop_function_context (); add_decl_stmt (decl); ; break;} ! case 334: ! #line 1541 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids nested functions"); *************** case 333: *** 3908,3919 **** } ; break;} ! case 334: ! #line 1548 "objc-parse.y" { store_parm_decls (); ; break;} ! case 335: ! #line 1556 "objc-parse.y" { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = yyvsp[-2].filename; DECL_SOURCE_LINE (decl) = yyvsp[-1].lineno; --- 3940,3951 ---- } ; break;} ! case 335: ! #line 1553 "objc-parse.y" { store_parm_decls (); ; break;} ! case 336: ! #line 1561 "objc-parse.y" { tree decl = current_function_decl; DECL_SOURCE_FILE (decl) = yyvsp[-2].filename; DECL_SOURCE_LINE (decl) = yyvsp[-1].lineno; *************** case 335: *** 3921,4103 **** pop_function_context (); add_decl_stmt (decl); ; break;} - case 338: - #line 1576 "objc-parse.y" - { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; - break;} case 339: ! #line 1578 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 340: #line 1583 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} case 341: ! #line 1585 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 346: ! #line 1601 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 347: #line 1606 "objc-parse.y" - { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; - break;} - case 350: - #line 1613 "objc-parse.y" { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 351: #line 1618 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} case 352: ! #line 1620 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 353: ! #line 1622 "objc-parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 354: ! #line 1624 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 355: ! #line 1632 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 356: #line 1637 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 357: ! #line 1639 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 358: ! #line 1641 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} ! case 360: ! #line 1647 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 361: ! #line 1649 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 362: #line 1654 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 363: ! #line 1656 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 364: #line 1661 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 365: ! #line 1663 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 366: ! #line 1674 "objc-parse.y" { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); /* Start scope of tag before parsing components. */ ; break;} ! case 367: ! #line 1678 "objc-parse.y" { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 368: ! #line 1680 "objc-parse.y" { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); ; break;} ! case 369: ! #line 1684 "objc-parse.y" { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; break;} ! case 370: ! #line 1686 "objc-parse.y" { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 371: ! #line 1688 "objc-parse.y" { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); ; break;} ! case 372: ! #line 1692 "objc-parse.y" { yyval.ttype = start_enum (yyvsp[-1].ttype); ; break;} ! case 373: ! #line 1694 "objc-parse.y" { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); ; break;} ! case 374: ! #line 1697 "objc-parse.y" { yyval.ttype = start_enum (NULL_TREE); ; break;} ! case 375: ! #line 1699 "objc-parse.y" { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 376: ! #line 1705 "objc-parse.y" { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; break;} ! case 377: ! #line 1707 "objc-parse.y" { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; break;} ! case 378: ! #line 1709 "objc-parse.y" { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); /* In ISO C, enumerated types can be referred to only if already defined. */ if (pedantic && !COMPLETE_TYPE_P (yyval.ttype)) pedwarn ("ISO C forbids forward references to `enum' types"); ; break;} ! case 382: ! #line 1724 "objc-parse.y" { if (pedantic && ! flag_isoc99) pedwarn ("comma at end of enumerator list"); ; break;} ! case 383: ! #line 1730 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 384: ! #line 1732 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); pedwarn ("no semicolon at end of struct or union"); ; break;} ! case 385: ! #line 1737 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 386: ! #line 1739 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 387: ! #line 1741 "objc-parse.y" { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); ; break;} ! case 388: ! #line 1745 "objc-parse.y" { tree interface = lookup_interface (yyvsp[-1].ttype); --- 3953,4135 ---- pop_function_context (); add_decl_stmt (decl); ; break;} case 339: ! #line 1581 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 340: #line 1583 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 341: ! #line 1588 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} ! case 342: ! #line 1590 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 347: #line 1606 "objc-parse.y" { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} + case 348: + #line 1611 "objc-parse.y" + { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; + break;} case 351: #line 1618 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 352: ! #line 1623 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} case 353: ! #line 1625 "objc-parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 354: ! #line 1627 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 355: ! #line 1629 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 356: #line 1637 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 357: ! #line 1642 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 358: ! #line 1644 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 359: ! #line 1646 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 0); ; break;} case 361: ! #line 1652 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 362: #line 1654 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 363: ! #line 1659 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 364: #line 1661 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; break;} case 365: ! #line 1666 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 366: ! #line 1668 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ; ! break;} ! case 367: ! #line 1679 "objc-parse.y" { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype); /* Start scope of tag before parsing components. */ ; break;} ! case 368: ! #line 1683 "objc-parse.y" { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 369: ! #line 1685 "objc-parse.y" { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE), yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); ; break;} ! case 370: ! #line 1689 "objc-parse.y" { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ; break;} ! case 371: ! #line 1691 "objc-parse.y" { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 372: ! #line 1693 "objc-parse.y" { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE), yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype)); ; break;} ! case 373: ! #line 1697 "objc-parse.y" { yyval.ttype = start_enum (yyvsp[-1].ttype); ; break;} ! case 374: ! #line 1699 "objc-parse.y" { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); ; break;} ! case 375: ! #line 1702 "objc-parse.y" { yyval.ttype = start_enum (NULL_TREE); ; break;} ! case 376: ! #line 1704 "objc-parse.y" { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ; break;} ! case 377: ! #line 1710 "objc-parse.y" { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ; break;} ! case 378: ! #line 1712 "objc-parse.y" { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ; break;} ! case 379: ! #line 1714 "objc-parse.y" { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); /* In ISO C, enumerated types can be referred to only if already defined. */ if (pedantic && !COMPLETE_TYPE_P (yyval.ttype)) pedwarn ("ISO C forbids forward references to `enum' types"); ; break;} ! case 383: ! #line 1729 "objc-parse.y" { if (pedantic && ! flag_isoc99) pedwarn ("comma at end of enumerator list"); ; break;} ! case 384: ! #line 1735 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 385: ! #line 1737 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); pedwarn ("no semicolon at end of struct or union"); ; break;} ! case 386: ! #line 1742 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 387: ! #line 1744 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 388: ! #line 1746 "objc-parse.y" { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); ; break;} ! case 389: ! #line 1750 "objc-parse.y" { tree interface = lookup_interface (yyvsp[-1].ttype); *************** case 388: *** 4111,4123 **** } ; break;} ! case 389: ! #line 1761 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 390: ! #line 1764 "objc-parse.y" { /* Support for unnamed structs or unions as members of structs or unions (which is [a] useful and [b] supports --- 4143,4155 ---- } ; break;} ! case 390: ! #line 1766 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 391: ! #line 1769 "objc-parse.y" { /* Support for unnamed structs or unions as members of structs or unions (which is [a] useful and [b] supports *************** case 390: *** 4128,4329 **** yyval.ttype = grokfield(yyvsp[-1].filename, yyvsp[0].lineno, NULL, current_declspecs, NULL_TREE); POP_DECLSPEC_STACK; ; break;} ! case 391: ! #line 1774 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 392: ! #line 1777 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids member declarations with no members"); shadow_tag(yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} ! case 393: ! #line 1782 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 394: ! #line 1784 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; break;} ! case 396: ! #line 1791 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-3].ttype, yyvsp[0].ttype); ; ! break;} ! case 398: ! #line 1797 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} case 399: #line 1802 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 400: ! #line 1806 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 401: ! #line 1809 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 402: ! #line 1815 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 403: ! #line 1819 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 404: ! #line 1822 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 406: ! #line 1834 "objc-parse.y" { if (yyvsp[-2].ttype == error_mark_node) yyval.ttype = yyvsp[-2].ttype; else yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; break;} - case 407: - #line 1839 "objc-parse.y" - { yyval.ttype = error_mark_node; ; - break;} case 408: ! #line 1845 "objc-parse.y" ! { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; break;} case 409: ! #line 1847 "objc-parse.y" ! { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 410: #line 1852 "objc-parse.y" ! { pending_xref_error (); ! yyval.ttype = yyvsp[0].ttype; ; break;} case 411: ! #line 1855 "objc-parse.y" ! { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 412: #line 1860 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 414: ! #line 1866 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, NULL_TREE), all_prefix_attributes); ; break;} ! case 415: ! #line 1870 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[0].ttype), all_prefix_attributes); ; break;} ! case 416: ! #line 1874 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); ; break;} - case 420: - #line 1887 "objc-parse.y" - { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} case 421: #line 1892 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 422: ! #line 1894 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 423: #line 1899 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 424: ! #line 1901 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 425: ! #line 1903 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 1); ; break;} case 426: ! #line 1905 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 427: ! #line 1907 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 428: ! #line 1914 "objc-parse.y" ! { yyval.ttype = build_array_declarator (yyvsp[-1].ttype, NULL_TREE, 0, 0); ; break;} case 429: ! #line 1916 "objc-parse.y" ! { yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, 0); ; break;} case 430: ! #line 1918 "objc-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, NULL_TREE, 0, 0); ; break;} case 431: ! #line 1920 "objc-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, yyvsp[-1].ttype, 0, 0); ; break;} case 432: ! #line 1922 "objc-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, NULL_TREE, 0, 1); ; break;} case 433: ! #line 1924 "objc-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, yyvsp[-2].ttype, 0, 1); ; break;} case 434: ! #line 1926 "objc-parse.y" { if (C_RID_CODE (yyvsp[-2].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, NULL_TREE, 1, 0); ; break;} ! case 435: ! #line 1930 "objc-parse.y" { if (C_RID_CODE (yyvsp[-3].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-2].ttype, 1, 0); ; break;} ! case 436: ! #line 1934 "objc-parse.y" { if (C_RID_CODE (yyvsp[-2].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-3].ttype, 1, 0); ; break;} ! case 439: ! #line 1949 "objc-parse.y" { pedwarn ("deprecated use of label at end of compound statement"); ; break;} ! case 447: ! #line 1966 "objc-parse.y" { if (pedantic && !flag_isoc99) pedwarn ("ISO C89 forbids mixed declarations and code"); ; break;} ! case 462: ! #line 1996 "objc-parse.y" { pushlevel (0); clear_last_expr (); add_scope_stmt (/*begin_p=*/1, /*partial_p=*/0); --- 4160,4361 ---- yyval.ttype = grokfield(yyvsp[-1].filename, yyvsp[0].lineno, NULL, current_declspecs, NULL_TREE); POP_DECLSPEC_STACK; ; break;} ! case 392: ! #line 1779 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 393: ! #line 1782 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids member declarations with no members"); shadow_tag(yyvsp[0].ttype); yyval.ttype = NULL_TREE; ; break;} ! case 394: ! #line 1787 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 395: ! #line 1789 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ; break;} ! case 397: ! #line 1796 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-3].ttype, yyvsp[0].ttype); ; break;} case 399: #line 1802 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-3].ttype, yyvsp[0].ttype); ; + break;} + case 400: + #line 1807 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 401: ! #line 1811 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 402: ! #line 1814 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 403: ! #line 1820 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 404: ! #line 1824 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 405: ! #line 1827 "objc-parse.y" { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype); decl_attributes (&yyval.ttype, chainon (yyvsp[0].ttype, all_prefix_attributes), 0); ; break;} ! case 407: ! #line 1839 "objc-parse.y" { if (yyvsp[-2].ttype == error_mark_node) yyval.ttype = yyvsp[-2].ttype; else yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ; break;} case 408: ! #line 1844 "objc-parse.y" ! { yyval.ttype = error_mark_node; ; break;} case 409: ! #line 1850 "objc-parse.y" ! { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ; break;} case 410: #line 1852 "objc-parse.y" ! { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 411: ! #line 1857 "objc-parse.y" ! { pending_xref_error (); ! yyval.ttype = yyvsp[0].ttype; ; break;} case 412: #line 1860 "objc-parse.y" + { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} + case 413: + #line 1865 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 415: ! #line 1871 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, NULL_TREE), all_prefix_attributes); ; break;} ! case 416: ! #line 1875 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[0].ttype), all_prefix_attributes); ; break;} ! case 417: ! #line 1879 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); ; break;} case 421: #line 1892 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 422: ! #line 1897 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 423: #line 1899 "objc-parse.y" ! { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 424: ! #line 1904 "objc-parse.y" ! { yyval.ttype = yyvsp[-2].ttype ? tree_cons (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE) : yyvsp[-1].ttype; ; break;} case 425: ! #line 1906 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} case 426: ! #line 1908 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, yyvsp[-1].ttype, 1); ; break;} case 427: ! #line 1910 "objc-parse.y" ! { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 428: ! #line 1912 "objc-parse.y" ! { yyval.ttype = set_array_declarator_type (yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 429: ! #line 1919 "objc-parse.y" ! { yyval.ttype = build_array_declarator (yyvsp[-1].ttype, NULL_TREE, 0, 0); ; break;} case 430: ! #line 1921 "objc-parse.y" ! { yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, 0); ; break;} case 431: ! #line 1923 "objc-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, NULL_TREE, 0, 0); ; break;} case 432: ! #line 1925 "objc-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, yyvsp[-1].ttype, 0, 0); ; break;} case 433: ! #line 1927 "objc-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, NULL_TREE, 0, 1); ; break;} case 434: ! #line 1929 "objc-parse.y" ! { yyval.ttype = build_array_declarator (NULL_TREE, yyvsp[-2].ttype, 0, 1); ; ! break;} ! case 435: ! #line 1931 "objc-parse.y" { if (C_RID_CODE (yyvsp[-2].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, NULL_TREE, 1, 0); ; break;} ! case 436: ! #line 1935 "objc-parse.y" { if (C_RID_CODE (yyvsp[-3].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-2].ttype, 1, 0); ; break;} ! case 437: ! #line 1939 "objc-parse.y" { if (C_RID_CODE (yyvsp[-2].ttype) != RID_STATIC) error ("storage class specifier in array declarator"); yyval.ttype = build_array_declarator (yyvsp[-1].ttype, yyvsp[-3].ttype, 1, 0); ; break;} ! case 440: ! #line 1954 "objc-parse.y" { pedwarn ("deprecated use of label at end of compound statement"); ; break;} ! case 448: ! #line 1971 "objc-parse.y" { if (pedantic && !flag_isoc99) pedwarn ("ISO C89 forbids mixed declarations and code"); ; break;} ! case 463: ! #line 2001 "objc-parse.y" { pushlevel (0); clear_last_expr (); add_scope_stmt (/*begin_p=*/1, /*partial_p=*/0); *************** case 462: *** 4331,4342 **** add_objc_decls (); ; break;} - case 463: - #line 2005 "objc-parse.y" - { yyval.ttype = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); ; - break;} case 464: #line 2010 "objc-parse.y" { if (flag_isoc99) { yyval.ttype = c_begin_compound_stmt (); --- 4363,4374 ---- add_objc_decls (); ; break;} case 464: #line 2010 "objc-parse.y" + { yyval.ttype = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); ; + break;} + case 465: + #line 2015 "objc-parse.y" { if (flag_isoc99) { yyval.ttype = c_begin_compound_stmt (); *************** case 464: *** 4350,4357 **** yyval.ttype = NULL_TREE; ; break;} ! case 465: ! #line 2028 "objc-parse.y" { if (flag_isoc99) { tree scope_stmt = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); --- 4382,4389 ---- yyval.ttype = NULL_TREE; ; break;} ! case 466: ! #line 2033 "objc-parse.y" { if (flag_isoc99) { tree scope_stmt = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); *************** case 465: *** 4363,4375 **** else yyval.ttype = NULL_TREE; ; break;} ! case 467: ! #line 2045 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids label declarations"); ; break;} ! case 470: ! #line 2056 "objc-parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { --- 4395,4407 ---- else yyval.ttype = NULL_TREE; ; break;} ! case 468: ! #line 2050 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids label declarations"); ; break;} ! case 471: ! #line 2061 "objc-parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { *************** case 470: *** 4379,4406 **** } ; break;} ! case 471: ! #line 2070 "objc-parse.y" {; break;} ! case 473: ! #line 2074 "objc-parse.y" { compstmt_count++; yyval.ttype = c_begin_compound_stmt (); ; break;} ! case 474: ! #line 2079 "objc-parse.y" { yyval.ttype = convert (void_type_node, integer_zero_node); ; break;} ! case 475: ! #line 2081 "objc-parse.y" { yyval.ttype = poplevel (kept_level_p (), 1, 0); SCOPE_STMT_BLOCK (TREE_PURPOSE (yyvsp[0].ttype)) = SCOPE_STMT_BLOCK (TREE_VALUE (yyvsp[0].ttype)) = yyval.ttype; ; break;} ! case 478: ! #line 2094 "objc-parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); --- 4411,4438 ---- } ; break;} ! case 472: ! #line 2075 "objc-parse.y" {; break;} ! case 474: ! #line 2079 "objc-parse.y" { compstmt_count++; yyval.ttype = c_begin_compound_stmt (); ; break;} ! case 475: ! #line 2084 "objc-parse.y" { yyval.ttype = convert (void_type_node, integer_zero_node); ; break;} ! case 476: ! #line 2086 "objc-parse.y" { yyval.ttype = poplevel (kept_level_p (), 1, 0); SCOPE_STMT_BLOCK (TREE_PURPOSE (yyvsp[0].ttype)) = SCOPE_STMT_BLOCK (TREE_VALUE (yyvsp[0].ttype)) = yyval.ttype; ; break;} ! case 479: ! #line 2099 "objc-parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); *************** case 478: *** 4416,4445 **** yyval.ttype = add_stmt (build_stmt (COMPOUND_STMT, last_tree)); ; break;} ! case 479: ! #line 2111 "objc-parse.y" { RECHAIN_STMTS (yyvsp[-1].ttype, COMPOUND_BODY (yyvsp[-1].ttype)); last_expr_type = NULL_TREE; yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 480: ! #line 2119 "objc-parse.y" { c_finish_then (); ; break;} ! case 482: ! #line 2136 "objc-parse.y" { yyval.ttype = c_begin_if_stmt (); ; break;} ! case 483: ! #line 2138 "objc-parse.y" { c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), compstmt_count,yyvsp[-3].ttype); yyval.itype = stmt_count; if_stmt_file = yyvsp[-7].filename; if_stmt_line = yyvsp[-6].lineno; ; break;} ! case 484: ! #line 2150 "objc-parse.y" { stmt_count++; compstmt_count++; yyval.ttype --- 4448,4477 ---- yyval.ttype = add_stmt (build_stmt (COMPOUND_STMT, last_tree)); ; break;} ! case 480: ! #line 2116 "objc-parse.y" { RECHAIN_STMTS (yyvsp[-1].ttype, COMPOUND_BODY (yyvsp[-1].ttype)); last_expr_type = NULL_TREE; yyval.ttype = yyvsp[-1].ttype; ; break;} ! case 481: ! #line 2124 "objc-parse.y" { c_finish_then (); ; break;} ! case 483: ! #line 2141 "objc-parse.y" { yyval.ttype = c_begin_if_stmt (); ; break;} ! case 484: ! #line 2143 "objc-parse.y" { c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), compstmt_count,yyvsp[-3].ttype); yyval.itype = stmt_count; if_stmt_file = yyvsp[-7].filename; if_stmt_line = yyvsp[-6].lineno; ; break;} ! case 485: ! #line 2155 "objc-parse.y" { stmt_count++; compstmt_count++; yyval.ttype *************** case 484: *** 4451,4480 **** RTL-generation time. */ DO_COND (yyval.ttype) = error_mark_node; ; break;} ! case 485: ! #line 2161 "objc-parse.y" { yyval.ttype = yyvsp[-2].ttype; RECHAIN_STMTS (yyval.ttype, DO_BODY (yyval.ttype)); ; break;} ! case 486: ! #line 2169 "objc-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.filename = input_filename; ; break;} ! case 487: ! #line 2175 "objc-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.lineno = lineno; ; break;} ! case 490: ! #line 2188 "objc-parse.y" { if (flag_isoc99) RECHAIN_STMTS (yyvsp[-2].ttype, COMPOUND_BODY (yyvsp[-2].ttype)); ; break;} ! case 491: ! #line 2194 "objc-parse.y" { if (yyvsp[0].ttype) { STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].lineno; --- 4483,4512 ---- RTL-generation time. */ DO_COND (yyval.ttype) = error_mark_node; ; break;} ! case 486: ! #line 2166 "objc-parse.y" { yyval.ttype = yyvsp[-2].ttype; RECHAIN_STMTS (yyval.ttype, DO_BODY (yyval.ttype)); ; break;} ! case 487: ! #line 2174 "objc-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.filename = input_filename; ; break;} ! case 488: ! #line 2180 "objc-parse.y" { if (yychar == YYEMPTY) yychar = YYLEX; yyval.lineno = lineno; ; break;} ! case 491: ! #line 2193 "objc-parse.y" { if (flag_isoc99) RECHAIN_STMTS (yyvsp[-2].ttype, COMPOUND_BODY (yyvsp[-2].ttype)); ; break;} ! case 492: ! #line 2199 "objc-parse.y" { if (yyvsp[0].ttype) { STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].lineno; *************** case 491: *** 4486,4513 **** } ; break;} ! case 492: ! #line 2208 "objc-parse.y" { if (yyvsp[0].ttype) { STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].lineno; } ; break;} ! case 493: ! #line 2217 "objc-parse.y" { c_expand_start_else (); yyvsp[-1].itype = stmt_count; ; break;} ! case 494: ! #line 2220 "objc-parse.y" { c_finish_else (); c_expand_end_cond (); if (extra_warnings && stmt_count == yyvsp[-3].itype) warning ("empty body in an else-statement"); ; break;} ! case 495: ! #line 2225 "objc-parse.y" { c_expand_end_cond (); /* This warning is here instead of in simple_if, because we do not want a warning if an empty if is followed by an --- 4518,4545 ---- } ; break;} ! case 493: ! #line 2213 "objc-parse.y" { if (yyvsp[0].ttype) { STMT_LINENO (yyvsp[0].ttype) = yyvsp[-1].lineno; } ; break;} ! case 494: ! #line 2222 "objc-parse.y" { c_expand_start_else (); yyvsp[-1].itype = stmt_count; ; break;} ! case 495: ! #line 2225 "objc-parse.y" { c_finish_else (); c_expand_end_cond (); if (extra_warnings && stmt_count == yyvsp[-3].itype) warning ("empty body in an else-statement"); ; break;} ! case 496: ! #line 2230 "objc-parse.y" { c_expand_end_cond (); /* This warning is here instead of in simple_if, because we do not want a warning if an empty if is followed by an *************** case 495: *** 4517,4648 **** warning_with_file_and_line (if_stmt_file, if_stmt_line, "empty body in an if-statement"); ; break;} ! case 496: ! #line 2237 "objc-parse.y" { c_expand_end_cond (); ; break;} ! case 497: ! #line 2247 "objc-parse.y" { stmt_count++; yyval.ttype = c_begin_while_stmt (); ; break;} ! case 498: ! #line 2250 "objc-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (yyvsp[-1].ttype); c_finish_while_stmt_cond (truthvalue_conversion (yyvsp[-1].ttype), yyvsp[-3].ttype); yyval.ttype = add_stmt (yyvsp[-3].ttype); ; break;} ! case 499: ! #line 2255 "objc-parse.y" { RECHAIN_STMTS (yyvsp[-1].ttype, WHILE_BODY (yyvsp[-1].ttype)); ; break;} ! case 500: ! #line 2258 "objc-parse.y" { DO_COND (yyvsp[-4].ttype) = truthvalue_conversion (yyvsp[-2].ttype); ; break;} ! case 501: ! #line 2260 "objc-parse.y" { ; break;} ! case 502: ! #line 2262 "objc-parse.y" { yyval.ttype = build_stmt (FOR_STMT, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE); add_stmt (yyval.ttype); ; break;} ! case 503: ! #line 2266 "objc-parse.y" { stmt_count++; RECHAIN_STMTS (yyvsp[-2].ttype, FOR_INIT_STMT (yyvsp[-2].ttype)); ; break;} ! case 504: ! #line 2269 "objc-parse.y" { if (yyvsp[-1].ttype) FOR_COND (yyvsp[-5].ttype) = truthvalue_conversion (yyvsp[-1].ttype); ; break;} ! case 505: ! #line 2272 "objc-parse.y" { FOR_EXPR (yyvsp[-8].ttype) = yyvsp[-1].ttype; ; break;} ! case 506: ! #line 2274 "objc-parse.y" { RECHAIN_STMTS (yyvsp[-10].ttype, FOR_BODY (yyvsp[-10].ttype)); ; break;} ! case 507: ! #line 2276 "objc-parse.y" { stmt_count++; yyval.ttype = c_start_case (yyvsp[-1].ttype); ; break;} - case 508: - #line 2279 "objc-parse.y" - { c_finish_case (); ; - break;} case 509: #line 2284 "objc-parse.y" ! { add_stmt (build_stmt (EXPR_STMT, yyvsp[-1].ttype)); ; break;} case 510: ! #line 2286 "objc-parse.y" ! { check_for_loop_decls (); ; break;} case 511: ! #line 2292 "objc-parse.y" ! { stmt_count++; yyval.ttype = yyvsp[0].ttype; ; break;} case 512: ! #line 2294 "objc-parse.y" { stmt_count++; yyval.ttype = c_expand_expr_stmt (yyvsp[-1].ttype); ; break;} ! case 513: ! #line 2297 "objc-parse.y" { if (flag_isoc99) RECHAIN_STMTS (yyvsp[-2].ttype, COMPOUND_BODY (yyvsp[-2].ttype)); yyval.ttype = NULL_TREE; ; break;} - case 514: - #line 2301 "objc-parse.y" - { stmt_count++; - yyval.ttype = add_stmt (build_break_stmt ()); ; - break;} case 515: ! #line 2304 "objc-parse.y" { stmt_count++; ! yyval.ttype = add_stmt (build_continue_stmt ()); ; break;} case 516: ! #line 2307 "objc-parse.y" { stmt_count++; ! yyval.ttype = c_expand_return (NULL_TREE); ; break;} case 517: ! #line 2310 "objc-parse.y" { stmt_count++; ! yyval.ttype = c_expand_return (yyvsp[-1].ttype); ; break;} case 518: ! #line 2313 "objc-parse.y" { stmt_count++; ! yyval.ttype = simple_asm_stmt (yyvsp[-2].ttype); ; break;} case 519: ! #line 2317 "objc-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} case 520: #line 2322 "objc-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 521: #line 2327 "objc-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} case 522: ! #line 2330 "objc-parse.y" { tree decl; stmt_count++; decl = lookup_label (yyvsp[-1].ttype); --- 4549,4680 ---- warning_with_file_and_line (if_stmt_file, if_stmt_line, "empty body in an if-statement"); ; break;} ! case 497: ! #line 2242 "objc-parse.y" { c_expand_end_cond (); ; break;} ! case 498: ! #line 2252 "objc-parse.y" { stmt_count++; yyval.ttype = c_begin_while_stmt (); ; break;} ! case 499: ! #line 2255 "objc-parse.y" { yyvsp[-1].ttype = truthvalue_conversion (yyvsp[-1].ttype); c_finish_while_stmt_cond (truthvalue_conversion (yyvsp[-1].ttype), yyvsp[-3].ttype); yyval.ttype = add_stmt (yyvsp[-3].ttype); ; break;} ! case 500: ! #line 2260 "objc-parse.y" { RECHAIN_STMTS (yyvsp[-1].ttype, WHILE_BODY (yyvsp[-1].ttype)); ; break;} ! case 501: ! #line 2263 "objc-parse.y" { DO_COND (yyvsp[-4].ttype) = truthvalue_conversion (yyvsp[-2].ttype); ; break;} ! case 502: ! #line 2265 "objc-parse.y" { ; break;} ! case 503: ! #line 2267 "objc-parse.y" { yyval.ttype = build_stmt (FOR_STMT, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE); add_stmt (yyval.ttype); ; break;} ! case 504: ! #line 2271 "objc-parse.y" { stmt_count++; RECHAIN_STMTS (yyvsp[-2].ttype, FOR_INIT_STMT (yyvsp[-2].ttype)); ; break;} ! case 505: ! #line 2274 "objc-parse.y" { if (yyvsp[-1].ttype) FOR_COND (yyvsp[-5].ttype) = truthvalue_conversion (yyvsp[-1].ttype); ; break;} ! case 506: ! #line 2277 "objc-parse.y" { FOR_EXPR (yyvsp[-8].ttype) = yyvsp[-1].ttype; ; break;} ! case 507: ! #line 2279 "objc-parse.y" { RECHAIN_STMTS (yyvsp[-10].ttype, FOR_BODY (yyvsp[-10].ttype)); ; break;} ! case 508: ! #line 2281 "objc-parse.y" { stmt_count++; yyval.ttype = c_start_case (yyvsp[-1].ttype); ; break;} case 509: #line 2284 "objc-parse.y" ! { c_finish_case (); ; break;} case 510: ! #line 2289 "objc-parse.y" ! { add_stmt (build_stmt (EXPR_STMT, yyvsp[-1].ttype)); ; break;} case 511: ! #line 2291 "objc-parse.y" ! { check_for_loop_decls (); ; break;} case 512: ! #line 2297 "objc-parse.y" ! { stmt_count++; yyval.ttype = yyvsp[0].ttype; ; ! break;} ! case 513: ! #line 2299 "objc-parse.y" { stmt_count++; yyval.ttype = c_expand_expr_stmt (yyvsp[-1].ttype); ; break;} ! case 514: ! #line 2302 "objc-parse.y" { if (flag_isoc99) RECHAIN_STMTS (yyvsp[-2].ttype, COMPOUND_BODY (yyvsp[-2].ttype)); yyval.ttype = NULL_TREE; ; break;} case 515: ! #line 2306 "objc-parse.y" { stmt_count++; ! yyval.ttype = add_stmt (build_break_stmt ()); ; break;} case 516: ! #line 2309 "objc-parse.y" { stmt_count++; ! yyval.ttype = add_stmt (build_continue_stmt ()); ; break;} case 517: ! #line 2312 "objc-parse.y" { stmt_count++; ! yyval.ttype = c_expand_return (NULL_TREE); ; break;} case 518: ! #line 2315 "objc-parse.y" { stmt_count++; ! yyval.ttype = c_expand_return (yyvsp[-1].ttype); ; break;} case 519: ! #line 2318 "objc-parse.y" { stmt_count++; ! yyval.ttype = simple_asm_stmt (yyvsp[-2].ttype); ; break;} case 520: #line 2322 "objc-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} case 521: #line 2327 "objc-parse.y" { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 522: ! #line 2332 "objc-parse.y" ! { stmt_count++; ! yyval.ttype = build_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; ! break;} ! case 523: ! #line 2335 "objc-parse.y" { tree decl; stmt_count++; decl = lookup_label (yyvsp[-1].ttype); *************** case 522: *** 4655,4689 **** yyval.ttype = NULL_TREE; ; break;} ! case 523: ! #line 2342 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids `goto *expr;'"); stmt_count++; yyvsp[-1].ttype = convert (ptr_type_node, yyvsp[-1].ttype); yyval.ttype = add_stmt (build_stmt (GOTO_STMT, yyvsp[-1].ttype)); ; break;} ! case 524: ! #line 2348 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 525: ! #line 2356 "objc-parse.y" { stmt_count++; yyval.ttype = do_case (yyvsp[-1].ttype, NULL_TREE); ; break;} ! case 526: ! #line 2359 "objc-parse.y" { stmt_count++; yyval.ttype = do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 527: ! #line 2362 "objc-parse.y" { stmt_count++; yyval.ttype = do_case (NULL_TREE, NULL_TREE); ; break;} ! case 528: ! #line 2365 "objc-parse.y" { tree label = define_label (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-4].ttype); stmt_count++; if (label) --- 4687,4721 ---- yyval.ttype = NULL_TREE; ; break;} ! case 524: ! #line 2347 "objc-parse.y" { if (pedantic) pedwarn ("ISO C forbids `goto *expr;'"); stmt_count++; yyvsp[-1].ttype = convert (ptr_type_node, yyvsp[-1].ttype); yyval.ttype = add_stmt (build_stmt (GOTO_STMT, yyvsp[-1].ttype)); ; break;} ! case 525: ! #line 2353 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 526: ! #line 2361 "objc-parse.y" { stmt_count++; yyval.ttype = do_case (yyvsp[-1].ttype, NULL_TREE); ; break;} ! case 527: ! #line 2364 "objc-parse.y" { stmt_count++; yyval.ttype = do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} ! case 528: ! #line 2367 "objc-parse.y" { stmt_count++; yyval.ttype = do_case (NULL_TREE, NULL_TREE); ; break;} ! case 529: ! #line 2370 "objc-parse.y" { tree label = define_label (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-4].ttype); stmt_count++; if (label) *************** case 528: *** 4695,4751 **** yyval.ttype = NULL_TREE; ; break;} ! case 529: ! #line 2381 "objc-parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} - case 530: - #line 2384 "objc-parse.y" - { emit_line_note (input_filename, lineno); ; - break;} case 531: #line 2389 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} ! case 533: ! #line 2396 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 536: ! #line 2403 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 537: #line 2408 "objc-parse.y" ! { yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 538: ! #line 2410 "objc-parse.y" ! { yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 539: #line 2415 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; break;} case 540: ! #line 2417 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; break;} case 541: ! #line 2427 "objc-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (0); ; break;} ! case 542: ! #line 2431 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} ! case 544: ! #line 2439 "objc-parse.y" { tree parm; if (pedantic) pedwarn ("ISO C forbids forward parameter declarations"); --- 4727,4783 ---- yyval.ttype = NULL_TREE; ; break;} ! case 530: ! #line 2386 "objc-parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} case 531: #line 2389 "objc-parse.y" ! { emit_line_note (input_filename, lineno); ; break;} ! case 532: ! #line 2394 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 534: ! #line 2401 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 537: #line 2408 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 538: ! #line 2413 "objc-parse.y" ! { yyval.ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 539: #line 2415 "objc-parse.y" ! { yyval.ttype = build_tree_list (build_tree_list (yyvsp[-5].ttype, yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 540: ! #line 2420 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; break;} case 541: ! #line 2422 "objc-parse.y" ! { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; ! break;} ! case 542: ! #line 2432 "objc-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (0); ; break;} ! case 543: ! #line 2436 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} ! case 545: ! #line 2444 "objc-parse.y" { tree parm; if (pedantic) pedwarn ("ISO C forbids forward parameter declarations"); *************** case 544: *** 4754,4778 **** TREE_ASM_WRITTEN (parm) = 1; clear_parm_order (); ; break;} ! case 545: ! #line 2447 "objc-parse.y" { /* Dummy action so attributes are in known place on parser stack. */ ; break;} ! case 546: ! #line 2450 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 547: ! #line 2452 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; break;} ! case 548: ! #line 2458 "objc-parse.y" { yyval.ttype = get_parm_info (0); ; break;} ! case 549: ! #line 2460 "objc-parse.y" { yyval.ttype = get_parm_info (0); /* Gcc used to allow this as an extension. However, it does not work for all targets, and thus has been disabled. --- 4786,4810 ---- TREE_ASM_WRITTEN (parm) = 1; clear_parm_order (); ; break;} ! case 546: ! #line 2452 "objc-parse.y" { /* Dummy action so attributes are in known place on parser stack. */ ; break;} ! case 547: ! #line 2455 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 548: ! #line 2457 "objc-parse.y" { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; break;} ! case 549: ! #line 2463 "objc-parse.y" { yyval.ttype = get_parm_info (0); ; break;} ! case 550: ! #line 2465 "objc-parse.y" { yyval.ttype = get_parm_info (0); /* Gcc used to allow this as an extension. However, it does not work for all targets, and thus has been disabled. *************** case 549: *** 4783,4885 **** error ("ISO C requires a named argument before `...'"); ; break;} - case 550: - #line 2470 "objc-parse.y" - { yyval.ttype = get_parm_info (1); ; - break;} case 551: ! #line 2472 "objc-parse.y" ! { yyval.ttype = get_parm_info (0); ; break;} case 552: #line 2477 "objc-parse.y" ! { push_parm_decl (yyvsp[0].ttype); ; break;} case 553: ! #line 2479 "objc-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 554: ! #line 2486 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 555: ! #line 2491 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 556: ! #line 2496 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 557: ! #line 2499 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 558: ! #line 2505 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 559: ! #line 2513 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 560: ! #line 2518 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 561: ! #line 2523 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 562: ! #line 2526 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 563: ! #line 2532 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 564: ! #line 2538 "objc-parse.y" { prefix_attributes = chainon (prefix_attributes, yyvsp[-3].ttype); all_prefix_attributes = prefix_attributes; ; break;} ! case 565: ! #line 2547 "objc-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (1); ; break;} ! case 566: ! #line 2551 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} ! case 568: ! #line 2559 "objc-parse.y" { tree t; for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) if (TREE_VALUE (t) == NULL_TREE) --- 4815,4917 ---- error ("ISO C requires a named argument before `...'"); ; break;} case 551: ! #line 2475 "objc-parse.y" ! { yyval.ttype = get_parm_info (1); ; break;} case 552: #line 2477 "objc-parse.y" ! { yyval.ttype = get_parm_info (0); ; break;} case 553: ! #line 2482 "objc-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 554: ! #line 2484 "objc-parse.y" ! { push_parm_decl (yyvsp[0].ttype); ; ! break;} ! case 555: ! #line 2491 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 556: ! #line 2496 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 557: ! #line 2501 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 558: ! #line 2504 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 559: ! #line 2510 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 560: ! #line 2518 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 561: ! #line 2523 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 562: ! #line 2528 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 563: ! #line 2531 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); POP_DECLSPEC_STACK; ; break;} ! case 564: ! #line 2537 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} ! case 565: ! #line 2543 "objc-parse.y" { prefix_attributes = chainon (prefix_attributes, yyvsp[-3].ttype); all_prefix_attributes = prefix_attributes; ; break;} ! case 566: ! #line 2552 "objc-parse.y" { pushlevel (0); clear_parm_order (); declare_parm_level (1); ; break;} ! case 567: ! #line 2556 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; parmlist_tags_warning (); poplevel (0, 0, 0); ; break;} ! case 569: ! #line 2564 "objc-parse.y" { tree t; for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) if (TREE_VALUE (t) == NULL_TREE) *************** case 568: *** 4894,4924 **** YYERROR1; ; break;} - case 569: - #line 2577 "objc-parse.y" - { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} case 570: ! #line 2579 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 571: ! #line 2585 "objc-parse.y" ! { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 572: ! #line 2587 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 573: #line 2592 "objc-parse.y" { yyval.ttype = SAVE_WARN_FLAGS(); pedantic = 0; warn_pointer_arith = 0; warn_traditional = 0; ; break;} ! case 579: ! #line 2607 "objc-parse.y" { if (objc_implementation_context) { --- 4926,4956 ---- YYERROR1; ; break;} case 570: ! #line 2582 "objc-parse.y" ! { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 571: ! #line 2584 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 572: ! #line 2590 "objc-parse.y" ! { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 573: #line 2592 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 574: + #line 2597 "objc-parse.y" { yyval.ttype = SAVE_WARN_FLAGS(); pedantic = 0; warn_pointer_arith = 0; warn_traditional = 0; ; break;} ! case 580: ! #line 2612 "objc-parse.y" { if (objc_implementation_context) { *************** case 579: *** 4930,5044 **** warning ("`@end' must appear in an implementation context"); ; break;} - case 580: - #line 2622 "objc-parse.y" - { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} case 581: ! #line 2624 "objc-parse.y" ! { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 582: #line 2629 "objc-parse.y" { objc_declare_class (yyvsp[-1].ttype); ; break;} ! case 583: ! #line 2635 "objc-parse.y" { objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 584: ! #line 2641 "objc-parse.y" { objc_interface_context = objc_ivar_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype); objc_public_flag = 0; ; break;} ! case 585: ! #line 2647 "objc-parse.y" { continue_class (objc_interface_context); ; break;} ! case 586: ! #line 2652 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 587: ! #line 2658 "objc-parse.y" { objc_interface_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); continue_class (objc_interface_context); ; break;} ! case 588: ! #line 2665 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 589: ! #line 2671 "objc-parse.y" { objc_interface_context = objc_ivar_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); objc_public_flag = 0; ; break;} ! case 590: ! #line 2677 "objc-parse.y" { continue_class (objc_interface_context); ; break;} ! case 591: ! #line 2682 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 592: ! #line 2688 "objc-parse.y" { objc_interface_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); continue_class (objc_interface_context); ; break;} ! case 593: ! #line 2695 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 594: ! #line 2701 "objc-parse.y" { objc_implementation_context = objc_ivar_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); objc_public_flag = 0; ; break;} ! case 595: ! #line 2707 "objc-parse.y" { objc_ivar_chain = continue_class (objc_implementation_context); ; break;} ! case 596: ! #line 2713 "objc-parse.y" { objc_implementation_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE); --- 4962,5076 ---- warning ("`@end' must appear in an implementation context"); ; break;} case 581: ! #line 2627 "objc-parse.y" ! { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 582: #line 2629 "objc-parse.y" + { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; + break;} + case 583: + #line 2634 "objc-parse.y" { objc_declare_class (yyvsp[-1].ttype); ; break;} ! case 584: ! #line 2641 "objc-parse.y" { objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} ! case 585: ! #line 2648 "objc-parse.y" { objc_interface_context = objc_ivar_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype); objc_public_flag = 0; ; break;} ! case 586: ! #line 2654 "objc-parse.y" { continue_class (objc_interface_context); ; break;} ! case 587: ! #line 2659 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 588: ! #line 2665 "objc-parse.y" { objc_interface_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); continue_class (objc_interface_context); ; break;} ! case 589: ! #line 2672 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 590: ! #line 2678 "objc-parse.y" { objc_interface_context = objc_ivar_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); objc_public_flag = 0; ; break;} ! case 591: ! #line 2684 "objc-parse.y" { continue_class (objc_interface_context); ; break;} ! case 592: ! #line 2689 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 593: ! #line 2695 "objc-parse.y" { objc_interface_context = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); continue_class (objc_interface_context); ; break;} ! case 594: ! #line 2702 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 595: ! #line 2708 "objc-parse.y" { objc_implementation_context = objc_ivar_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); objc_public_flag = 0; ; break;} ! case 596: ! #line 2714 "objc-parse.y" { objc_ivar_chain = continue_class (objc_implementation_context); ; break;} ! case 597: ! #line 2720 "objc-parse.y" { objc_implementation_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE); *************** case 596: *** 5046,5068 **** = continue_class (objc_implementation_context); ; break;} ! case 597: ! #line 2721 "objc-parse.y" { objc_implementation_context = objc_ivar_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); objc_public_flag = 0; ; break;} ! case 598: ! #line 2727 "objc-parse.y" { objc_ivar_chain = continue_class (objc_implementation_context); ; break;} ! case 599: ! #line 2733 "objc-parse.y" { objc_implementation_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); --- 5078,5100 ---- = continue_class (objc_implementation_context); ; break;} ! case 598: ! #line 2728 "objc-parse.y" { objc_implementation_context = objc_ivar_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); objc_public_flag = 0; ; break;} ! case 599: ! #line 2734 "objc-parse.y" { objc_ivar_chain = continue_class (objc_implementation_context); ; break;} ! case 600: ! #line 2740 "objc-parse.y" { objc_implementation_context = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); *************** case 599: *** 5070,5092 **** = continue_class (objc_implementation_context); ; break;} ! case 600: ! #line 2741 "objc-parse.y" { objc_interface_context = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); continue_class (objc_interface_context); ; break;} ! case 601: ! #line 2748 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 602: ! #line 2754 "objc-parse.y" { objc_implementation_context = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); --- 5102,5124 ---- = continue_class (objc_implementation_context); ; break;} ! case 601: ! #line 2748 "objc-parse.y" { objc_interface_context = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); continue_class (objc_interface_context); ; break;} ! case 602: ! #line 2755 "objc-parse.y" { finish_class (objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 603: ! #line 2761 "objc-parse.y" { objc_implementation_context = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); *************** case 602: *** 5094,5129 **** = continue_class (objc_implementation_context); ; break;} ! case 603: ! #line 2764 "objc-parse.y" { objc_pq_context = 1; objc_interface_context = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 604: ! #line 2770 "objc-parse.y" { objc_pq_context = 0; finish_protocol(objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 605: ! #line 2779 "objc-parse.y" { objc_declare_protocols (yyvsp[-1].ttype); ; break;} ! case 606: ! #line 2786 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 608: ! #line 2794 "objc-parse.y" { if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR) yyval.ttype = yyvsp[-1].ttype; --- 5126,5161 ---- = continue_class (objc_implementation_context); ; break;} ! case 604: ! #line 2771 "objc-parse.y" { objc_pq_context = 1; objc_interface_context = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 605: ! #line 2777 "objc-parse.y" { objc_pq_context = 0; finish_protocol(objc_interface_context); objc_interface_context = NULL_TREE; ; break;} ! case 606: ! #line 2786 "objc-parse.y" { objc_declare_protocols (yyvsp[-1].ttype); ; break;} ! case 607: ! #line 2793 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 609: ! #line 2801 "objc-parse.y" { if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR) yyval.ttype = yyvsp[-1].ttype; *************** case 608: *** 5131,5181 **** YYERROR1; ; break;} ! case 611: ! #line 2808 "objc-parse.y" { objc_public_flag = 2; ; break;} ! case 612: ! #line 2809 "objc-parse.y" { objc_public_flag = 0; ; break;} ! case 613: ! #line 2810 "objc-parse.y" { objc_public_flag = 1; ; break;} ! case 614: ! #line 2815 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 616: ! #line 2820 "objc-parse.y" { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); ; break;} - case 617: - #line 2838 "objc-parse.y" - { yyval.ttype = yyvsp[0].ttype; - POP_DECLSPEC_STACK; ; - break;} case 618: ! #line 2841 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} case 619: ! #line 2844 "objc-parse.y" ! { yyval.ttype = NULL_TREE; ; break;} case 620: ! #line 2849 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 623: #line 2856 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, --- 5163,5213 ---- YYERROR1; ; break;} ! case 612: ! #line 2815 "objc-parse.y" { objc_public_flag = 2; ; break;} ! case 613: ! #line 2816 "objc-parse.y" { objc_public_flag = 0; ; break;} ! case 614: ! #line 2817 "objc-parse.y" { objc_public_flag = 1; ; break;} ! case 615: ! #line 2822 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 617: ! #line 2827 "objc-parse.y" { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); ; break;} case 618: ! #line 2845 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; POP_DECLSPEC_STACK; ; break;} case 619: ! #line 2848 "objc-parse.y" ! { yyval.ttype = yyvsp[0].ttype; ! POP_DECLSPEC_STACK; ; break;} case 620: ! #line 2851 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 621: #line 2856 "objc-parse.y" + { yyval.ttype = NULL_TREE; ; + break;} + case 624: + #line 2863 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, *************** case 623: *** 5183,5198 **** NULL_TREE); ; break;} ! case 624: ! #line 2863 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); ; break;} ! case 625: ! #line 2869 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, --- 5215,5230 ---- NULL_TREE); ; break;} ! case 625: ! #line 2870 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); ; break;} ! case 626: ! #line 2876 "objc-parse.y" { yyval.ttype = add_instance_variable (objc_ivar_context, objc_public_flag, *************** case 625: *** 5200,5223 **** current_declspecs, yyvsp[0].ttype); ; break;} ! case 626: ! #line 2879 "objc-parse.y" { objc_inherit_code = CLASS_METHOD_DECL; ; break;} ! case 627: ! #line 2881 "objc-parse.y" { objc_inherit_code = INSTANCE_METHOD_DECL; ; break;} ! case 628: ! #line 2886 "objc-parse.y" { objc_pq_context = 1; if (!objc_implementation_context) fatal_error ("method definition not in class context"); ; break;} ! case 629: ! #line 2892 "objc-parse.y" { objc_pq_context = 0; if (objc_inherit_code == CLASS_METHOD_DECL) --- 5232,5255 ---- current_declspecs, yyvsp[0].ttype); ; break;} ! case 627: ! #line 2886 "objc-parse.y" { objc_inherit_code = CLASS_METHOD_DECL; ; break;} ! case 628: ! #line 2888 "objc-parse.y" { objc_inherit_code = INSTANCE_METHOD_DECL; ; break;} ! case 629: ! #line 2893 "objc-parse.y" { objc_pq_context = 1; if (!objc_implementation_context) fatal_error ("method definition not in class context"); ; break;} ! case 630: ! #line 2899 "objc-parse.y" { objc_pq_context = 0; if (objc_inherit_code == CLASS_METHOD_DECL) *************** case 629: *** 5227,5261 **** start_method_def (yyvsp[0].ttype); ; break;} ! case 630: ! #line 2901 "objc-parse.y" { continue_method_def (); ; break;} ! case 631: ! #line 2905 "objc-parse.y" { finish_method_def (); ; break;} ! case 633: ! #line 2916 "objc-parse.y" {yyval.ttype = NULL_TREE; ; break;} ! case 638: ! #line 2923 "objc-parse.y" {yyval.ttype = NULL_TREE; ; break;} ! case 642: ! #line 2933 "objc-parse.y" { /* Remember protocol qualifiers in prototypes. */ objc_pq_context = 1; ; break;} ! case 643: ! #line 2938 "objc-parse.y" { /* Forget protocol qualifiers here. */ objc_pq_context = 0; --- 5259,5293 ---- start_method_def (yyvsp[0].ttype); ; break;} ! case 631: ! #line 2908 "objc-parse.y" { continue_method_def (); ; break;} ! case 632: ! #line 2912 "objc-parse.y" { finish_method_def (); ; break;} ! case 634: ! #line 2923 "objc-parse.y" {yyval.ttype = NULL_TREE; ; break;} ! case 639: ! #line 2930 "objc-parse.y" {yyval.ttype = NULL_TREE; ; break;} ! case 643: ! #line 2940 "objc-parse.y" { /* Remember protocol qualifiers in prototypes. */ objc_pq_context = 1; ; break;} ! case 644: ! #line 2945 "objc-parse.y" { /* Forget protocol qualifiers here. */ objc_pq_context = 0; *************** case 643: *** 5265,5395 **** add_instance_method (objc_interface_context, yyvsp[0].ttype); ; break;} ! case 645: ! #line 2951 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 646: ! #line 2956 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 647: ! #line 2961 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 648: ! #line 2966 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} - case 657: - #line 2996 "objc-parse.y" - { POP_DECLSPEC_STACK; ; - break;} case 658: ! #line 2998 "objc-parse.y" ! { shadow_tag (yyvsp[-1].ttype); ; break;} case 659: ! #line 3000 "objc-parse.y" ! { pedwarn ("empty declaration"); ; break;} case 660: ! #line 3005 "objc-parse.y" ! { push_parm_decl (yyvsp[0].ttype); ; break;} case 661: ! #line 3007 "objc-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 662: ! #line 3015 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); ; break;} ! case 663: ! #line 3019 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); ; break;} ! case 664: ! #line 3023 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 665: ! #line 3028 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 666: ! #line 3032 "objc-parse.y" { /* oh what a kludge! */ yyval.ttype = objc_ellipsis_node; ; break;} ! case 667: ! #line 3037 "objc-parse.y" { pushlevel (0); ; break;} ! case 668: ! #line 3041 "objc-parse.y" { /* returns a tree list node generated by get_parm_info */ yyval.ttype = yyvsp[0].ttype; poplevel (0, 0, 0); ; break;} ! case 671: ! #line 3056 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 698: ! #line 3078 "objc-parse.y" { yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 699: ! #line 3083 "objc-parse.y" { yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); ; break;} ! case 700: ! #line 3088 "objc-parse.y" { yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 701: ! #line 3093 "objc-parse.y" { yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} ! case 705: ! #line 3106 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 706: ! #line 3114 "objc-parse.y" { if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE) /* just return the expr., remove a level of indirection */ --- 5297,5427 ---- add_instance_method (objc_interface_context, yyvsp[0].ttype); ; break;} ! case 646: ! #line 2958 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 647: ! #line 2963 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} ! case 648: ! #line 2968 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 649: ! #line 2973 "objc-parse.y" { yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 658: ! #line 3003 "objc-parse.y" ! { POP_DECLSPEC_STACK; ; break;} case 659: ! #line 3005 "objc-parse.y" ! { shadow_tag (yyvsp[-1].ttype); ; break;} case 660: ! #line 3007 "objc-parse.y" ! { pedwarn ("empty declaration"); ; break;} case 661: ! #line 3012 "objc-parse.y" { push_parm_decl (yyvsp[0].ttype); ; break;} case 662: ! #line 3014 "objc-parse.y" ! { push_parm_decl (yyvsp[0].ttype); ; ! break;} ! case 663: ! #line 3022 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); ; break;} ! case 664: ! #line 3026 "objc-parse.y" { yyval.ttype = build_tree_list (build_tree_list (current_declspecs, yyvsp[-1].ttype), chainon (yyvsp[0].ttype, all_prefix_attributes)); ; break;} ! case 665: ! #line 3030 "objc-parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} ! case 666: ! #line 3035 "objc-parse.y" { yyval.ttype = NULL_TREE; ; break;} ! case 667: ! #line 3039 "objc-parse.y" { /* oh what a kludge! */ yyval.ttype = objc_ellipsis_node; ; break;} ! case 668: ! #line 3044 "objc-parse.y" { pushlevel (0); ; break;} ! case 669: ! #line 3048 "objc-parse.y" { /* returns a tree list node generated by get_parm_info */ yyval.ttype = yyvsp[0].ttype; poplevel (0, 0, 0); ; break;} ! case 672: ! #line 3063 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 699: ! #line 3085 "objc-parse.y" { yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 700: ! #line 3090 "objc-parse.y" { yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); ; break;} ! case 701: ! #line 3095 "objc-parse.y" { yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 702: ! #line 3100 "objc-parse.y" { yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} ! case 706: ! #line 3113 "objc-parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} ! case 707: ! #line 3121 "objc-parse.y" { if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE) /* just return the expr., remove a level of indirection */ *************** case 706: *** 5399,5458 **** yyval.ttype = yyvsp[0].ttype; ; break;} ! case 707: ! #line 3126 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 708: ! #line 3130 "objc-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 710: ! #line 3138 "objc-parse.y" { yyval.ttype = get_class_reference (yyvsp[0].ttype); ; break;} ! case 711: ! #line 3145 "objc-parse.y" { objc_receiver_context = 1; ; break;} ! case 712: ! #line 3147 "objc-parse.y" { objc_receiver_context = 0; ; break;} ! case 713: ! #line 3149 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} - case 717: - #line 3162 "objc-parse.y" - { - yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); - ; - break;} case 718: #line 3169 "objc-parse.y" { ! yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE); ; break;} case 719: ! #line 3173 "objc-parse.y" { ! yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE); ; break;} case 720: #line 3180 "objc-parse.y" { ! yyval.ttype = yyvsp[-1].ttype; ; break;} case 721: --- 5431,5484 ---- yyval.ttype = yyvsp[0].ttype; ; break;} ! case 708: ! #line 3133 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} ! case 709: ! #line 3137 "objc-parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} ! case 711: ! #line 3145 "objc-parse.y" { yyval.ttype = get_class_reference (yyvsp[0].ttype); ; break;} ! case 712: ! #line 3152 "objc-parse.y" { objc_receiver_context = 1; ; break;} ! case 713: ! #line 3154 "objc-parse.y" { objc_receiver_context = 0; ; break;} ! case 714: ! #line 3156 "objc-parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 718: #line 3169 "objc-parse.y" { ! yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 719: ! #line 3176 "objc-parse.y" { ! yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE); ; break;} case 720: #line 3180 "objc-parse.y" { ! yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE); ; break;} case 721: *************** case 721: *** 5462,5468 **** ; break;} case 722: ! #line 3196 "objc-parse.y" { yyval.ttype = groktypename (yyvsp[-1].ttype); ; --- 5488,5500 ---- ; break;} case 722: ! #line 3194 "objc-parse.y" ! { ! yyval.ttype = yyvsp[-1].ttype; ! ; ! break;} ! case 723: ! #line 3203 "objc-parse.y" { yyval.ttype = groktypename (yyvsp[-1].ttype); ; *************** yyerrhandle: *** 5689,5695 **** } return 1; } ! #line 3201 "objc-parse.y" /* yylex() is a thin wrapper around c_lex(), all it does is translate --- 5721,5727 ---- } return 1; } ! #line 3208 "objc-parse.y" /* yylex() is a thin wrapper around c_lex(), all it does is translate diff -Nrc3pad gcc-3.2/gcc/objc/objc-parse.y gcc-3.2.1/gcc/objc/objc-parse.y *** gcc-3.2/gcc/objc/objc-parse.y Wed Aug 14 09:51:31 2002 --- gcc-3.2.1/gcc/objc/objc-parse.y Tue Nov 19 18:32:19 2002 *************** alignof: *** 510,515 **** --- 510,519 ---- ALIGNOF { skip_evaluation++; } ; + typeof: + TYPEOF { skip_evaluation++; } + ; + cast_expr: unary_expr | '(' typename ')' cast_expr %prec UNARY *************** typespec_nonreserved_nonattr: *** 1328,1337 **** - nisse@lysator.liu.se */ | non_empty_protocolrefs { $$ = get_object_reference ($1); } ! | TYPEOF '(' expr ')' ! { $$ = TREE_TYPE ($3); } ! | TYPEOF '(' typename ')' ! { $$ = groktypename ($3); } ; /* typespec_nonreserved_attr does not exist. */ --- 1332,1341 ---- - nisse@lysator.liu.se */ | non_empty_protocolrefs { $$ = get_object_reference ($1); } ! | typeof '(' expr ')' ! { skip_evaluation--; $$ = TREE_TYPE ($3); } ! | typeof '(' typename ')' ! { skip_evaluation--; $$ = groktypename ($3); } ; /* typespec_nonreserved_attr does not exist. */ *************** initelt: *** 1475,1480 **** --- 1479,1485 ---- if (pedantic) pedwarn ("obsolete use of designated initializer with `:'"); } initval + {} | initval ; *************** classdecl: *** 2629,2640 **** --- 2634,2647 ---- { objc_declare_class ($2); } + ; aliasdecl: ALIAS identifier identifier ';' { objc_declare_alias ($2, $3); } + ; classdef: INTERFACE identifier protocolrefs '{' diff -Nrc3pad gcc-3.2/gcc/optabs.c gcc-3.2.1/gcc/optabs.c *** gcc-3.2/gcc/optabs.c Fri Apr 5 19:13:00 2002 --- gcc-3.2.1/gcc/optabs.c Wed Sep 4 22:29:13 2002 *************** expand_binop (mode, binoptab, op0, op1, *** 752,774 **** } /* In case the insn wants input operands in modes different from ! the result, convert the operands. It would seem that we ! don't need to convert CONST_INTs, but we do, so that they're ! a properly sign-extended for their modes; we choose the ! widest mode between mode and mode[01], so that, in a widening ! operation, we call convert_modes with different FROM and TO ! modes, which ensures the value is sign-extended. Shift ! operations are an exception, because the second operand needs ! not be extended to the mode of the result. */ if (GET_MODE (op0) != mode0 && mode0 != VOIDmode) xop0 = convert_modes (mode0, GET_MODE (op0) != VOIDmode ? GET_MODE (op0) ! : GET_MODE_SIZE (mode) > GET_MODE_SIZE (mode0) ! ? mode ! : mode0, xop0, unsignedp); if (GET_MODE (xop1) != mode1 --- 752,769 ---- } /* In case the insn wants input operands in modes different from ! those of the actual operands, convert the operands. It would ! seem that we don't need to convert CONST_INTs, but we do, so ! that they're properly zero-extended or sign-extended for their ! modes; shift operations are an exception, because the second ! operand needs not be extended to the mode of the result. */ if (GET_MODE (op0) != mode0 && mode0 != VOIDmode) xop0 = convert_modes (mode0, GET_MODE (op0) != VOIDmode ? GET_MODE (op0) ! : mode, xop0, unsignedp); if (GET_MODE (xop1) != mode1 *************** expand_binop (mode, binoptab, op0, op1, *** 776,783 **** xop1 = convert_modes (mode1, GET_MODE (op1) != VOIDmode ? GET_MODE (op1) ! : (GET_MODE_SIZE (mode) > GET_MODE_SIZE (mode1) ! && ! shift_op) ? mode : mode1, xop1, unsignedp); --- 771,777 ---- xop1 = convert_modes (mode1, GET_MODE (op1) != VOIDmode ? GET_MODE (op1) ! : ! shift_op ? mode : mode1, xop1, unsignedp); *************** expand_binop (mode, binoptab, op0, op1, *** 1192,1200 **** { int i; optab otheroptab = binoptab == add_optab ? sub_optab : add_optab; ! unsigned int nwords = GET_MODE_BITSIZE (mode) / BITS_PER_WORD; rtx carry_in = NULL_RTX, carry_out = NULL_RTX; ! rtx xop0, xop1; /* We can handle either a 1 or -1 value for the carry. If STORE_FLAG value is one of those, use it. Otherwise, use 1 since it is the --- 1186,1194 ---- { int i; optab otheroptab = binoptab == add_optab ? sub_optab : add_optab; ! int nwords = GET_MODE_BITSIZE (mode) / BITS_PER_WORD; rtx carry_in = NULL_RTX, carry_out = NULL_RTX; ! rtx xop0, xop1, xtarget; /* We can handle either a 1 or -1 value for the carry. If STORE_FLAG value is one of those, use it. Otherwise, use 1 since it is the *************** expand_binop (mode, binoptab, op0, op1, *** 1209,1227 **** xop0 = force_reg (mode, op0); xop1 = force_reg (mode, op1); ! if (target == 0 || GET_CODE (target) != REG ! || target == xop0 || target == xop1) ! target = gen_reg_rtx (mode); /* Indicate for flow that the entire target reg is being set. */ if (GET_CODE (target) == REG) ! emit_insn (gen_rtx_CLOBBER (VOIDmode, target)); /* Do the actual arithmetic. */ for (i = 0; i < nwords; i++) { int index = (WORDS_BIG_ENDIAN ? nwords - i - 1 : i); ! rtx target_piece = operand_subword (target, index, 1, mode); rtx op0_piece = operand_subword_force (xop0, index, mode); rtx op1_piece = operand_subword_force (xop1, index, mode); rtx x; --- 1203,1222 ---- xop0 = force_reg (mode, op0); xop1 = force_reg (mode, op1); ! xtarget = gen_reg_rtx (mode); ! ! if (target == 0 || GET_CODE (target) != REG) ! target = xtarget; /* Indicate for flow that the entire target reg is being set. */ if (GET_CODE (target) == REG) ! emit_insn (gen_rtx_CLOBBER (VOIDmode, xtarget)); /* Do the actual arithmetic. */ for (i = 0; i < nwords; i++) { int index = (WORDS_BIG_ENDIAN ? nwords - i - 1 : i); ! rtx target_piece = operand_subword (xtarget, index, 1, mode); rtx op0_piece = operand_subword_force (xop0, index, mode); rtx op1_piece = operand_subword_force (xop1, index, mode); rtx x; *************** expand_binop (mode, binoptab, op0, op1, *** 1281,1287 **** { if (mov_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing) { ! rtx temp = emit_move_insn (target, target); set_unique_reg_note (temp, REG_EQUAL, --- 1276,1282 ---- { if (mov_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing) { ! rtx temp = emit_move_insn (target, xtarget); set_unique_reg_note (temp, REG_EQUAL, *************** expand_binop (mode, binoptab, op0, op1, *** 1443,1448 **** --- 1438,1446 ---- rtx temp = expand_binop (word_mode, binoptab, op0_low, op1_xhigh, NULL_RTX, 0, OPTAB_DIRECT); + if (!REG_P (product_high)) + product_high = force_reg (word_mode, product_high); + if (temp != 0) temp = expand_binop (word_mode, add_optab, temp, product_high, product_high, 0, next_methods); *************** expand_binop (mode, binoptab, op0, op1, *** 1462,1467 **** --- 1460,1467 ---- if (temp != 0 && temp != product_high) emit_move_insn (product_high, temp); + emit_move_insn (operand_subword (product, high, 1, mode), product_high); + if (temp != 0) { if (mov_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing) diff -Nrc3pad gcc-3.2/gcc/po/ChangeLog gcc-3.2.1/gcc/po/ChangeLog *** gcc-3.2/gcc/po/ChangeLog Wed Aug 14 09:00:29 2002 --- gcc-3.2.1/gcc/po/ChangeLog Tue Nov 19 17:49:16 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/gcc/reload.c gcc-3.2.1/gcc/reload.c *** gcc-3.2/gcc/reload.c Thu Jun 13 16:08:12 2002 --- gcc-3.2.1/gcc/reload.c Thu Oct 24 08:59:49 2002 *************** static int push_secondary_reload PARAMS *** 242,248 **** #endif static enum reg_class find_valid_class PARAMS ((enum machine_mode, int, unsigned int)); ! static int reload_inner_reg_of_subreg PARAMS ((rtx, enum machine_mode)); static void push_replacement PARAMS ((rtx *, int, enum machine_mode)); static void combine_reloads PARAMS ((void)); static int find_reusable_reload PARAMS ((rtx *, rtx, enum reg_class, --- 242,248 ---- #endif static enum reg_class find_valid_class PARAMS ((enum machine_mode, int, unsigned int)); ! static int reload_inner_reg_of_subreg PARAMS ((rtx, enum machine_mode, int)); static void push_replacement PARAMS ((rtx *, int, enum machine_mode)); static void combine_reloads PARAMS ((void)); static int find_reusable_reload PARAMS ((rtx *, rtx, enum reg_class, *************** find_reusable_reload (p_in, out, class, *** 794,802 **** SUBREG_REG expression. */ static int ! reload_inner_reg_of_subreg (x, mode) rtx x; enum machine_mode mode; { rtx inner; --- 794,803 ---- SUBREG_REG expression. */ static int ! reload_inner_reg_of_subreg (x, mode, output) rtx x; enum machine_mode mode; + int output; { rtx inner; *************** reload_inner_reg_of_subreg (x, mode) *** 824,829 **** --- 825,831 ---- word and the number of regs for INNER is not the same as the number of words in INNER, then INNER will need reloading. */ return (GET_MODE_SIZE (mode) <= UNITS_PER_WORD + && output && GET_MODE_SIZE (GET_MODE (inner)) > UNITS_PER_WORD && ((GET_MODE_SIZE (GET_MODE (inner)) / UNITS_PER_WORD) != HARD_REGNO_NREGS (REGNO (inner), GET_MODE (inner)))); *************** push_reload (in, out, inloc, outloc, cla *** 1047,1053 **** /* Similar issue for (SUBREG constant ...) if it was not handled by the code above. This can happen if SUBREG_BYTE != 0. */ ! if (in != 0 && reload_inner_reg_of_subreg (in, inmode)) { enum reg_class in_class = class; --- 1049,1055 ---- /* Similar issue for (SUBREG constant ...) if it was not handled by the code above. This can happen if SUBREG_BYTE != 0. */ ! if (in != 0 && reload_inner_reg_of_subreg (in, inmode, 0)) { enum reg_class in_class = class; *************** push_reload (in, out, inloc, outloc, cla *** 1144,1150 **** However, we must reload the inner reg *as well as* the subreg in that case. In this case, the inner reg is an in-out reload. */ ! if (out != 0 && reload_inner_reg_of_subreg (out, outmode)) { /* This relies on the fact that emit_reload_insns outputs the instructions for output reloads of type RELOAD_OTHER in reverse --- 1146,1152 ---- However, we must reload the inner reg *as well as* the subreg in that case. In this case, the inner reg is an in-out reload. */ ! if (out != 0 && reload_inner_reg_of_subreg (out, outmode, 1)) { /* This relies on the fact that emit_reload_insns outputs the instructions for output reloads of type RELOAD_OTHER in reverse *************** push_reload (in, out, inloc, outloc, cla *** 1283,1294 **** So add an additional reload. */ #ifdef SECONDARY_MEMORY_NEEDED ! /* If a memory location is needed for the copy, make one. */ ! if (in != 0 && GET_CODE (in) == REG ! && REGNO (in) < FIRST_PSEUDO_REGISTER ! && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (REGNO (in)), ! class, inmode)) ! get_secondary_mem (in, inmode, opnum, type); #endif i = n_reloads; --- 1285,1301 ---- So add an additional reload. */ #ifdef SECONDARY_MEMORY_NEEDED ! { ! int regnum; ! ! /* If a memory location is needed for the copy, make one. */ ! if (in != 0 ! && ((regnum = true_regnum (in)) >= 0) ! && regnum < FIRST_PSEUDO_REGISTER ! && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (regnum), ! class, inmode)) ! get_secondary_mem (in, inmode, opnum, type); ! } #endif i = n_reloads; *************** push_reload (in, out, inloc, outloc, cla *** 1314,1324 **** n_reloads++; #ifdef SECONDARY_MEMORY_NEEDED ! if (out != 0 && GET_CODE (out) == REG ! && REGNO (out) < FIRST_PSEUDO_REGISTER ! && SECONDARY_MEMORY_NEEDED (class, REGNO_REG_CLASS (REGNO (out)), ! outmode)) ! get_secondary_mem (out, outmode, opnum, type); #endif } else --- 1321,1336 ---- n_reloads++; #ifdef SECONDARY_MEMORY_NEEDED ! { ! int regnum; ! ! if (out != 0 ! && ((regnum = true_regnum (out)) >= 0) ! && regnum < FIRST_PSEUDO_REGISTER ! && SECONDARY_MEMORY_NEEDED (class, REGNO_REG_CLASS (regnum), ! outmode)) ! get_secondary_mem (out, outmode, opnum, type); ! } #endif } else *************** combine_reloads () *** 1712,1718 **** && ! (GET_CODE (rld[i].in) == REG && reg_overlap_mentioned_for_reload_p (rld[i].in, rld[output_reload].out)))) ! && ! reload_inner_reg_of_subreg (rld[i].in, rld[i].inmode) && (reg_class_size[(int) rld[i].class] || SMALL_REGISTER_CLASSES) /* We will allow making things slightly worse by combining an --- 1724,1731 ---- && ! (GET_CODE (rld[i].in) == REG && reg_overlap_mentioned_for_reload_p (rld[i].in, rld[output_reload].out)))) ! && ! reload_inner_reg_of_subreg (rld[i].in, rld[i].inmode, ! rld[i].when_needed != RELOAD_FOR_INPUT) && (reg_class_size[(int) rld[i].class] || SMALL_REGISTER_CLASSES) /* We will allow making things slightly worse by combining an *************** find_reloads (insn, replace, ind_levels, *** 2643,2649 **** ; else if (constraints[i][0] == 'p') { ! find_reloads_address (VOIDmode, (rtx*) 0, recog_data.operand[i], recog_data.operand_loc[i], i, operand_type[i], ind_levels, insn); --- 2656,2662 ---- ; else if (constraints[i][0] == 'p') { ! find_reloads_address (recog_data.operand_mode[i], (rtx*) 0, recog_data.operand[i], recog_data.operand_loc[i], i, operand_type[i], ind_levels, insn); *************** find_reloads_toplev (x, opnum, type, ind *** 4414,4433 **** reg_equiv_constant[regno])) != 0) return tem; ! if (GET_MODE_BITSIZE (GET_MODE (x)) == BITS_PER_WORD ! && regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0 ! && reg_equiv_constant[regno] != 0 ! && (tem = operand_subword (reg_equiv_constant[regno], ! SUBREG_BYTE (x) / UNITS_PER_WORD, 0, ! GET_MODE (SUBREG_REG (x)))) != 0) { ! /* TEM is now a word sized constant for the bits from X that ! we wanted. However, TEM may be the wrong representation. ! ! Use gen_lowpart_common to convert a CONST_INT into a ! CONST_DOUBLE and vice versa as needed according to by the mode ! of the SUBREG. */ ! tem = gen_lowpart_common (GET_MODE (x), tem); if (!tem) abort (); return tem; --- 4427,4438 ---- reg_equiv_constant[regno])) != 0) return tem; ! if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0 ! && reg_equiv_constant[regno] != 0) { ! tem = ! simplify_gen_subreg (GET_MODE (x), reg_equiv_constant[regno], ! GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x)); if (!tem) abort (); return tem; diff -Nrc3pad gcc-3.2/gcc/reload1.c gcc-3.2.1/gcc/reload1.c *** gcc-3.2/gcc/reload1.c Tue May 21 23:42:54 2002 --- gcc-3.2.1/gcc/reload1.c Thu Oct 10 15:40:20 2002 *************** static void delete_output_reload PARAMS *** 440,446 **** static void delete_address_reloads PARAMS ((rtx, rtx)); static void delete_address_reloads_1 PARAMS ((rtx, rtx, rtx)); static rtx inc_for_reload PARAMS ((rtx, rtx, rtx, int)); - static int constraint_accepts_reg_p PARAMS ((const char *, rtx)); static void reload_cse_regs_1 PARAMS ((rtx)); static int reload_cse_noop_set_p PARAMS ((rtx)); static int reload_cse_simplify_set PARAMS ((rtx, rtx)); --- 440,445 ---- *************** emit_input_reload_insns (chain, rl, old, *** 6384,6421 **** && SET_DEST (PATTERN (temp)) == old /* Make sure we can access insn_operand_constraint. */ && asm_noperands (PATTERN (temp)) < 0 - /* This is unsafe if prev insn rejects our reload reg. */ - && constraint_accepts_reg_p (insn_data[recog_memoized (temp)].operand[0].constraint, - reloadreg) /* This is unsafe if operand occurs more than once in current insn. Perhaps some occurrences aren't reloaded. */ ! && count_occurrences (PATTERN (insn), old, 0) == 1 ! /* Don't risk splitting a matching pair of operands. */ ! && ! reg_mentioned_p (old, SET_SRC (PATTERN (temp)))) { /* Store into the reload register instead of the pseudo. */ SET_DEST (PATTERN (temp)) = reloadreg; ! /* If the previous insn is an output reload, the source is ! a reload register, and its spill_reg_store entry will ! contain the previous destination. This is now ! invalid. */ ! if (GET_CODE (SET_SRC (PATTERN (temp))) == REG ! && REGNO (SET_SRC (PATTERN (temp))) < FIRST_PSEUDO_REGISTER) { ! spill_reg_store[REGNO (SET_SRC (PATTERN (temp)))] = 0; ! spill_reg_stored_to[REGNO (SET_SRC (PATTERN (temp)))] = 0; ! } ! /* If these are the only uses of the pseudo reg, ! pretend for GDB it lives in the reload reg we used. */ ! if (REG_N_DEATHS (REGNO (old)) == 1 ! && REG_N_SETS (REGNO (old)) == 1) { ! reg_renumber[REGNO (old)] = REGNO (rl->reg_rtx); ! alter_reg (REGNO (old), -1); } - special = 1; } } --- 6383,6425 ---- && SET_DEST (PATTERN (temp)) == old /* Make sure we can access insn_operand_constraint. */ && asm_noperands (PATTERN (temp)) < 0 /* This is unsafe if operand occurs more than once in current insn. Perhaps some occurrences aren't reloaded. */ ! && count_occurrences (PATTERN (insn), old, 0) == 1) { + rtx old = SET_DEST (PATTERN (temp)); /* Store into the reload register instead of the pseudo. */ SET_DEST (PATTERN (temp)) = reloadreg; ! /* Verify that resulting insn is valid. */ ! extract_insn (temp); ! if (constrain_operands (1)) { ! /* If the previous insn is an output reload, the source is ! a reload register, and its spill_reg_store entry will ! contain the previous destination. This is now ! invalid. */ ! if (GET_CODE (SET_SRC (PATTERN (temp))) == REG ! && REGNO (SET_SRC (PATTERN (temp))) < FIRST_PSEUDO_REGISTER) ! { ! spill_reg_store[REGNO (SET_SRC (PATTERN (temp)))] = 0; ! spill_reg_stored_to[REGNO (SET_SRC (PATTERN (temp)))] = 0; ! } ! /* If these are the only uses of the pseudo reg, ! pretend for GDB it lives in the reload reg we used. */ ! if (REG_N_DEATHS (REGNO (old)) == 1 ! && REG_N_SETS (REGNO (old)) == 1) ! { ! reg_renumber[REGNO (old)] = REGNO (rl->reg_rtx); ! alter_reg (REGNO (old), -1); ! } ! special = 1; ! } ! else { ! SET_DEST (PATTERN (temp)) = old; } } } *************** gen_reload (out, in, opnum, type) *** 7354,7359 **** --- 7358,7366 ---- { rtx last = get_last_insn (); rtx tem; + #ifdef SECONDARY_MEMORY_NEEDED + int in_regnum, out_regnum; + #endif /* If IN is a paradoxical SUBREG, remove it and try to put the opposite SUBREG on OUT. Likewise for a paradoxical SUBREG on OUT. */ *************** gen_reload (out, in, opnum, type) *** 7516,7535 **** #ifdef SECONDARY_MEMORY_NEEDED /* If we need a memory location to do the move, do it that way. */ ! else if (GET_CODE (in) == REG && REGNO (in) < FIRST_PSEUDO_REGISTER ! && GET_CODE (out) == REG && REGNO (out) < FIRST_PSEUDO_REGISTER ! && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (REGNO (in)), ! REGNO_REG_CLASS (REGNO (out)), GET_MODE (out))) { /* Get the memory to use and rewrite both registers to its mode. */ rtx loc = get_secondary_mem (in, GET_MODE (out), opnum, type); if (GET_MODE (loc) != GET_MODE (out)) ! out = gen_rtx_REG (GET_MODE (loc), REGNO (out)); if (GET_MODE (loc) != GET_MODE (in)) ! in = gen_rtx_REG (GET_MODE (loc), REGNO (in)); gen_reload (loc, in, opnum, type); gen_reload (out, loc, opnum, type); --- 7523,7544 ---- #ifdef SECONDARY_MEMORY_NEEDED /* If we need a memory location to do the move, do it that way. */ ! else if ((in_regnum = true_regnum (in)) >= 0 ! && in_regnum < FIRST_PSEUDO_REGISTER ! && (out_regnum = true_regnum (out)) >= 0 ! && out_regnum < FIRST_PSEUDO_REGISTER ! && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (in_regnum), ! REGNO_REG_CLASS (out_regnum), GET_MODE (out))) { /* Get the memory to use and rewrite both registers to its mode. */ rtx loc = get_secondary_mem (in, GET_MODE (out), opnum, type); if (GET_MODE (loc) != GET_MODE (out)) ! out = gen_rtx_REG (GET_MODE (loc), out_regnum); if (GET_MODE (loc) != GET_MODE (in)) ! in = gen_rtx_REG (GET_MODE (loc), in_regnum); gen_reload (loc, in, opnum, type); gen_reload (out, loc, opnum, type); *************** delete_output_reload (insn, j, last_relo *** 7581,7586 **** --- 7590,7600 ---- rtx i1; rtx substed; + /* It is possible that this reload has been only used to set another reload + we eliminated earlier and thus deleted this instruction too. */ + if (INSN_DELETED_P (output_reload_insn)) + return; + /* Get the raw pseudo-register referred to. */ while (GET_CODE (reg) == SUBREG) *************** inc_for_reload (reloadreg, in, value, in *** 7981,8031 **** return store; } - /* Return 1 if we are certain that the constraint-string STRING allows - the hard register REG. Return 0 if we can't be sure of this. */ - - static int - constraint_accepts_reg_p (string, reg) - const char *string; - rtx reg; - { - int value = 0; - int regno = true_regnum (reg); - int c; - - /* Initialize for first alternative. */ - value = 0; - /* Check that each alternative contains `g' or `r'. */ - while (1) - switch (c = *string++) - { - case 0: - /* If an alternative lacks `g' or `r', we lose. */ - return value; - case ',': - /* If an alternative lacks `g' or `r', we lose. */ - if (value == 0) - return 0; - /* Initialize for next alternative. */ - value = 0; - break; - case 'g': - case 'r': - /* Any general reg wins for this alternative. */ - if (TEST_HARD_REG_BIT (reg_class_contents[(int) GENERAL_REGS], regno)) - value = 1; - break; - default: - /* Any reg in specified class wins for this alternative. */ - { - enum reg_class class = REG_CLASS_FROM_LETTER (c); - - if (TEST_HARD_REG_BIT (reg_class_contents[(int) class], regno)) - value = 1; - } - } - } - /* INSN is a no-op; delete it. If this sets the return value of the function, we must keep a USE around, in case this is in a different basic block than the final USE. Otherwise, --- 7995,8000 ---- diff -Nrc3pad gcc-3.2/gcc/rtl.h gcc-3.2.1/gcc/rtl.h *** gcc-3.2/gcc/rtl.h Sun May 19 09:05:27 2002 --- gcc-3.2.1/gcc/rtl.h Sat Nov 16 01:55:47 2002 *************** extern rtx pc_set PARAMS ((rtx)); *** 1804,1809 **** --- 1804,1810 ---- extern rtx condjump_label PARAMS ((rtx)); extern int simplejump_p PARAMS ((rtx)); extern int returnjump_p PARAMS ((rtx)); + extern int tablejump_p PARAMS ((rtx)); extern int onlyjump_p PARAMS ((rtx)); extern int only_sets_cc0_p PARAMS ((rtx)); extern int sets_cc0_p PARAMS ((rtx)); *************** extern int invert_jump_1 PARAMS ((rtx, *** 1811,1816 **** --- 1812,1818 ---- extern int invert_jump PARAMS ((rtx, rtx, int)); extern int rtx_renumbered_equal_p PARAMS ((rtx, rtx)); extern int true_regnum PARAMS ((rtx)); + extern unsigned int reg_or_subregno PARAMS ((rtx)); extern int redirect_jump_1 PARAMS ((rtx, rtx)); extern int redirect_jump PARAMS ((rtx, rtx, int)); extern void rebuild_jump_labels PARAMS ((rtx)); diff -Nrc3pad gcc-3.2/gcc/sched-deps.c gcc-3.2.1/gcc/sched-deps.c *** gcc-3.2/gcc/sched-deps.c Tue Feb 19 02:53:10 2002 --- gcc-3.2.1/gcc/sched-deps.c Fri Sep 27 01:13:27 2002 *************** sched_analyze_insn (deps, x, insn, loop_ *** 923,929 **** code = GET_CODE (x); } if (code == SET || code == CLOBBER) ! sched_analyze_1 (deps, x, insn); else if (code == PARALLEL) { int i; --- 923,937 ---- code = GET_CODE (x); } if (code == SET || code == CLOBBER) ! { ! sched_analyze_1 (deps, x, insn); ! ! /* Bare clobber insns are used for letting life analysis, reg-stack ! and others know that a value is dead. Depend on the last call ! instruction so that reg-stack won't get confused. */ ! if (code == CLOBBER) ! add_dependence_list (insn, deps->last_function_call, REG_DEP_OUTPUT); ! } else if (code == PARALLEL) { int i; *************** sched_analyze_insn (deps, x, insn, loop_ *** 1118,1125 **** EXECUTE_IF_SET_IN_REG_SET (reg_pending_clobbers, 0, i, { struct deps_reg *reg_last = &deps->reg_last[i]; - add_dependence_list (insn, reg_last->sets, REG_DEP_OUTPUT); - add_dependence_list (insn, reg_last->uses, REG_DEP_ANTI); if (reg_last->uses_length > MAX_PENDING_LIST_LENGTH || reg_last->clobbers_length > MAX_PENDING_LIST_LENGTH) { --- 1126,1131 ---- *************** sched_analyze_insn (deps, x, insn, loop_ *** 1129,1134 **** --- 1135,1141 ---- REG_DEP_ANTI); add_dependence_list_and_free (insn, ®_last->clobbers, REG_DEP_OUTPUT); + reg_last->sets = alloc_INSN_LIST (insn, reg_last->sets); reg_last->clobbers_length = 0; reg_last->uses_length = 0; } *************** sched_analyze_insn (deps, x, insn, loop_ *** 1163,1168 **** --- 1170,1185 ---- CLEAR_REG_SET (reg_pending_clobbers); CLEAR_REG_SET (reg_pending_sets); + /* If we are currently in a libcall scheduling group, then mark the + current insn as being in a scheduling group and that it can not + be moved into a different basic block. */ + + if (deps->libcall_block_tail_insn) + { + set_sched_group_p (insn); + CANT_MOVE (insn) = 1; + } + /* If a post-call group is still open, see if it should remain so. This insn must be a simple move of a hard reg to a pseudo or vice-versa. *************** sched_analyze (deps, head, tail) *** 1226,1231 **** --- 1243,1250 ---- for (insn = head;; insn = NEXT_INSN (insn)) { + rtx link, end_seq, r0, set, note; + if (GET_CODE (insn) == INSN || GET_CODE (insn) == JUMP_INSN) { /* Clear out the stale LOG_LINKS from flow. */ *************** sched_analyze (deps, head, tail) *** 1252,1260 **** { int i; - /* Clear out stale SCHED_GROUP_P. */ - SCHED_GROUP_P (insn) = 0; - CANT_MOVE (insn) = 1; /* Clear out the stale LOG_LINKS from flow. */ --- 1271,1276 ---- *************** sched_analyze (deps, head, tail) *** 1356,1361 **** --- 1372,1417 ---- if (current_sched_info->use_cselib) cselib_process_insn (insn); + + /* Now that we have completed handling INSN, check and see if it is + a CLOBBER beginning a libcall block. If it is, record the + end of the libcall sequence. + + We want to schedule libcall blocks as a unit before reload. While + this restricts scheduling, it preserves the meaning of a libcall + block. + + As a side effect, we may get better code due to decreased register + pressure as well as less chance of a foreign insn appearing in + a libcall block. */ + if (!reload_completed + /* Note we may have nested libcall sequences. We only care about + the outermost libcall sequence. */ + && deps->libcall_block_tail_insn == 0 + /* The sequence must start with a clobber of a register. */ + && GET_CODE (insn) == INSN + && GET_CODE (PATTERN (insn)) == CLOBBER + && (r0 = XEXP (PATTERN (insn), 0), GET_CODE (r0) == REG) + && GET_CODE (XEXP (PATTERN (insn), 0)) == REG + /* The CLOBBER must also have a REG_LIBCALL note attached. */ + && (link = find_reg_note (insn, REG_LIBCALL, NULL_RTX)) != 0 + && (end_seq = XEXP (link, 0)) != 0 + /* The insn referenced by the REG_LIBCALL note must be a + simple nop copy with the same destination as the register + mentioned in the clobber. */ + && (set = single_set (end_seq)) != 0 + && SET_DEST (set) == r0 && SET_SRC (set) == r0 + /* And finally the insn referenced by the REG_LIBCALL must + also contain a REG_EQUAL note and a REG_RETVAL note. */ + && find_reg_note (end_seq, REG_EQUAL, NULL_RTX) != 0 + && find_reg_note (end_seq, REG_RETVAL, NULL_RTX) != 0) + deps->libcall_block_tail_insn = XEXP (link, 0); + + /* If we have reached the end of a libcall block, then close the + block. */ + if (deps->libcall_block_tail_insn == insn) + deps->libcall_block_tail_insn = 0; + if (insn == tail) { if (current_sched_info->use_cselib) *************** init_deps (deps) *** 1449,1454 **** --- 1505,1511 ---- deps->last_function_call = 0; deps->sched_before_next_call = 0; deps->in_post_call_group_p = false; + deps->libcall_block_tail_insn = 0; } /* Free insn lists found in DEPS. */ diff -Nrc3pad gcc-3.2/gcc/sched-int.h gcc-3.2.1/gcc/sched-int.h *** gcc-3.2/gcc/sched-int.h Thu Feb 28 18:29:07 2002 --- gcc-3.2.1/gcc/sched-int.h Mon Aug 19 18:59:31 2002 *************** struct deps *** 83,88 **** --- 83,94 ---- the call. */ bool in_post_call_group_p; + /* Set to the tail insn of the outermost libcall block. + + When nonzero, we will mark each insn processed by sched_analyze_insn + with SCHED_GROUP_P to ensure libcalls are scheduled as a unit. */ + rtx libcall_block_tail_insn; + /* The maximum register number for the following arrays. Before reload this is max_reg_num; after reload it is FIRST_PSEUDO_REGISTER. */ int max_reg; diff -Nrc3pad gcc-3.2/gcc/sibcall.c gcc-3.2.1/gcc/sibcall.c *** gcc-3.2/gcc/sibcall.c Sat Apr 6 19:37:38 2002 --- gcc-3.2.1/gcc/sibcall.c Tue Sep 17 21:20:26 2002 *************** optimize_sibling_and_tail_recursive_call *** 574,581 **** rtx insn, insns; basic_block alternate_exit = EXIT_BLOCK_PTR; bool no_sibcalls_this_function = false; ! int successful_sibling_call = 0; ! int replaced_call_placeholder = 0; edge e; insns = get_insns (); --- 574,581 ---- rtx insn, insns; basic_block alternate_exit = EXIT_BLOCK_PTR; bool no_sibcalls_this_function = false; ! bool successful_replacement = false; ! bool replaced_call_placeholder = false; edge e; insns = get_insns (); *************** optimize_sibling_and_tail_recursive_call *** 715,724 **** /* Select a set of insns to implement the call and emit them. Tail recursion is the most efficient, so select it over a tail/sibling call. */ - if (sibcall) - successful_sibling_call = 1; ! replaced_call_placeholder = 1; replace_call_placeholder (insn, tailrecursion != 0 ? sibcall_use_tail_recursion --- 715,725 ---- /* Select a set of insns to implement the call and emit them. Tail recursion is the most efficient, so select it over a tail/sibling call. */ ! if (sibcall || tailrecursion) ! successful_replacement = true; ! replaced_call_placeholder = true; ! replace_call_placeholder (insn, tailrecursion != 0 ? sibcall_use_tail_recursion *************** optimize_sibling_and_tail_recursive_call *** 728,734 **** } } ! if (successful_sibling_call) { rtx insn; tree arg; --- 729,735 ---- } } ! if (successful_replacement) { rtx insn; tree arg; diff -Nrc3pad gcc-3.2/gcc/stmt.c gcc-3.2.1/gcc/stmt.c *** gcc-3.2/gcc/stmt.c Wed Apr 17 01:43:57 2002 --- gcc-3.2.1/gcc/stmt.c Mon Nov 11 20:52:29 2002 *************** tail_recursion_args (actuals, formals) *** 3351,3358 **** if (GET_MODE (DECL_RTL (f)) == GET_MODE (argvec[i])) emit_move_insn (DECL_RTL (f), argvec[i]); else ! convert_move (DECL_RTL (f), argvec[i], ! TREE_UNSIGNED (TREE_TYPE (TREE_VALUE (a)))); } free_temp_slots (); --- 3351,3368 ---- if (GET_MODE (DECL_RTL (f)) == GET_MODE (argvec[i])) emit_move_insn (DECL_RTL (f), argvec[i]); else ! { ! rtx tmp = argvec[i]; ! ! if (DECL_MODE (f) != GET_MODE (DECL_RTL (f))) ! { ! tmp = gen_reg_rtx (DECL_MODE (f)); ! convert_move (tmp, argvec[i], ! TREE_UNSIGNED (TREE_TYPE (TREE_VALUE (a)))); ! } ! convert_move (DECL_RTL (f), tmp, ! TREE_UNSIGNED (TREE_TYPE (TREE_VALUE (a)))); ! } } free_temp_slots (); diff -Nrc3pad gcc-3.2/gcc/testsuite/ChangeLog gcc-3.2.1/gcc/testsuite/ChangeLog *** gcc-3.2/gcc/testsuite/ChangeLog Wed Aug 14 09:00:33 2002 --- gcc-3.2.1/gcc/testsuite/ChangeLog Tue Nov 19 17:49:21 2002 *************** *** 1,3 **** --- 1,225 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-11 Franz Sirl + + PR c/8467 + * gcc.c-torture/execute/20021111-1.c + + 2002-11-11 Nathan Sidwell + + PR c++/7788 + * g++.dg/rtti/crash1.C: New test. + + 2002-11-07 Hans-Peter Nilsson + + * gcc.dg/wint_t-1.c, gcc.dg/wchar_t-1.c: Remove excess-errors + markers. + + 2002-11-02 Zack Weinberg + + * g++.dg/ext/typedef-init.C, gcc.dg/typedef-init.C: + Add some more cases. + + 2002-11-01 Mark Mitchell + + PR c++/8391 + * g++.dg/opt/local1.C: New test. + + 2002-10-30 Mark Mitchell + + PR c++/8160 + * g++.dg/template/complit1.C: New test. + + PR c++/8149 + * g++.dg/template/typename4.C: Likewise. + + 2002-10-29 Mark Mitchell + + PR c++/8287 + * g++.dg/init/dtor2.C: New test. + + * g++.dg/template/alignof1.C: New test. + + 2002-10-28 Kaveh R. Ghazi + + * gcc.dg/20021014-1.c: Bypass errors on solaris2 and irix6. + + 2002-10-27 Hans-Peter Nilsson + + * gcc.dg/20021014-1.c: Use dg-error, not dg-build. + * gcc.dg/20021014-1.c: Expect build failure on mmix-*-*. + + 2002-10-25 Zack Weinberg + + * g++.dg/ext/vla1.C, gcc.dg/vla-2.c, + g++.dg/template/typename3.C: New tests. + + 2002-10-24 Jakub Jelinek + + * gcc.c-torture/execute/20021024-1.c: New test. + + 2002-10-23 Mark Mitchell + + PR c++/8067 + * g++.dg/lookup/pretty1.C: New test. + + 2002-10-23 Mark Mitchell + + PR c++/7679 + * g++.dg/parse/inline1.C: New test. + + 2002-10-22 Mark Mitchell + + PR c++/6579 + * g++.dg/parse/stmtexpr3.C: New test. + + 2002-10-22 Nathan Sidwell + + PR c++/7209 + * g++.dg/expr: New directory. + * g++.dg/expr/cond1.C: New test. + + 2002-10-21 Zack Weinberg + + * gcc.dg/noncompile/920923-1.c: Prevent spurious regressions with + bison 1.50 or later. + + 2002-10-18 Nathan Sidwell + + PR c++/7676 + * g++.dg/overload/method2.C: New test. + + 2002-10-17 Mark Mitchell + + PR c++/7584 + * g++.dg/inherit/using3.C: New test. + + 2002-10-16 Mark Mitchell + + PR c++/7478 + * g++.dg/template/ref1.C: New test. + + PR c++/8134 + * g++.dg/init/pm1.C: XFAIL it. + + PR c++/7524 + * g++.dg/init/array7.C: New test. + + 2002-10-15 Ulrich Weigand + + PR target/7370 + * gcc.c-torture/compile/20021015-1.c: New test. + + PR target/8232 + * gcc.c-torture/compile/20021015-2.c: New test. + + 2002-10-15 Ulrich Weigand + + * gcc.c-torture/execute/20021015-1.c: New test. + + 2002-10-14 Jakub Jelinek + + * gcc.dg/20021014-1.c: New test. + + 2002-10-14 Mark Mitchell + + PR optimization/6631 + * g++.dg/opt/const2.C: New test. + + PR c++/7176 + * g++.dg/parse/friend1.C: New test. + * g++.old-deja/g++.pt/memtemp64.C: Adjust. + + 2002-10-11 Mark Mitchell + + PR c++/5661 + * g++.dg/ext/vlm1.C: New test. + * g++.dg/ext/vlm2.C: Likewise. + + 2002-10-09 Zack Weinberg + + PR c/7353 + * g++.dg/ext/typedef-init.C: New test. + * gcc.dg/typedef-init.c: New test. + + 2002-10-06 Neil Booth + + * gcc.dg/cpp/_Pragma4.c: New test. + + 2002-10-02 Mark Mitchell + + PR c++/7754 + * g++.dg/template/union1.C: New test. + + 2002-10-02 Mark Mitchell + + PR c++/7188. + * testsuite/g++.dg/template/meminit1.C: New test. + + Thu Sep 5 00:34:33 2002 J"orn Rennecke + + * gcc.c-torture/execute/loop-14.c: New test. + + 2002-09-27 Zack Weinberg + + * gcc.dg/cpp/20020927-1.c: New. + + 2002-09-26 David S. Miller + + * gcc.c-torture/compile/trunctfdf.c: New. + + 2002-09-26 Kaveh R. Ghazi + + * lib/target-supports.exp (check_weak_available): Handle solaris2. + + 2002-09-27 Alan Modra + + * gcc.c-torture/execute/loop-15.c: New. + + 2002-09-25 David S. Miller + + PR target/7842 + * gcc.c-torture/execute/shiftdi.c: New test. + + 2002-09-20 Hans-Peter Nilsson + + * gcc.c-torture/execute/ieee/mzero3.c: New test. + + 2002-09-06 Alan Modra + + * gcc.c-torture/execute/extzvsi.c: New test. + + 2002-09-04 Jakub Jelinek + + * g++.dg/other/cxa-atexit1.C: New test. + + * gcc.dg/typeof-2.c: New test. + + 2002-09-01 Jakub Jelinek + + * gcc.dg/typeof-1.c: New test. + * g++.dg/ext/typeof2.C: New test. + + 2002-08-27 Mark Mitchell + + * testsuite/g++.dg/abi/bitfield5.C: New test. + * testsuite/g++.dg/abi/vbase10.C: Likewise. + + 2002-08-15 Neil Booth + + * gcc.dg/cpp/_Pragma3.c, gcc.dg/cpp/vararg3.c, gcc.dg/cpp/vararg4.c: + New tests. + 2002-08-14 Release Manager * GCC 3.2 Released. *************** *** 47,53 **** PR c++/7224 * g++.dg/overload/error1.C: New test. ! 2002-07-03 Mark Mitchell PR c++/6706 --- 269,275 ---- PR c++/7224 * g++.dg/overload/error1.C: New test. ! 2002-07-03 Mark Mitchell PR c++/6706 *************** *** 557,564 **** 2002-03-26 Richard Henderson ! * gcc.c-torture/execute/20020307-2.c (main): Pass a variable sized ! structure. 2002-03-26 David Billinghurst --- 779,786 ---- 2002-03-26 Richard Henderson ! * gcc.c-torture/execute/20020307-2.c (main): Pass a variable sized ! structure. 2002-03-26 David Billinghurst *************** Sat Mar 9 07:30:53 2002 Richard Kenner *** 808,814 **** 2002-02-21 Aldy Hernandez ! * gcc.dg/attr-alwaysinline.c: New. 2002-02-21 Jakub Jelinek --- 1030,1036 ---- 2002-02-21 Aldy Hernandez ! * gcc.dg/attr-alwaysinline.c: New. 2002-02-21 Jakub Jelinek *************** Sat Mar 9 07:30:53 2002 Richard Kenner *** 885,891 **** 2002-02-13 Stan Shebs ! * gcc.dg/altivec-3.c: New. 2002-02-12 Jakub Jelinek --- 1107,1113 ---- 2002-02-13 Stan Shebs ! * gcc.dg/altivec-3.c: New. 2002-02-12 Jakub Jelinek *************** Sat Mar 9 07:30:53 2002 Richard Kenner *** 991,1003 **** 2002-02-06 Nick Clifton * g++.dg/ext/align1.C: Do not use an explicit alignment value ! as certain file formats cannot support particularly large ! alignments. * g++.dg/warn/weak1.C: Expect a warning from COFF toolchains, and do not expect to be able to link the executable. ! * g++.old-deja/g++.ext/attrib5.C: Expect the compilation to fail because the COFF format does not support the weak attribute. 2002-02-05 David Billinghurst --- 1213,1225 ---- 2002-02-06 Nick Clifton * g++.dg/ext/align1.C: Do not use an explicit alignment value ! as certain file formats cannot support particularly large ! alignments. * g++.dg/warn/weak1.C: Expect a warning from COFF toolchains, and do not expect to be able to link the executable. ! * g++.old-deja/g++.ext/attrib5.C: Expect the compilation to fail because the COFF format does not support the weak attribute. 2002-02-05 David Billinghurst *************** Sat Mar 9 07:30:53 2002 Richard Kenner *** 1006,1013 **** 2002-02-05 Aldy Hernandez ! * gcc.dg/altivec-4.c: AltiVec builtin predicates changed format. ! Fix testcase accordingly. 2002-02-04 Richard Henderson --- 1228,1235 ---- 2002-02-05 Aldy Hernandez ! * gcc.dg/altivec-4.c: AltiVec builtin predicates changed format. ! Fix testcase accordingly. 2002-02-04 Richard Henderson diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/abi/bitfield5.C gcc-3.2.1/gcc/testsuite/g++.dg/abi/bitfield5.C *** gcc-3.2/gcc/testsuite/g++.dg/abi/bitfield5.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/abi/bitfield5.C Tue Aug 27 22:49:49 2002 *************** *** 0 **** --- 1,14 ---- + // { dg-do compile } + // { dg-options "-Wabi" } + + struct A { + virtual void f(); + int f1 : 1; + }; + + struct B : public A { + int f2 : 1; // { dg-warning "ABI" } + int : 0; + int f3 : 4; + int f4 : 3; + }; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/abi/mangle11.C gcc-3.2.1/gcc/testsuite/g++.dg/abi/mangle11.C *** gcc-3.2/gcc/testsuite/g++.dg/abi/mangle11.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/abi/mangle11.C Fri Oct 18 08:11:44 2002 *************** *** 0 **** --- 1,10 ---- + // { dg-options "-Wabi" } + + template + void f (typename Q::X) {} + + struct S { + typedef int X; + }; + + template void f (int); // { dg-warning "mangle" } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/abi/mangle14.C gcc-3.2.1/gcc/testsuite/g++.dg/abi/mangle14.C *** gcc-3.2/gcc/testsuite/g++.dg/abi/mangle14.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/abi/mangle14.C Fri Oct 18 08:11:44 2002 *************** *** 0 **** --- 1,12 ---- + // { dg-do compile } + // { dg-options "-Wabi" } + + struct A { + template int f (); + }; + + typedef int (A::*P)(); + + template

    struct S {}; + + void g (S<&A::f >) {} // { dg-warning "mangle" } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/abi/mangle17.C gcc-3.2.1/gcc/testsuite/g++.dg/abi/mangle17.C *** gcc-3.2/gcc/testsuite/g++.dg/abi/mangle17.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/abi/mangle17.C Fri Oct 18 08:11:44 2002 *************** *** 0 **** --- 1,11 ---- + // { dg-options "-Wabi" } + + enum E { e = 3 }; + + template struct S {}; + + template void f (S) {} + template void f<7>(S); // { dg-warning "mangle" } + + template void g (S) {} + template void g<7>(S); // { dg-warning "mangle" } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/abi/vbase10.C gcc-3.2.1/gcc/testsuite/g++.dg/abi/vbase10.C *** gcc-3.2/gcc/testsuite/g++.dg/abi/vbase10.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/abi/vbase10.C Tue Aug 27 22:49:49 2002 *************** *** 0 **** --- 1,7 ---- + // { dg-do compile } + // { dg-options "-Wabi" } + + struct A { virtual void f(); char c1; }; + struct B { B(); char c2; }; + struct C : public A, public virtual B {}; // { dg-warning "ABI" } + diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/expr/cond1.C gcc-3.2.1/gcc/testsuite/g++.dg/expr/cond1.C *** gcc-3.2/gcc/testsuite/g++.dg/expr/cond1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/expr/cond1.C Tue Oct 22 09:06:46 2002 *************** *** 0 **** --- 1,28 ---- + // { dg-do run } + + // Copyright (C) 2001 Free Software Foundation, Inc. + // Contributed by Nathan Sidwell 17 Oct 2002 + + // PR 7209. We didn't SAVE_EXPR in the right place + + char a[2][1][16]={ + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}}; + + int f() {return 0;} + + char * Foo (int d) + { + char *c1; + + c1=a[d==0 ? 0 : 1][f()]; + + return c1; + } + + int main () + { + if (Foo (0) != (void *)a) + return 1; + return 0; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/ext/typedef-init.C gcc-3.2.1/gcc/testsuite/g++.dg/ext/typedef-init.C *** gcc-3.2/gcc/testsuite/g++.dg/ext/typedef-init.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/ext/typedef-init.C Sat Nov 2 10:28:48 2002 *************** *** 0 **** --- 1,33 ---- + /* { dg-do compile } */ + /* { dg-options "-fpermissive" } // suppress default -pedantic-errors */ + + /* This code used to be a legitimate, if dubious, extension. However, + it's been broken since GCC 3.0 (caused ICE) and we have now removed + the extension. See PR c/7353. + + For cases A and C, C++ issues a warning in addition to the error, + since this construct appears to be a case of implicit int + (forbidden in std. C++) until we get to the equals sign. */ + + /* Case A: just the bare name = initializer. */ + + typedef A = 0; /* { dg-error "initialized" "A" } */ + /* { dg-warning "no type" "A warns" { target *-*-* } 14 } */ + A a; /* { dg-bogus "" "A error cascade" } */ + + /* Case B: with a type also. */ + + typedef int B = 0; /* { dg-error "initialized" "B" } */ + B b; /* { dg-bogus "" "B error cascade" } */ + + /* C and D are the same as A and B, but wrapped in a structure; + field declarations go by a different code path in C++ (ick). */ + + struct S { + typedef C = 0; /* { dg-error "initialized" "C" } */ + /* { dg-warning "no type" "C warns" { target *-*-* } 27 } */ + C c; /* { dg-bogus "" "C error cascade" } */ + + typedef int D = 0; /* { dg-error "initialized" "D" } */ + D d; /* { dg-bogus "" "D error cascade" } */ + }; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/ext/typeof2.C gcc-3.2.1/gcc/testsuite/g++.dg/ext/typeof2.C *** gcc-3.2/gcc/testsuite/g++.dg/ext/typeof2.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/ext/typeof2.C Sun Sep 1 20:10:07 2002 *************** *** 0 **** --- 1,29 ---- + // Test typeof with __asm redirection + // { dg-do compile } + // { dg-options "-O2" } + + extern "C" { + extern int foo1; + extern int foo1 __asm ("bar1"); + int foo1 = 1; + + extern int foo2 (int); + extern int foo2 (int) __asm ("bar2"); + int foo2 (int x) + { + return x; + } + + extern int foo3; + extern __typeof (foo3) foo3 __asm ("bar3"); + int foo3 = 1; + + extern int foo4 (int); + extern __typeof (foo4) foo4 __asm ("bar4"); + int foo4 (int x) + { + return x; + } + } + + // { dg-final { scan-assembler-not "foo" } } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/ext/vla1.C gcc-3.2.1/gcc/testsuite/g++.dg/ext/vla1.C *** gcc-3.2/gcc/testsuite/g++.dg/ext/vla1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/ext/vla1.C Fri Oct 25 22:11:18 2002 *************** *** 0 **** --- 1,26 ---- + // { dg-do compile } + + // Crash tests from PR middle-end/6994. See also gcc.dg/vla-2.c. + // A::A is acceptable extended C++ (VLA types brought over from C99); + // B::B is not, but is closely related to acceptable extended C, though + // not to acceptable C99. + + class A { A (int); }; + + A::A (int i) + { + int ar[1][i]; // { dg-error "variable-size array" } + + ar[0][0] = 0; + } + + class B { B (int); }; + + B::B (int i) + { + struct S { + int ar[1][i]; // { dg-error "variable-size|variably modified" } + } s; + + s.ar[0][0] = 0; // { dg-error "no member" } + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/ext/vlm1.C gcc-3.2.1/gcc/testsuite/g++.dg/ext/vlm1.C *** gcc-3.2/gcc/testsuite/g++.dg/ext/vlm1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/ext/vlm1.C Fri Oct 11 22:42:21 2002 *************** *** 0 **** --- 1,13 ---- + // { dg-options "" } + + template struct A {}; + + struct B { + static const int s; + A a; // { dg-error "variably modified|no type" } + }; + + const int B::s=16; + + B b; + diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/ext/vlm2.C gcc-3.2.1/gcc/testsuite/g++.dg/ext/vlm2.C *** gcc-3.2/gcc/testsuite/g++.dg/ext/vlm2.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/ext/vlm2.C Fri Oct 11 22:42:21 2002 *************** *** 0 **** --- 1,13 ---- + // { dg-options "" } + + int n; + + struct Y + { + void f () { + typedef int X[n]; + struct Z { + X x; // { dg-error "variably modified" } + }; + } + }; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/inherit/using3.C gcc-3.2.1/gcc/testsuite/g++.dg/inherit/using3.C *** gcc-3.2/gcc/testsuite/g++.dg/inherit/using3.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/inherit/using3.C Thu Oct 17 22:37:49 2002 *************** *** 0 **** --- 1,19 ---- + class A + { + public: + typedef int T; + int a; + }; + + class B : virtual private A + { + }; + + class C : virtual private A, public B + { + public: + using A::a; + using A::T; + }; + + C::T x; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/init/array7.C gcc-3.2.1/gcc/testsuite/g++.dg/init/array7.C *** gcc-3.2/gcc/testsuite/g++.dg/init/array7.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/init/array7.C Wed Oct 16 18:53:29 2002 *************** *** 0 **** --- 1,15 ---- + struct S { + virtual void v () {} + void f (const float g[3]); + float h[3]; + }; + + void g () { + S s1, s2; + s1 = s2; + } + + void S::f (const float g[3]) {} + + + diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/init/dtor2.C gcc-3.2.1/gcc/testsuite/g++.dg/init/dtor2.C *** gcc-3.2/gcc/testsuite/g++.dg/init/dtor2.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/init/dtor2.C Tue Oct 29 23:51:12 2002 *************** *** 0 **** --- 1,28 ---- + // { dg-do run } + + extern "C" void abort (); + + struct A + { + ~A(); + }; + + A::~A () { + abort (); + } + + struct B + { + ~B(); + }; + + B::~B () { + if(true) return; + A a; + } + + int main() + { + B b; + return 0; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/init/pm1.C gcc-3.2.1/gcc/testsuite/g++.dg/init/pm1.C *** gcc-3.2/gcc/testsuite/g++.dg/init/pm1.C Thu May 16 02:09:36 2002 --- gcc-3.2.1/gcc/testsuite/g++.dg/init/pm1.C Wed Oct 16 19:36:29 2002 *************** *** 1,4 **** ! // { dg-do run } // Copyright 2002 Free Software Foundation // Contributed by Jason Merrill and Alexandre Oliva --- 1,4 ---- ! // { dg-do run { xfail *-*-* } } // Copyright 2002 Free Software Foundation // Contributed by Jason Merrill and Alexandre Oliva diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/lookup/pretty1.C gcc-3.2.1/gcc/testsuite/g++.dg/lookup/pretty1.C *** gcc-3.2/gcc/testsuite/g++.dg/lookup/pretty1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/lookup/pretty1.C Thu Oct 24 00:03:16 2002 *************** *** 0 **** --- 1 ---- + void foo() { for ( __PRETTY_FUNCTION__ ; ; ) ; } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/opt/const2.C gcc-3.2.1/gcc/testsuite/g++.dg/opt/const2.C *** gcc-3.2/gcc/testsuite/g++.dg/opt/const2.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/opt/const2.C Mon Oct 14 21:04:33 2002 *************** *** 0 **** --- 1,40 ---- + // { dg-do run } + // { dg-options "-O" } + + extern "C" void abort (void); + + struct QSize + { + QSize(); + QSize( int w, int h ); + int wd, ht; + friend inline const QSize operator+( const QSize &, const QSize & ); + }; + + inline QSize::QSize() + { wd = ht = -1; } + + inline QSize::QSize( int w, int h ) + { wd = w; ht = h; } + + inline const QSize operator+( const QSize & s1, const QSize & s2 ) + { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } + + QSize minimumSize() + { + return QSize (100, 200); + } + + QSize totalMinimumSize() + { + QSize s = minimumSize(); + return s + QSize( 0, 0 ); + } + + int main() + { + QSize s = totalMinimumSize(); + if (s.wd != 100 || s.ht != 200) + abort (); + } + diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/opt/local1.C gcc-3.2.1/gcc/testsuite/g++.dg/opt/local1.C *** gcc-3.2/gcc/testsuite/g++.dg/opt/local1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/opt/local1.C Sat Nov 2 00:57:26 2002 *************** *** 0 **** --- 1,20 ---- + // { dg-options "-O" } + + struct Outer { + struct Inner { virtual bool f() = 0; }; + void g(Inner &) const; + }; + + inline void h(const Outer &o) + { + struct Local : public Outer::Inner { + virtual bool f() {}; + }; + Local l; + o.g(l); + } + + void f(Outer &req) { + h (req); + } + diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/opt/reload1.C gcc-3.2.1/gcc/testsuite/g++.dg/opt/reload1.C *** gcc-3.2/gcc/testsuite/g++.dg/opt/reload1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/opt/reload1.C Thu Oct 24 08:59:50 2002 *************** *** 0 **** --- 1,43 ---- + // PR 7944 + // { dg-do compile } + // { dg-options -O2 } + + struct B + { + B & operator << (short s) + { + int j; + if (j) + return operator << (s); + else + return operator << (s); + } + }; + + struct A + { + int i; + static void bar (); + static int quux () + { + bar (); + return 0; + } + + A ():i (quux ()) + { + } + ~A () + { + } + }; + + void + foo () + { + short s[4] = { 0, 0, 0, 1 }; + A a[2] = { A (), A () }; + + B b; + b << s[0] << s[2]; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/other/cxa-atexit1.C gcc-3.2.1/gcc/testsuite/g++.dg/other/cxa-atexit1.C *** gcc-3.2/gcc/testsuite/g++.dg/other/cxa-atexit1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/other/cxa-atexit1.C Wed Sep 4 08:25:52 2002 *************** *** 0 **** --- 1,26 ---- + // { dg-do compile } + // { dg-options "-O2 -fuse-cxa-atexit" } + + # 1 "cxa-atexit1.C" + struct A + { + struct B + { + B (); + ~B (); + }; + }; + static A::B b; + # 1 "cxa-atexit1.h" 1 + #pragma interface + template struct C + { + ~C (void); + }; + struct D : public C + { + D (void) : C () { } + }; + # 55 "cxa-atexit1.C" 2 + + // { dg-final { scan-assembler-not ".gnu.linkonce.t.__tcf_" } } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/overload/member2.C gcc-3.2.1/gcc/testsuite/g++.dg/overload/member2.C *** gcc-3.2/gcc/testsuite/g++.dg/overload/member2.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/overload/member2.C Fri Oct 18 08:17:57 2002 *************** *** 0 **** --- 1,41 ---- + // { dg-do run } + + // Copyright (C) 2001 Free Software Foundation, Inc. + // Contributed by Nathan Sidwell 17 Oct 2002 + + // PR 7676. We didn't notice template members were different. + + struct foo + { + template + int bar() {return 1;} + + template + int bar() {return 2;} + + }; + + struct baz : foo + { + using foo::bar; + template + int bar () {return 3;} + }; + + int main () + { + baz b; + foo f; + + if (f.bar<1> () != 2) + return 1; + if (f.bar () != 1) + return 2; + + if (b.bar<1> () != 3) + return 1; + if (b.bar () != 1) + return 2; + + return 0; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/parse/decl-specifier-1.C gcc-3.2.1/gcc/testsuite/g++.dg/parse/decl-specifier-1.C *** gcc-3.2/gcc/testsuite/g++.dg/parse/decl-specifier-1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/parse/decl-specifier-1.C Fri Oct 11 18:00:42 2002 *************** *** 0 **** --- 1,16 ---- + // Contributed by Gabriel Dos Reis + // Origin: PRs 7721 and 7803 + // { dg-do compile } + + namespace N + { + template + struct X { }; + } + + N::X X; // { dg-error "" "" } + + int main() + { + return sizeof(X); // { dg-error "" "" } + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/parse/friend1.C gcc-3.2.1/gcc/testsuite/g++.dg/parse/friend1.C *** gcc-3.2/gcc/testsuite/g++.dg/parse/friend1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/parse/friend1.C Mon Oct 14 07:46:29 2002 *************** *** 0 **** --- 1,9 ---- + namespace N { + template + static void f (); + + struct S { + friend void N::f (); + static void f (int); + }; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/parse/inline1.C gcc-3.2.1/gcc/testsuite/g++.dg/parse/inline1.C *** gcc-3.2/gcc/testsuite/g++.dg/parse/inline1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/parse/inline1.C Wed Oct 23 21:56:55 2002 *************** *** 0 **** --- 1,7 ---- + struct f + { + int oo() + { + return (2; // { dg-error "" } + } + }; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/parse/stmtexpr3.C gcc-3.2.1/gcc/testsuite/g++.dg/parse/stmtexpr3.C *** gcc-3.2/gcc/testsuite/g++.dg/parse/stmtexpr3.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/parse/stmtexpr3.C Wed Oct 23 00:31:20 2002 *************** *** 0 **** --- 1,8 ---- + // { dg-do compile } + // { dg-options "" } + + struct B + { + int a; + B() : a(({ 1; })) {} + }; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/rtti/crash1.C gcc-3.2.1/gcc/testsuite/g++.dg/rtti/crash1.C *** gcc-3.2/gcc/testsuite/g++.dg/rtti/crash1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/rtti/crash1.C Mon Nov 11 12:42:17 2002 *************** *** 0 **** --- 1,10 ---- + // { dg-do compile } + + // Copyright (C) 2002 Free Software Foundation, Inc. + // Contributed by Nathan Sidwell 29 Sep 2002 + + // PR 7788. ICE + + class foo; + extern const foo bar; + class bar; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/template/alignof1.C gcc-3.2.1/gcc/testsuite/g++.dg/template/alignof1.C *** gcc-3.2/gcc/testsuite/g++.dg/template/alignof1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/template/alignof1.C Tue Oct 29 21:12:33 2002 *************** *** 0 **** --- 1,13 ---- + template + int my_alignof() + { + return __alignof__(T); + } + + template + struct X { }; + + int main() + { + return my_alignof >(); + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/template/complit1.C gcc-3.2.1/gcc/testsuite/g++.dg/template/complit1.C *** gcc-3.2/gcc/testsuite/g++.dg/template/complit1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/template/complit1.C Thu Oct 31 00:02:31 2002 *************** *** 0 **** --- 1,11 ---- + // { dg-options "" } + + template struct C { + int d[3]; + C(); + }; + + template + C::C() : d((int[]){1,2,3}) {}; + + template class C<1>; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/template/meminit1.C gcc-3.2.1/gcc/testsuite/g++.dg/template/meminit1.C *** gcc-3.2/gcc/testsuite/g++.dg/template/meminit1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/template/meminit1.C Thu Oct 3 06:55:01 2002 *************** *** 0 **** --- 1,7 ---- + template + struct S + { + S() : S() {} // { dg-error "base" } + }; + + S s; // { dg-error "instantiated" } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/template/ref1.C gcc-3.2.1/gcc/testsuite/g++.dg/template/ref1.C *** gcc-3.2/gcc/testsuite/g++.dg/template/ref1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/template/ref1.C Thu Oct 17 00:15:39 2002 *************** *** 0 **** --- 1,3 ---- + class a {} a1; + template class b { public: b() { static_cast (p); }; }; + int main() { b b1; }; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/template/typename3.C gcc-3.2.1/gcc/testsuite/g++.dg/template/typename3.C *** gcc-3.2/gcc/testsuite/g++.dg/template/typename3.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/template/typename3.C Fri Oct 25 22:11:19 2002 *************** *** 0 **** --- 1,7 ---- + // { dg-do compile } + // crash test - PR 7266 + + template + struct B { + typedef A::C::D E; // { dg-error "no type|parse error" } + }; diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/template/typename4.C gcc-3.2.1/gcc/testsuite/g++.dg/template/typename4.C *** gcc-3.2/gcc/testsuite/g++.dg/template/typename4.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/template/typename4.C Thu Oct 31 00:02:31 2002 *************** *** 0 **** --- 1,3 ---- + struct B { template struct C; }; + template struct A { typedef typename T::C V; }; // { dg-error "" } + void f () { A::V p; } // { dg-error "" } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.dg/template/union1.C gcc-3.2.1/gcc/testsuite/g++.dg/template/union1.C *** gcc-3.2/gcc/testsuite/g++.dg/template/union1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/g++.dg/template/union1.C Fri Oct 4 05:25:12 2002 *************** *** 0 **** --- 1,29 ---- + // { dg-do run } + + extern "C" void abort (); + + void g (char c) + { + if (c != 'a') + abort (); + } + + void h (int i) + { + if (i != 3) + abort (); + } + + template void f(T const &t) + { + union { char c; T t_; }; + + c = 'a'; + g (c); + t_ = 3; + h (t_); + } + + int main () { + f (3); + } diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog gcc-3.2.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog *** gcc-3.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Wed Aug 14 09:00:36 2002 --- gcc-3.2.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Tue Nov 19 17:49:27 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C gcc-3.2.1/gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C *** gcc-3.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C Sun Mar 19 05:17:20 2000 --- gcc-3.2.1/gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C Mon Oct 14 07:46:30 2002 *************** template *** 4,10 **** struct S1 {}; template ! void f(T); // ERROR - original declaration. template struct S2 --- 4,10 ---- struct S1 {}; template ! void f(T); template struct S2 diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20020926-1.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20020926-1.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20020926-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20020926-1.c Fri Sep 27 01:13:28 2002 *************** *** 0 **** --- 1,21 ---- + /* PR c/7160 */ + /* Verify that the register-to-stack converter properly handles + branches without return value containing function calls. */ + + extern int gi; + + extern int foo1(int, int); + extern void foo2(int, int); + extern float foo3(int); + + float bar(int i1, int i2) + { + int i3; + + if (i2) { + i3 = foo1(i1, gi); + foo2(i1, i3); + } + else + return foo3(i2); + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20020927-1.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20020927-1.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20020927-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20020927-1.c Fri Oct 4 21:35:44 2002 *************** *** 0 **** --- 1,26 ---- + /* PR optimization/7520 */ + /* ICE at -O3 on x86 due to register life problems caused by + the return-without-value in bar. */ + + int + foo () + { + int i; + long long int j; + + while (1) + { + if (j & 1) + ++i; + j >>= 1; + if (j) + return i; + } + } + + int + bar () + { + if (foo ()) + return; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20021007-1.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20021007-1.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20021007-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20021007-1.c Mon Oct 7 07:39:20 2002 *************** *** 0 **** --- 1,11 ---- + /* PR c/7411 */ + /* Verify that GCC simplifies the null addition to i before + virtual register substitution tries it and winds up with + a memory to memory move. */ + + void foo () + { + int i = 0,j; + + i+=j=0; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20021015-1.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20021015-1.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20021015-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20021015-1.c Tue Oct 15 18:38:25 2002 *************** *** 0 **** --- 1,12 ---- + /* PR target/7370. */ + + int g (int *x, int *y); + + void f () + { + int x, y; + char a[4000]; + + g (&x, &y); + x = x/y + x; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20021015-2.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20021015-2.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/compile/20021015-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/20021015-2.c Tue Oct 15 18:38:25 2002 *************** *** 0 **** --- 1,7 ---- + /* PR target/8232. */ + + int f (char *p, char *q, int i) + { + return bcmp (p, q, i); + } + diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/compile/trunctfdf.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/trunctfdf.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/compile/trunctfdf.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/compile/trunctfdf.c Fri Sep 27 04:15:32 2002 *************** *** 0 **** --- 1,14 ---- + /* Sparc w/128-bit long double bombed on this because even though + the trunctfdf libcall passed the long double by reference, the + libcall was still marked as LCT_CONST instead of LCT_PURE. */ + + double *copy(long double *first, long double *last, double *result) + { + int n; + for (n = last - first; n > 0; --n) { + *result = *first; + ++first; + ++result; + } + return result; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20020904-1.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/20020904-1.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20020904-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/20020904-1.c Wed Sep 4 22:29:02 2002 *************** *** 0 **** --- 1,19 ---- + /* PR c/7102 */ + + /* Verify that GCC zero-extends integer constants + in unsigned binary operations. */ + + typedef unsigned char u8; + + u8 fun(u8 y) + { + u8 x=((u8)255)/y; + return x; + } + + int main(void) + { + if (fun((u8)2) != 127) + abort (); + return 0; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021015-1.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/20021015-1.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021015-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/20021015-1.c Tue Oct 15 14:45:48 2002 *************** *** 0 **** --- 1,30 ---- + /* PR opt/7409. */ + + extern void abort (void); + + char g_list[] = { '1' }; + + void g (void *p, char *list, int length, char **elementPtr, char **nextPtr) + { + if (*nextPtr != g_list) + abort (); + + **nextPtr = 0; + } + + int main (void) + { + char *list = g_list; + char *element; + int i, length = 100; + + for (i = 0; *list != 0; i++) + { + char *prevList = list; + g (0, list, length, &element, &list); + length -= (list - prevList); + } + + return 0; + } + diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021024-1.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/20021024-1.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021024-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/20021024-1.c Thu Oct 24 17:11:56 2002 *************** *** 0 **** --- 1,43 ---- + /* Origin: PR target/6981 from Mattias Engdegaard . */ + + void exit (int); + void abort (void); + + unsigned long long *cp, m; + + void foo (void) + { + } + + void bar (unsigned rop, unsigned long long *r) + { + unsigned rs1, rs2, rd; + + top: + rs2 = (rop >> 23) & 0x1ff; + rs1 = (rop >> 9) & 0x1ff; + rd = rop & 0x1ff; + + *cp = 1; + m = r[rs1] + r[rs2]; + *cp = 2; + foo(); + if (!rd) + goto top; + r[rd] = 1; + } + + int main(void) + { + static unsigned long long r[64]; + unsigned long long cr; + cp = &cr; + + r[4] = 47; + r[8] = 11; + bar((8 << 23) | (4 << 9) | 15, r); + + if (m != 47 + 11) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021111-1.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/20021111-1.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021111-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/20021111-1.c Mon Nov 11 20:55:31 2002 *************** *** 0 **** --- 1,31 ---- + /* Origin: PR c/8467 */ + + extern void abort (void); + extern void exit (int); + + int aim_callhandler(int sess, int conn, unsigned short family, unsigned short type); + + int aim_callhandler(int sess, int conn, unsigned short family, unsigned short type) + { + static int i = 0; + + if (!conn) + return 0; + + if (type == 0xffff) + { + return 0; + } + + if (i >= 1) + abort (); + + i++; + return aim_callhandler(sess, conn, family, (unsigned short) 0xffff); + } + + int main (void) + { + aim_callhandler (0, 1, 0, 0); + exit (0); + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/extzvsi.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/extzvsi.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/extzvsi.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/extzvsi.c Thu Sep 5 23:05:04 2002 *************** *** 0 **** --- 1,31 ---- + /* Failed on powerpc due to bad extzvsi pattern. */ + + struct ieee + { + unsigned int negative:1; + unsigned int exponent:11; + unsigned int mantissa0:20; + unsigned int mantissa1:32; + } x; + + unsigned int + foo (void) + { + unsigned int exponent; + + exponent = x.exponent; + if (exponent == 0) + return 1; + else if (exponent > 1) + return 2; + return 0; + } + + int + main (void) + { + x.exponent = 1; + if (foo () != 0) + abort (); + return 0; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c Fri Sep 20 03:09:39 2002 *************** *** 0 **** --- 1,51 ---- + /* Copyright (C) 2002 Free Software Foundation. + by Hans-Peter Nilsson , derived from mzero2.c + + In the MMIX port, negdf2 was bogusly expanding -x into 0 - x. */ + + double nzerod = -0.0; + float nzerof = -0.0; + double zerod = 0.0; + float zerof = 0.0; + + void expectd (double, double); + void expectf (float, float); + double negd (double); + float negf (float); + + main () + { + expectd (negd (zerod), nzerod); + expectf (negf (zerof), nzerof); + expectd (negd (nzerod), zerod); + expectf (negf (nzerof), zerof); + exit (0); + } + + void + expectd (double value, double expected) + { + if (value != expected + || memcmp ((void *)&value, (void *) &expected, sizeof (double)) != 0) + abort (); + } + + void + expectf (float value, float expected) + { + if (value != expected + || memcmp ((void *)&value, (void *) &expected, sizeof (float)) != 0) + abort (); + } + + double + negd (double v) + { + return -v; + } + + float + negf (float v) + { + return -v; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/loop-14.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/loop-14.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/loop-14.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/loop-14.c Wed Oct 2 18:08:00 2002 *************** *** 0 **** --- 1,20 ---- + int a3[3]; + + void f(int *a) + { + int i; + + for (i=3; --i;) + a[i] = 42 / i; + } + + int + main () + { + f(a3); + + if (a3[1] != 42 || a3[2] != 21) + abort (); + + exit (0); + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/loop-15.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/loop-15.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/loop-15.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/loop-15.c Thu Sep 26 23:12:17 2002 *************** *** 0 **** --- 1,40 ---- + /* Bombed with a segfault on powerpc-linux. doloop.c generated wrong + loop count. */ + void + foo (unsigned long *start, unsigned long *end) + { + unsigned long *temp = end - 1; + + while (end > start) + *end-- = *temp--; + } + + int + main (void) + { + unsigned long a[5]; + int start, end, k; + + for (start = 0; start < 5; start++) + for (end = 0; end < 5; end++) + { + for (k = 0; k < 5; k++) + a[k] = k; + + foo (a + start, a + end); + + for (k = 0; k <= start; k++) + if (a[k] != k) + abort (); + + for (k = start + 1; k <= end; k++) + if (a[k] != k - 1) + abort (); + + for (k = end + 1; k < 5; k++) + if (a[k] != k) + abort (); + } + + return 0; + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.c-torture/execute/shiftdi.c gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/shiftdi.c *** gcc-3.2/gcc/testsuite/gcc.c-torture/execute/shiftdi.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.c-torture/execute/shiftdi.c Thu Sep 26 10:19:11 2002 *************** *** 0 **** --- 1,20 ---- + /* Failed on sparc with -mv8plus because sparc.c:set_extends() thought + erroneously that SImode ASHIFT chops the upper bits, it does not. */ + + typedef unsigned long long uint64; + + void g(uint64 x, int y, int z, uint64 *p) + { + unsigned w = ((x >> y) & 0xffffffffULL) << (z & 0x1f); + *p |= (w & 0xffffffffULL) << z; + } + + int main(void) + { + uint64 a = 0; + g(0xdeadbeef01234567ULL, 0, 0, &a); + return (a == 0x01234567) ? 0 : 1; + } + + + diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/20021014-1.c gcc-3.2.1/gcc/testsuite/gcc.dg/20021014-1.c *** gcc-3.2/gcc/testsuite/gcc.dg/20021014-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/20021014-1.c Mon Oct 28 18:17:22 2002 *************** *** 0 **** --- 1,30 ---- + /* { dg-do run } */ + /* { dg-options "-O2 -p" } */ + /* { dg-error "profiler" "No profiler support" { target mmix-*-* } 0 } */ + /* Support for -p on solaris2 relies on mcrt1.o which comes with the + vendor compiler. We cannot reiably predict the directory where the + vendor compiler (and thus mcrt1.o) is installed so we can't + necessarily find mcrt1.o even if we have it. */ + /* { dg-error "mcrt1.o" "Optional vendor profiler support missing" { target *-*-solaris2* } 0 } */ + /* Support for -p on irix relies on libprof1.a which doesn't appear to + exist on any irix6 system currently posting testsuite results. */ + /* { dg-error "libprof1.a" "Profiler support missing" { target mips*-*-irix* } 0 } */ + + extern void abort (void); + extern void exit (int); + + int foo (void) + { + static int bar (int x) + { + return x + 3; + } + return bar (1) + bar (2); + } + + int main (void) + { + if (foo () != 9) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/cpp/20020927-1.c gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/20020927-1.c *** gcc-3.2/gcc/testsuite/gcc.dg/cpp/20020927-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/20020927-1.c Sat Sep 28 00:32:16 2002 *************** *** 0 **** --- 1,94 ---- + /* Test case for buffer overflow bug in token stringification. + See PR preprocessor/8055 for details. + Reported by Alexander N. Kabaev . + Test case written by Zack Weinberg . */ + + /* { dg-do preprocess } */ + + #define S(x) #x + + /* Fill up one internal buffer with data. */ + S(1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 1234567890123456789012345678901234567890123456789012345678901234567890 + 12345678901234567890123456789012345678901234567890123) + + /* When stringify_arg() was called with an empty macro argument, it would + advance the buffer pointer by one but fail to check for running past the + end of the buffer. We can only know where the end of the buffer is to + within about eight bytes, so do this sixteen times to be sure of hitting + it. */ + + S() + S() + S() + S() + S() + S() + S() + S() + S() + S() + S() + S() + S() + S() + S() + S() + + /* Now allocate more memory in the buffer, which should provoke a crash. */ + + S(abcdefghijklmnopqrstuvwxyz) + S(abcdefghijklmnopqrstuvwxyz) diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/cpp/_Pragma3.c gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/_Pragma3.c *** gcc-3.2/gcc/testsuite/gcc.dg/cpp/_Pragma3.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/_Pragma3.c Thu Aug 15 19:46:43 2002 *************** *** 0 **** --- 1,11 ---- + /* Copyright (C) 2002 Free Software Foundation, Inc. */ + + /* { dg-do preprocess } */ + + /* Pragma buffers have a NULL "inc" member, which we would dereference + when getting a file's date and time. + + Based on PR 7526. 14 Aug 2002. */ + + #define GCC_PRAGMA(x) _Pragma (#x) + GCC_PRAGMA(GCC dependency "mi1c.h") diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/cpp/_Pragma4.c gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/_Pragma4.c *** gcc-3.2/gcc/testsuite/gcc.dg/cpp/_Pragma4.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/_Pragma4.c Sun Oct 6 09:46:45 2002 *************** *** 0 **** --- 1,12 ---- + /* { dg-do preprocess } */ + + /* Based on Debian GNATS PR 157416. 3 Sep 2002. */ + + #define b foo _Pragma ("bar") baz + a b c + + /* + { dg-final { if ![file exists _Pragma4.i] { return } } } + { dg-final { if { [grep _Pragma4.i "#pragma bar "] != "" } { return } } } + { dg-final { fail "_Pragma4.c: #pragma appearing on its own line" } } + */ diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/cpp/vararg3.c gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/vararg3.c *** gcc-3.2/gcc/testsuite/gcc.dg/cpp/vararg3.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/vararg3.c Thu Aug 15 19:46:43 2002 *************** *** 0 **** --- 1,17 ---- + /* Copyright (C) 2002 Free Software Foundation, Inc. */ + + /* { dg-do preprocess } */ + /* { dg-options "-std=c99" } */ + + /* Source: Neil Booth, 6 Aug 2002. + + Tests that we DTRT with varargs commas for a single-parameter macro + when in standards-conforming mode. */ + + #define f(...) , ## __VA_ARGS__ + + /* The comma from f's expansion should be retained (standards + conforming mode only). Tests that it isn't in non-standards mode + include macro8.c and vararg1.c. */ + #if 2 f() 3 /* { dg-bogus "missing binary operator" } */ + #endif diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/cpp/vararg4.c gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/vararg4.c *** gcc-3.2/gcc/testsuite/gcc.dg/cpp/vararg4.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/cpp/vararg4.c Thu Aug 15 19:46:43 2002 *************** *** 0 **** --- 1,14 ---- + /* Copyright (C) 2002 Free Software Foundation, Inc. */ + + /* { dg-do preprocess } */ + /* { dg-options -std=gnu99 } */ + + /* Source: Neil Booth, 6 Aug 2002. + + Tests that we DTRT with varargs commas. */ + + #define g(a, ...) a , ## __VA_ARGS__ + + /* The comma from g's expansion should be retained. */ + #if g (2, ) 3 /* { dg-bogus "missing binary operator" } */ + #endif diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/noncompile/920923-1.c gcc-3.2.1/gcc/testsuite/gcc.dg/noncompile/920923-1.c *** gcc-3.2/gcc/testsuite/gcc.dg/noncompile/920923-1.c Thu Nov 15 03:55:26 2001 --- gcc-3.2.1/gcc/testsuite/gcc.dg/noncompile/920923-1.c Mon Oct 21 19:06:16 2002 *************** *** 1,35 **** ! typedef BYTE unsigned char; /* { dg-error "syntax error|empty decl" } */ typedef int item_n; typedef int perm_set; ! struct PENT { caddr_t v_addr; };/* { dg-error "parse error|no semicolon" } */ typedef struct PENT prec; typedef struct PENT *prec_t; prec_t mem_hash; ! BYTE *mem_base; /* { dg-error "parse error|no type" } */ struct PTE { ! BYTE *p_page; /* { dg-error "parse error|no semicolon" } */ perm_set p_perms; ! }; /* { dg-error "parse error" } */ typedef struct PTE pte; struct PTP { union { ! struct *PTP p_tablep; /* { dg-error "parse error|no semicolon" } */ struct *PTE p_entry; ! } u; /* { dg-warning "no type or storage class" } */ int valid; ! }; /* { dg-error "parse error" } */ ! typedef struct PTP (u.p_tablep);/* { dg-error "parse error" } */ int pfree=0; int pcount=0; void mmu_walk_find(va) ! caddr_t va; /* { dg-error "parse error|no type" } */ { BYTE *page_addr; if (mmu_base[Level1(va)]->valid==0x0) { l1_base = mmu_base[Level1(va)]->(u.p_tablep) = p_alloc(); ! mmu_base[Level1(va)]->valid = 0x3; /* { dg-error "parse error" } */ for (idx=0; idxvalid = 0x0; goto build_level2; --- 1,49 ---- ! /* This test case contains a large number of syntactic errors. We ! believe the intent of the test is that the compiler simply not ! crash. The set of error messages reported is different when the C ! parser is generated with bison 1.50 than 1.35. It is not worth ! attempting to prevent this. Instead, we use a single dg-error with ! a regexp that will match _all_ the errors indiscriminately. The ! old error/warning/etc markers are kept around for reference, but ! disabled. ! ! Revisit after new (recursive descent) parser is implemented for C. ! -- zw 2002-10-17 */ ! ! /* { dg-error ".*" "many syntax errors" { target *-*-* } 0 } */ ! ! typedef BYTE unsigned char; /* { error "syntax error|empty decl" } */ typedef int item_n; typedef int perm_set; ! struct PENT { caddr_t v_addr; };/* { error "parse error|no semicolon" } */ typedef struct PENT prec; typedef struct PENT *prec_t; prec_t mem_hash; ! BYTE *mem_base; /* { error "parse error|no type" } */ struct PTE { ! BYTE *p_page; /* { error "parse error|no semicolon" } */ perm_set p_perms; ! }; /* { error "parse error" } */ typedef struct PTE pte; struct PTP { union { ! struct *PTP p_tablep; /* { error "parse error|no semicolon" } */ struct *PTE p_entry; ! } u; /* { warning "no type or storage class" } */ int valid; ! }; /* { error "parse error" } */ ! typedef struct PTP (u.p_tablep);/* { error "parse error" } */ int pfree=0; int pcount=0; void mmu_walk_find(va) ! caddr_t va; /* { error "parse error|no type" } */ { BYTE *page_addr; if (mmu_base[Level1(va)]->valid==0x0) { l1_base = mmu_base[Level1(va)]->(u.p_tablep) = p_alloc(); ! mmu_base[Level1(va)]->valid = 0x3; /* { error "parse error" } */ for (idx=0; idxvalid = 0x0; goto build_level2; *************** caddr_t va; /* { dg-error "parse error *** 39,81 **** if (l1_base[Level2(va)]->valid==0x0) { build_level2: l2_base = l1_base[Level2(va)]->(u.p_tablep) = p_alloc(); ! l1_base[Level2(va)]->valid = 0x3; /* { dg-error "parse error" } */ for (idx=0; idxvalid=0x0; goto build_page; } else l2_base = mmu_base[Level2(va)]->(u.p_tablep); ! page_addr = l2_base[Level2(va)]->valid;/* { dg-error "undeclared|no type" } */ ! } /* { dg-error "parse error" } */ void * a_translate(va_op, v_addr) int va_op; ! caddr_t v_addr; /* { dg-error "parse error" } */ { register prec_t bucket; ! register caddr_t p_addr; /* { dg-error "syntax error" } */ ! bucket = mem_hash+((((v_addr)>>ITEMBITS))&hash_mask); /* { dg-error "undeclared|for each function" } */ do { ! if (bucket->v_addr == ((v_addr)>>ITEMBITS) { /* { dg-error "incomplete type|parse error" } */ if(!(bucket->perm_set&va_op)) goto prot_fault; return mem_base + v_addr; } ! } while((bucket++)->v_addr != ((caddr_t)0)); /* { dg-error "parse error" } */ page_miss: ! p_addr = (--bucket)->p_addr; /* { dg-error "undeclared|pointer to" } */ page_type: switch (p_addr) { ! case BUCKET_FULL: /* { dg-error "undeclared" } */ enlarge_hash_table(mem_hash); ! case((caddr_t)0): /* { dg-error "undeclared|parse error" } */ p_addr = fill_item_entry(va_op, v_addr); goto page_type; ! case((caddr_t)1): /* { dg-error "parse error" } */ ! default: ((void)(((0))?0:(__eprintf("Failed assertion`%s'at line%d of`%s'.\n", "FALSE", 327, "b.c"), 0))); } --- 53,95 ---- if (l1_base[Level2(va)]->valid==0x0) { build_level2: l2_base = l1_base[Level2(va)]->(u.p_tablep) = p_alloc(); ! l1_base[Level2(va)]->valid = 0x3; /* { error "parse error" } */ for (idx=0; idxvalid=0x0; goto build_page; } else l2_base = mmu_base[Level2(va)]->(u.p_tablep); ! page_addr = l2_base[Level2(va)]->valid;/* { error "undeclared|no type" } */ ! } /* { error "parse error" } */ void * a_translate(va_op, v_addr) int va_op; ! caddr_t v_addr; /* { error "parse error" } */ { register prec_t bucket; ! register caddr_t p_addr; /* { error "syntax error" } */ ! bucket = mem_hash+((((v_addr)>>ITEMBITS))&hash_mask); /* { error "undeclared|for each function" } */ do { ! if (bucket->v_addr == ((v_addr)>>ITEMBITS) { /* { error "incomplete type|parse error" } */ if(!(bucket->perm_set&va_op)) goto prot_fault; return mem_base + v_addr; } ! } while((bucket++)->v_addr != ((caddr_t)0)); /* { error "parse error" } */ page_miss: ! p_addr = (--bucket)->p_addr; /* { error "undeclared|pointer to" } */ page_type: switch (p_addr) { ! case BUCKET_FULL: /* { error "undeclared" } */ enlarge_hash_table(mem_hash); ! case((caddr_t)0): /* { error "undeclared|parse error" } */ p_addr = fill_item_entry(va_op, v_addr); goto page_type; ! case((caddr_t)1): /* { error "parse error" } */ ! default: ((void)(((0))?0:(__eprintf("Failed assertion`%s'at line%d of`%s'.\n", "FALSE", 327, "b.c"), 0))); } *************** int hash_size; *** 90,98 **** register int idx; bucket = hasht; for(idx=(hash_size*3)-1; idx>=0; idx--) { ! bucket->v_addr = ((caddr_t)0);/* { dg-error "undeclared|pointer to|parse error" } */ ! bucket->p_addr = ((caddr_t)0);/* { dg-error "pointer to|parse error" } */ ! bucket->perm_set = VA_EMPTY; /* { dg-error "undeclared|pointer to" } */ } } --- 104,112 ---- register int idx; bucket = hasht; for(idx=(hash_size*3)-1; idx>=0; idx--) { ! bucket->v_addr = ((caddr_t)0);/* { error "undeclared|pointer to|parse error" } */ ! bucket->p_addr = ((caddr_t)0);/* { error "pointer to|parse error" } */ ! bucket->perm_set = VA_EMPTY; /* { error "undeclared|pointer to" } */ } } *************** extern void *calloc(__SIZE_TYPE__, __SIZ *** 101,121 **** void init_mem() { ! mem_base = (BYTE *) calloc(1024, (1<<13)); /* { dg-error "undeclared|parse error" } */ ! ((void)((mem_base != (BYTE *)0) /* { dg-error "parse error" } */ ? 0 : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n", "mem_base != (BYTE *)0", 366, "b.c"), 0))); ! hash_num = INIT_NUM_ENTRIES * 3; /* { dg-error "undeclared" } */ ! mem_hash = (prec_t) calloc(hash_num, sizeof(prec)); /* { dg-error "incomplete type" } */ ((void)((mem_hash != (prec_t)0) ? 0 : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n", "mem_hash != (prec_t)0", 370, "b.c"), 0))); flush_hash(mem_hash, 32); ! build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" { xfail "xstormy16-*-*" } } */ } struct tm { --- 115,135 ---- void init_mem() { ! mem_base = (BYTE *) calloc(1024, (1<<13)); /* { error "undeclared|parse error" } */ ! ((void)((mem_base != (BYTE *)0) /* { error "parse error" } */ ? 0 : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n", "mem_base != (BYTE *)0", 366, "b.c"), 0))); ! hash_num = INIT_NUM_ENTRIES * 3; /* { error "undeclared" } */ ! mem_hash = (prec_t) calloc(hash_num, sizeof(prec)); /* { error "incomplete type" } */ ((void)((mem_hash != (prec_t)0) ? 0 : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n", "mem_hash != (prec_t)0", 370, "b.c"), 0))); flush_hash(mem_hash, 32); ! build_ptables(mem_base, 1024*(1<<13)); /* { bogus "integer overflow" "int smaller than 32 bits" } */ } struct tm { diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/typedef-init.c gcc-3.2.1/gcc/testsuite/gcc.dg/typedef-init.c *** gcc-3.2/gcc/testsuite/gcc.dg/typedef-init.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/typedef-init.c Sat Nov 2 10:28:50 2002 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + /* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */ + + /* This code used to be a legitimate, if dubious, extension. However, + it's been broken since GCC 3.0 (caused ICE) and we have now removed + the extension. See PR c/7353. */ + + /* Case A: just the bare name = initializer. */ + + typedef A = 0; /* { dg-error "initialized" "A" } */ + A a; /* { dg-bogus "" "A error cascade" } */ + + /* Case B: with a type also. */ + + typedef int B = 0; /* { dg-error "initialized" "B" } */ + B b; /* { dg-bogus "" "B error cascade" } */ diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/typeof-1.c gcc-3.2.1/gcc/testsuite/gcc.dg/typeof-1.c *** gcc-3.2/gcc/testsuite/gcc.dg/typeof-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/typeof-1.c Sun Sep 1 20:10:07 2002 *************** *** 0 **** --- 1,27 ---- + /* Test typeof with __asm redirection. */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + extern int foo1; + extern int foo1 __asm ("bar1"); + int foo1 = 1; + + extern int foo2 (int); + extern int foo2 (int) __asm ("bar2"); + int foo2 (int x) + { + return x; + } + + extern int foo3; + extern __typeof (foo3) foo3 __asm ("bar3"); + int foo3 = 1; + + extern int foo4 (int); + extern __typeof (foo4) foo4 __asm ("bar4"); + int foo4 (int x) + { + return x; + } + + // { dg-final { scan-assembler-not "foo" } } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/typeof-2.c gcc-3.2.1/gcc/testsuite/gcc.dg/typeof-2.c *** gcc-3.2/gcc/testsuite/gcc.dg/typeof-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/typeof-2.c Wed Sep 4 08:57:30 2002 *************** *** 0 **** --- 1,29 ---- + /* Test typeof with __asm redirection. */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + extern int foo1 (int x) __asm ("baz1"); + int bar1 (int x) { return x; } + extern __typeof (bar1) foo1 __attribute ((weak, alias ("bar1"))); + + extern int foo2 (int x) __attribute__ ((const)); + extern __typeof (foo2) foo2 __asm ("baz2"); + int bar2 (int x) + { + return foo2 (x) + foo2 (x) + foo2 (x) + foo2 (x) + foo2 (x) + foo2 (x); + } + + extern int foo3 (int x); + extern __typeof (foo3) foo3 __asm ("baz3"); + int bar3 (int x) + { + return foo3 (x) + foo3 (x) + foo3 (x) + foo3 (x) + foo3 (x) + foo3 (x); + } + + // { dg-final { scan-assembler-not "foo1" } } + // { dg-final { scan-assembler "baz1" } } + // { dg-final { scan-assembler-not "foo2" } } + // { dg-final { scan-assembler "baz2" } } + // { dg-final { scan-assembler-not "baz2.*baz2.*baz2.*baz2.*baz2.*baz2" } } + // { dg-final { scan-assembler-not "foo3" } } + // { dg-final { scan-assembler "baz3.*baz3.*baz3.*baz3.*baz3.*baz3" } } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/vla-2.c gcc-3.2.1/gcc/testsuite/gcc.dg/vla-2.c *** gcc-3.2/gcc/testsuite/gcc.dg/vla-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/gcc/testsuite/gcc.dg/vla-2.c Fri Oct 25 22:11:19 2002 *************** *** 0 **** --- 1,29 ---- + /* { dg-do compile } */ + /* { dg-options "-std=gnu99" } */ + + /* These are crash tests related to PR middle-end/6994; see also + g++.dg/ext/vla1.C. Note that at present A and C cannot be inlined. */ + + static inline void A (int i) + { + struct S { int ar[1][i]; } s; + + s.ar[0][0] = 0; + } + + void B(void) + { + A(23); + } + + static inline void C (int i) + { + union U { int ar[1][i]; } u; + + u.ar[0][0] = 0; + } + + void D(void) + { + C(23); + } diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/wchar_t-1.c gcc-3.2.1/gcc/testsuite/gcc.dg/wchar_t-1.c *** gcc-3.2/gcc/testsuite/gcc.dg/wchar_t-1.c Mon Apr 22 01:36:17 2002 --- gcc-3.2.1/gcc/testsuite/gcc.dg/wchar_t-1.c Thu Nov 7 21:17:18 2002 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-Wall" } */ - /* { dg-excess-errors "Newlib has no wchar.h" { target mmix-knuth-mmixware cris-*-elf } } */ /* Compile with -Wall to get a warning if built-in and system wchar_t don't match. */ --- 1,5 ---- diff -Nrc3pad gcc-3.2/gcc/testsuite/gcc.dg/wint_t-1.c gcc-3.2.1/gcc/testsuite/gcc.dg/wint_t-1.c *** gcc-3.2/gcc/testsuite/gcc.dg/wint_t-1.c Mon Apr 22 01:36:17 2002 --- gcc-3.2.1/gcc/testsuite/gcc.dg/wint_t-1.c Thu Nov 7 21:17:18 2002 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-Wall" } */ - /* { dg-excess-errors "Newlib has no wchar.h" { target mmix-knuth-mmixware cris-*-elf } } */ /* Compile with -Wall to get a warning if built-in and system wint_t don't match. */ --- 1,5 ---- diff -Nrc3pad gcc-3.2/gcc/testsuite/lib/target-supports.exp gcc-3.2.1/gcc/testsuite/lib/target-supports.exp *** gcc-3.2/gcc/testsuite/lib/target-supports.exp Thu Jul 19 18:08:17 2001 --- gcc-3.2.1/gcc/testsuite/lib/target-supports.exp Fri Sep 27 02:13:06 2002 *************** proc check_weak_available { } { *** 36,41 **** --- 36,47 ---- return 1 } + # All solaris2 targets should support it + + if { [regexp ".*-solaris2.*" $target_triplet] } { + return 1 + } + # DEC OSF/1/Digital UNIX/Tru64 UNIX supports it if { [regexp "alpha.*osf.*" $target_triplet] } { diff -Nrc3pad gcc-3.2/gcc/toplev.c gcc-3.2.1/gcc/toplev.c *** gcc-3.2/gcc/toplev.c Mon May 27 05:48:15 2002 --- gcc-3.2.1/gcc/toplev.c Sat Nov 2 00:57:23 2002 *************** int align_labels_max_skip; *** 879,884 **** --- 879,888 ---- int align_functions; int align_functions_log; + /* Like align_functions_log above, but used by front-ends to force the + minimum function alignment. Zero means no alignment is forced. */ + int force_align_functions_log; + /* Table of supported debugging formats. */ static const struct { *************** rest_of_compilation (decl) *** 2407,2412 **** --- 2411,2419 ---- DECL_INITIAL (decl) = 0; goto exit_rest_of_compilation; } + else if (TYPE_P (parent)) + /* A function in a local class should be treated normally. */ + break; /* If requested, consider whether to make this function inline. */ if ((DECL_INLINE (decl) && !flag_no_inline) *************** rest_of_compilation (decl) *** 3016,3028 **** block. The loop infrastructure does the real job for us. */ flow_loops_find (&loops, LOOP_TREE); /* Estimate using heuristics if no profiling info is available. */ if (flag_guess_branch_prob) estimate_probability (&loops); - if (rtl_dump_file) - flow_loops_dump (&loops, rtl_dump_file, NULL, 0); - flow_loops_free (&loops); } life_analysis (insns, rtl_dump_file, PROP_FINAL); --- 3023,3035 ---- block. The loop infrastructure does the real job for us. */ flow_loops_find (&loops, LOOP_TREE); + if (rtl_dump_file) + flow_loops_dump (&loops, rtl_dump_file, NULL, 0); + /* Estimate using heuristics if no profiling info is available. */ if (flag_guess_branch_prob) estimate_probability (&loops); flow_loops_free (&loops); } life_analysis (insns, rtl_dump_file, PROP_FINAL); diff -Nrc3pad gcc-3.2/gcc/tradcpp.c gcc-3.2.1/gcc/tradcpp.c *** gcc-3.2/gcc/tradcpp.c Wed May 22 05:58:48 2002 --- gcc-3.2.1/gcc/tradcpp.c Mon Nov 11 06:38:47 2002 *************** output_line_command (ip, op, conditional *** 4104,4110 **** sprintf (line_cmd_buf, "# %d \"%s\"", ip->lineno, ip->fname); if (file_change != same_file) strcat (line_cmd_buf, file_change == enter_file ? " 1" : " 2"); ! if (system_include_depth > 0) strcat (line_cmd_buf, " 3"); len = strlen (line_cmd_buf); line_cmd_buf[len++] = '\n'; --- 4104,4110 ---- sprintf (line_cmd_buf, "# %d \"%s\"", ip->lineno, ip->fname); if (file_change != same_file) strcat (line_cmd_buf, file_change == enter_file ? " 1" : " 2"); ! if (system_include_depth > (file_change == leave_file)) strcat (line_cmd_buf, " 3"); len = strlen (line_cmd_buf); line_cmd_buf[len++] = '\n'; diff -Nrc3pad gcc-3.2/gcc/tree-inline.c gcc-3.2.1/gcc/tree-inline.c *** gcc-3.2/gcc/tree-inline.c Wed Apr 17 01:43:57 2002 --- gcc-3.2.1/gcc/tree-inline.c Fri Oct 25 22:11:09 2002 *************** expand_call_inline (tp, walk_subtrees, d *** 762,767 **** --- 762,768 ---- inline_data *id; tree t; tree expr; + tree stmt; tree chain; tree fn; tree scope_stmt; *************** expand_call_inline (tp, walk_subtrees, d *** 853,862 **** for the return statements within the function to jump to. The type of the statement expression is the return type of the function call. */ ! expr = build1 (STMT_EXPR, TREE_TYPE (TREE_TYPE (fn)), NULL_TREE); /* There is no scope associated with the statement-expression. */ STMT_EXPR_NO_SCOPE (expr) = 1; ! /* Local declarations will be replaced by their equivalents in this map. */ st = id->decl_map; --- 854,863 ---- for the return statements within the function to jump to. The type of the statement expression is the return type of the function call. */ ! expr = build1 (STMT_EXPR, TREE_TYPE (TREE_TYPE (fn)), make_node (COMPOUND_STMT)); /* There is no scope associated with the statement-expression. */ STMT_EXPR_NO_SCOPE (expr) = 1; ! stmt = STMT_EXPR_STMT (expr); /* Local declarations will be replaced by their equivalents in this map. */ st = id->decl_map; *************** expand_call_inline (tp, walk_subtrees, d *** 871,877 **** parameters. */ expand_calls_inline (&arg_inits, id); /* And add them to the tree. */ ! STMT_EXPR_STMT (expr) = chainon (STMT_EXPR_STMT (expr), arg_inits); /* Record the function we are about to inline so that we can avoid recursing into it. */ --- 872,878 ---- parameters. */ expand_calls_inline (&arg_inits, id); /* And add them to the tree. */ ! COMPOUND_BODY (stmt) = chainon (COMPOUND_BODY (stmt), arg_inits); /* Record the function we are about to inline so that we can avoid recursing into it. */ *************** expand_call_inline (tp, walk_subtrees, d *** 906,913 **** SCOPE_BEGIN_P (scope_stmt) = 1; SCOPE_NO_CLEANUPS_P (scope_stmt) = 1; remap_block (scope_stmt, DECL_ARGUMENTS (fn), id); ! TREE_CHAIN (scope_stmt) = STMT_EXPR_STMT (expr); ! STMT_EXPR_STMT (expr) = scope_stmt; /* Tell the debugging backends that this block represents the outermost scope of the inlined function. */ --- 907,914 ---- SCOPE_BEGIN_P (scope_stmt) = 1; SCOPE_NO_CLEANUPS_P (scope_stmt) = 1; remap_block (scope_stmt, DECL_ARGUMENTS (fn), id); ! TREE_CHAIN (scope_stmt) = COMPOUND_BODY (stmt); ! COMPOUND_BODY (stmt) = scope_stmt; /* Tell the debugging backends that this block represents the outermost scope of the inlined function. */ *************** expand_call_inline (tp, walk_subtrees, d *** 915,948 **** BLOCK_ABSTRACT_ORIGIN (SCOPE_STMT_BLOCK (scope_stmt)) = DECL_ORIGIN (fn); /* Declare the return variable for the function. */ ! STMT_EXPR_STMT (expr) ! = chainon (STMT_EXPR_STMT (expr), declare_return_variable (id, &use_stmt)); /* After we've initialized the parameters, we insert the body of the function itself. */ ! inlined_body = &STMT_EXPR_STMT (expr); while (*inlined_body) inlined_body = &TREE_CHAIN (*inlined_body); *inlined_body = copy_body (id); - /* Close the block for the parameters. */ - scope_stmt = build_stmt (SCOPE_STMT, DECL_INITIAL (fn)); - SCOPE_NO_CLEANUPS_P (scope_stmt) = 1; - remap_block (scope_stmt, NULL_TREE, id); - STMT_EXPR_STMT (expr) - = chainon (STMT_EXPR_STMT (expr), scope_stmt); - /* After the body of the function comes the RET_LABEL. This must come before we evaluate the returned value below, because that evalulation may cause RTL to be generated. */ ! STMT_EXPR_STMT (expr) ! = chainon (STMT_EXPR_STMT (expr), build_stmt (LABEL_STMT, id->ret_label)); /* Finally, mention the returned value so that the value of the statement-expression is the returned value of the function. */ ! STMT_EXPR_STMT (expr) = chainon (STMT_EXPR_STMT (expr), use_stmt); /* Clean up. */ splay_tree_delete (id->decl_map); --- 916,949 ---- BLOCK_ABSTRACT_ORIGIN (SCOPE_STMT_BLOCK (scope_stmt)) = DECL_ORIGIN (fn); /* Declare the return variable for the function. */ ! COMPOUND_BODY (stmt) ! = chainon (COMPOUND_BODY (stmt), declare_return_variable (id, &use_stmt)); /* After we've initialized the parameters, we insert the body of the function itself. */ ! inlined_body = &COMPOUND_BODY (stmt); while (*inlined_body) inlined_body = &TREE_CHAIN (*inlined_body); *inlined_body = copy_body (id); /* After the body of the function comes the RET_LABEL. This must come before we evaluate the returned value below, because that evalulation may cause RTL to be generated. */ ! COMPOUND_BODY (stmt) ! = chainon (COMPOUND_BODY (stmt), build_stmt (LABEL_STMT, id->ret_label)); /* Finally, mention the returned value so that the value of the statement-expression is the returned value of the function. */ ! COMPOUND_BODY (stmt) = chainon (COMPOUND_BODY (stmt), use_stmt); ! ! /* Close the block for the parameters. */ ! scope_stmt = build_stmt (SCOPE_STMT, DECL_INITIAL (fn)); ! SCOPE_NO_CLEANUPS_P (scope_stmt) = 1; ! remap_block (scope_stmt, NULL_TREE, id); ! COMPOUND_BODY (stmt) ! = chainon (COMPOUND_BODY (stmt), scope_stmt); /* Clean up. */ splay_tree_delete (id->decl_map); *************** walk_tree (tp, func, data, htab_) *** 1223,1228 **** --- 1224,1235 ---- { WALK_SUBTREE_TAIL (TREE_TYPE (*tp)); } + else if (TREE_CODE_CLASS (code) == 't') + { + WALK_SUBTREE (TYPE_SIZE (*tp)); + WALK_SUBTREE (TYPE_SIZE_UNIT (*tp)); + /* Also examine various special fields, below. */ + } result = (*lang_hooks.tree_inlining.walk_subtrees) (tp, &walk_subtrees, func, data, htab); *************** walk_tree (tp, func, data, htab_) *** 1319,1324 **** --- 1326,1332 ---- return NULL_TREE; #undef WALK_SUBTREE + #undef WALK_SUBTREE_TAIL } /* Like walk_tree, but does not walk duplicate nodes more than *************** copy_tree_r (tp, walk_subtrees, data) *** 1377,1384 **** if (TREE_CODE (*tp) == SCOPE_STMT) SCOPE_STMT_BLOCK (*tp) = NULL_TREE; } ! else if (TREE_CODE_CLASS (code) == 't') ! /* There's no need to copy types, or anything beneath them. */ *walk_subtrees = 0; return NULL_TREE; --- 1385,1392 ---- if (TREE_CODE (*tp) == SCOPE_STMT) SCOPE_STMT_BLOCK (*tp) = NULL_TREE; } ! else if (TREE_CODE_CLASS (code) == 't' && !variably_modified_type_p (*tp)) ! /* Types only need to be copied if they are variably modified. */ *walk_subtrees = 0; return NULL_TREE; diff -Nrc3pad gcc-3.2/gcc/tree.c gcc-3.2.1/gcc/tree.c *** gcc-3.2/gcc/tree.c Fri Apr 26 23:46:01 2002 --- gcc-3.2.1/gcc/tree.c Fri Oct 25 22:11:09 2002 *************** tree_size (node) *** 286,292 **** case '1': /* a unary arithmetic expression */ case '2': /* a binary arithmetic expression */ return (sizeof (struct tree_exp) ! + (TREE_CODE_LENGTH (code) - 1) * sizeof (char *)); case 'c': /* a constant */ /* We can't use TREE_CODE_LENGTH for INTEGER_CST, since the number of --- 286,292 ---- case '1': /* a unary arithmetic expression */ case '2': /* a binary arithmetic expression */ return (sizeof (struct tree_exp) ! + TREE_CODE_LENGTH (code) * sizeof (char *) - sizeof (char *)); case 'c': /* a constant */ /* We can't use TREE_CODE_LENGTH for INTEGER_CST, since the number of *************** tree_size (node) *** 304,315 **** case 'x': /* something random, like an identifier. */ { ! size_t length; ! length = (sizeof (struct tree_common) ! + TREE_CODE_LENGTH (code) * sizeof (char *)); ! if (code == TREE_VEC) ! length += (TREE_VEC_LENGTH (node) - 1) * sizeof (char *); ! return length; } default: --- 304,315 ---- case 'x': /* something random, like an identifier. */ { ! size_t length; ! length = (sizeof (struct tree_common) ! + TREE_CODE_LENGTH (code) * sizeof (char *)); ! if (code == TREE_VEC) ! length += TREE_VEC_LENGTH (node) * sizeof (char *) - sizeof (char *); ! return length; } default: *************** int_fits_type_p (c, type) *** 4335,4340 **** --- 4335,4399 ---- } } + /* Returns true if T is, contains, or refers to a type with variable + size. This concept is more general than that of C99 'variably + modified types': in C99, a struct type is never variably modified + because a VLA may not appear as a structure member. However, in + GNU C code like: + + struct S { int i[f()]; }; + + is valid, and other languages may define similar constructs. */ + + bool + variably_modified_type_p (type) + tree type; + { + /* If TYPE itself has variable size, it is variably modified. + + We do not yet have a representation of the C99 '[*]' syntax. + When a representation is chosen, this function should be modified + to test for that case as well. */ + if (TYPE_SIZE (type) + && TYPE_SIZE (type) != error_mark_node + && TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) + return true; + + /* If TYPE is a pointer or reference, it is variably modified if + the type pointed to is variably modified. */ + if ((TREE_CODE (type) == POINTER_TYPE + || TREE_CODE (type) == REFERENCE_TYPE) + && variably_modified_type_p (TREE_TYPE (type))) + return true; + + /* If TYPE is an array, it is variably modified if the array + elements are. (Note that the VLA case has already been checked + above.) */ + if (TREE_CODE (type) == ARRAY_TYPE + && variably_modified_type_p (TREE_TYPE (type))) + return true; + + /* If TYPE is a function type, it is variably modified if any of the + parameters or the return type are variably modified. */ + if (TREE_CODE (type) == FUNCTION_TYPE + || TREE_CODE (type) == METHOD_TYPE) + { + tree parm; + + if (variably_modified_type_p (TREE_TYPE (type))) + return true; + for (parm = TYPE_ARG_TYPES (type); + parm && parm != void_list_node; + parm = TREE_CHAIN (parm)) + if (variably_modified_type_p (TREE_VALUE (parm))) + return true; + } + + /* The current language may have other cases to check, but in general, + all other types are not variably modified. */ + return (*lang_hooks.tree_inlining.var_mod_type_p) (type); + } + /* Given a DECL or TYPE, return the scope in which it was declared, or NULL_TREE if there is no containing scope. */ diff -Nrc3pad gcc-3.2/gcc/tree.h gcc-3.2.1/gcc/tree.h *** gcc-3.2/gcc/tree.h Wed Apr 17 01:43:57 2002 --- gcc-3.2.1/gcc/tree.h Fri Oct 25 22:11:09 2002 *************** extern tree integer_types[itk_none]; *** 2052,2057 **** --- 2052,2084 ---- #define long_long_unsigned_type_node integer_types[itk_unsigned_long_long] + /* A pointer-to-function member type looks like: + + struct { + __P __pfn; + ptrdiff_t __delta; + }; + + If __pfn is NULL, it is a NULL pointer-to-member-function. + + (Because the vtable is always the first thing in the object, we + don't need its offset.) 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 + addresses, or that use the lowest bit to tell one ISA from another, + for example. For such architectures, we use the lowest bit of + DELTA instead of the lowest bit of the PFN, and DELTA will be + multiplied by 2. */ + + enum ptrmemfunc_vbit_where_t + { + ptrmemfunc_vbit_in_pfn, + ptrmemfunc_vbit_in_delta + }; + #define NULL_TREE (tree) NULL /* Approximate positive square root of a host double. This is for *************** struct obstack; *** 2911,2916 **** --- 2938,2944 ---- /* In tree.c */ extern int really_constant_p PARAMS ((tree)); extern int int_fits_type_p PARAMS ((tree, tree)); + extern bool variably_modified_type_p PARAMS ((tree)); extern int tree_log2 PARAMS ((tree)); extern int tree_floor_log2 PARAMS ((tree)); extern void preserve_data PARAMS ((void)); diff -Nrc3pad gcc-3.2/gcc/unroll.c gcc-3.2.1/gcc/unroll.c *** gcc-3.2/gcc/unroll.c Sat Jun 15 01:12:06 2002 --- gcc-3.2.1/gcc/unroll.c Thu Oct 3 19:40:44 2002 *************** unroll_loop (loop, insn_count, strength_ *** 1188,1193 **** --- 1188,1196 ---- /* Keep track of the unroll factor for the loop. */ loop_info->unroll_number = unroll_number; + /* And whether the loop has been preconditioned. */ + loop_info->preconditioned = loop_preconditioned; + /* For each biv and giv, determine whether it can be safely split into a different variable for each unrolled copy of the loop body. We precalculate and save this info here, since computing it is *************** find_splittable_givs (loop, bl, unroll_t *** 2868,2874 **** value = tem; } ! splittable_regs[REGNO (v->new_reg)] = value; } else { --- 2871,2877 ---- value = tem; } ! splittable_regs[reg_or_subregno (v->new_reg)] = value; } else { *************** find_splittable_givs (loop, bl, unroll_t *** 3047,3067 **** itself does not have to be splittable. */ if (v->same && v->same->giv_type == DEST_REG) ! addr_combined_regs[REGNO (v->same->new_reg)] = v->same; if (GET_CODE (v->new_reg) == REG) { /* This giv maybe hasn't been combined with any others. Make sure that it's giv is marked as splittable here. */ ! splittable_regs[REGNO (v->new_reg)] = value; /* Make it appear to depend upon itself, so that the giv will be properly split in the main loop above. */ if (! v->same) { v->same = v; ! addr_combined_regs[REGNO (v->new_reg)] = v; } } --- 3050,3070 ---- itself does not have to be splittable. */ if (v->same && v->same->giv_type == DEST_REG) ! addr_combined_regs[reg_or_subregno (v->same->new_reg)] = v->same; if (GET_CODE (v->new_reg) == REG) { /* This giv maybe hasn't been combined with any others. Make sure that it's giv is marked as splittable here. */ ! splittable_regs[reg_or_subregno (v->new_reg)] = value; /* Make it appear to depend upon itself, so that the giv will be properly split in the main loop above. */ if (! v->same) { v->same = v; ! addr_combined_regs[reg_or_subregno (v->new_reg)] = v; } } *************** find_splittable_givs (loop, bl, unroll_t *** 3098,3104 **** if (! v->ignore) count = REG_IV_CLASS (ivs, REGNO (v->src_reg))->biv_count; ! splittable_regs_updates[REGNO (v->new_reg)] = count; } result++; --- 3101,3107 ---- if (! v->ignore) count = REG_IV_CLASS (ivs, REGNO (v->src_reg))->biv_count; ! splittable_regs_updates[reg_or_subregno (v->new_reg)] = count; } result++; *************** loop_iterations (loop) *** 3997,4008 **** } return 0; } - else if (comparison_code == EQ) - { - if (loop_dump_stream) - fprintf (loop_dump_stream, "Loop iterations: EQ comparison loop.\n"); - return 0; - } else if (GET_CODE (final_value) != CONST_INT) { if (loop_dump_stream) --- 4000,4005 ---- *************** loop_iterations (loop) *** 4014,4019 **** --- 4011,4053 ---- } return 0; } + else if (comparison_code == EQ) + { + rtx inc_once; + + if (loop_dump_stream) + fprintf (loop_dump_stream, "Loop iterations: EQ comparison loop.\n"); + + inc_once = gen_int_mode (INTVAL (initial_value) + INTVAL (increment), + GET_MODE (iteration_var)); + + if (inc_once == final_value) + { + /* The iterator value once through the loop is equal to the + comparision value. Either we have an infinite loop, or + we'll loop twice. */ + if (increment == const0_rtx) + return 0; + loop_info->n_iterations = 2; + } + else + loop_info->n_iterations = 1; + + if (GET_CODE (loop_info->initial_value) == CONST_INT) + loop_info->final_value + = gen_int_mode ((INTVAL (loop_info->initial_value) + + loop_info->n_iterations * INTVAL (increment)), + GET_MODE (iteration_var)); + else + loop_info->final_value + = plus_constant (loop_info->initial_value, + loop_info->n_iterations * INTVAL (increment)); + loop_info->final_equiv_value + = gen_int_mode ((INTVAL (initial_value) + + loop_info->n_iterations * INTVAL (increment)), + GET_MODE (iteration_var)); + return loop_info->n_iterations; + } /* Final_larger is 1 if final larger, 0 if they are equal, otherwise -1. */ if (unsigned_p) diff -Nrc3pad gcc-3.2/gcc/varasm.c gcc-3.2.1/gcc/varasm.c *** gcc-3.2/gcc/varasm.c Mon Jun 10 21:44:41 2002 --- gcc-3.2.1/gcc/varasm.c Wed Oct 30 19:20:18 2002 *************** asm_output_aligned_bss (file, decl, name *** 535,541 **** const char *name; int size, align; { - ASM_GLOBALIZE_LABEL (file, name); bss_section (); ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT)); #ifdef ASM_DECLARE_OBJECT_NAME --- 535,540 ---- *************** assemble_start_function (decl, fnname) *** 1194,1199 **** --- 1193,1200 ---- /* Tell assembler to move to target machine's alignment for functions. */ align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT); + if (align < force_align_functions_log) + align = force_align_functions_log; if (align > 0) { ASM_OUTPUT_ALIGN (asm_out_file, align); diff -Nrc3pad gcc-3.2/gcc/version.c gcc-3.2.1/gcc/version.c *** gcc-3.2/gcc/version.c Wed Aug 14 09:01:17 2002 --- gcc-3.2.1/gcc/version.c Tue Nov 19 08:04:31 2002 *************** *** 1,4 **** #include "ansidecl.h" #include "version.h" ! const char *const version_string = "3.2"; --- 1,4 ---- #include "ansidecl.h" #include "version.h" ! const char *const version_string = "3.2.1"; diff -Nrc3pad gcc-3.2/gnats.html gcc-3.2.1/gnats.html *** gcc-3.2/gnats.html Wed Aug 14 09:31:13 2002 --- gcc-3.2.1/gnats.html Tue Nov 19 18:11:48 2002 *************** *** 4,30 **** Submitting Bug Reports using GNATS !

    gccbug and gnatsweb

    !

    GNATS is the GNU ! bug tracking system, and it is now used to track GCC bug reports, as ! well. Before submitting a bug report, please read the general instructions.

    !

    The preferred way of submitting a bug report is by means of the gccbug ! program that is automatically installed with current versions of GCC ! and submits the bug report by e-mail.

    ! !

    If this is not possible, please use the gnatsweb ! interface. Make sure you include an e-mail address, so we can inform you when the status of your report changes.

    !

    Both techniques use the same bug database.

    !

    Filling out a report

    The bug report form provides a number of fields; you'll need to fill-out most of those (as indicated below) to provide a complete --- 4,30 ---- Submitting Bug Reports using GNATS +

    Submitting Bug Reports using GNATS

    + !

    gnatsweb and gccbug

    !

    GNATS, the GNU bug tracking system, is used to track GCC bug reports. ! Before submitting a bug report, please read the general instructions.

    !

    The preferred way to submit a bug report is by means of the ! gnatsweb ! interface. Make sure you include an e-mail address, so we can inform you when the status of your report changes.

    !

    Another way is to use the gccbug program that is ! automatically installed with current versions of GCC, which submits the bug ! report by e-mail.

    +

    Both techniques use the same GNATS bug database.

    !

    Filling out a report

    The bug report form provides a number of fields; you'll need to fill-out most of those (as indicated below) to provide a complete diff -Nrc3pad gcc-3.2/include/ChangeLog gcc-3.2.1/include/ChangeLog *** gcc-3.2/include/ChangeLog Wed Aug 14 09:00:39 2002 --- gcc-3.2.1/include/ChangeLog Tue Nov 19 17:49:31 2002 *************** *** 1,3 **** --- 1,20 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-03 Roger Sayle + DJ Delorie + + * getopt.h: Avoid prototyping getopt with no arguments in C++. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/include/getopt.h gcc-3.2.1/include/getopt.h *** gcc-3.2/include/getopt.h Wed Mar 14 19:44:38 2001 --- gcc-3.2.1/include/getopt.h Sun Nov 3 23:45:49 2002 *************** struct option *** 111,117 **** errors, only prototype getopt for the GNU C library. */ extern int getopt (int argc, char *const *argv, const char *shortopts); #else /* not __GNU_LIBRARY__ */ ! # if !defined (HAVE_DECL_GETOPT) extern int getopt (); # endif #endif /* __GNU_LIBRARY__ */ --- 111,117 ---- errors, only prototype getopt for the GNU C library. */ extern int getopt (int argc, char *const *argv, const char *shortopts); #else /* not __GNU_LIBRARY__ */ ! # if !defined (HAVE_DECL_GETOPT) && !defined (__cplusplus) extern int getopt (); # endif #endif /* __GNU_LIBRARY__ */ diff -Nrc3pad gcc-3.2/libf2c/ChangeLog gcc-3.2.1/libf2c/ChangeLog *** gcc-3.2/libf2c/ChangeLog Wed Aug 14 09:00:42 2002 --- gcc-3.2.1/libf2c/ChangeLog Tue Nov 19 17:49:48 2002 *************** *** 1,3 **** --- 1,19 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + Mon Oct 7 00:32:38 2002 Kaveh R. Ghazi + + * Makefile.in (all): Fix multilib parallel build. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libf2c/Makefile.in gcc-3.2.1/libf2c/Makefile.in *** gcc-3.2/libf2c/Makefile.in Fri May 3 18:41:12 2002 --- gcc-3.2.1/libf2c/Makefile.in Mon Oct 7 04:37:02 2002 *************** F2CEXT = abort derf derfc ef1asc ef1cmc *** 121,127 **** # the dependency) and then (perhaps) builds multilibs. all: all-unilib ! $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="all-unilib" # `all-unilib' is the overall target in the absence of multilibs, # meant to be invoked via multi-do for multilibs. --- 121,127 ---- # the dependency) and then (perhaps) builds multilibs. all: all-unilib ! : $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="all-unilib" # `all-unilib' is the overall target in the absence of multilibs, # meant to be invoked via multi-do for multilibs. diff -Nrc3pad gcc-3.2/libf2c/libF77/Version.c gcc-3.2.1/libf2c/libF77/Version.c *** gcc-3.2/libf2c/libF77/Version.c Wed Aug 14 09:01:25 2002 --- gcc-3.2.1/libf2c/libF77/Version.c Tue Nov 19 08:16:39 2002 *************** static char junk[] = "\n@(#)LIBF77 VERSI *** 3,9 **** /* */ ! char __G77_LIBF77_VERSION__[] = "3.2 20020814 (release)"; /* 2.00 11 June 1980. File version.c added to library. --- 3,9 ---- /* */ ! char __G77_LIBF77_VERSION__[] = "3.2.1 20021119 (release)"; /* 2.00 11 June 1980. File version.c added to library. diff -Nrc3pad gcc-3.2/libf2c/libI77/Version.c gcc-3.2.1/libf2c/libI77/Version.c *** gcc-3.2/libf2c/libI77/Version.c Wed Aug 14 09:01:28 2002 --- gcc-3.2.1/libf2c/libI77/Version.c Tue Nov 19 08:16:41 2002 *************** static char junk[] = "\n@(#) LIBI77 VERS *** 3,9 **** /* */ ! char __G77_LIBI77_VERSION__[] = "3.2 20020814 (release)"; /* 2.01 $ format added --- 3,9 ---- /* */ ! char __G77_LIBI77_VERSION__[] = "3.2.1 20021119 (release)"; /* 2.01 $ format added diff -Nrc3pad gcc-3.2/libf2c/libU77/Version.c gcc-3.2.1/libf2c/libU77/Version.c *** gcc-3.2/libf2c/libU77/Version.c Wed Aug 14 09:01:32 2002 --- gcc-3.2.1/libf2c/libU77/Version.c Tue Nov 19 08:16:42 2002 *************** *** 1,6 **** static char junk[] = "\n@(#) LIBU77 VERSION 19980709\n"; ! char __G77_LIBU77_VERSION__[] = "3.2 20020814 (release)"; #include --- 1,6 ---- static char junk[] = "\n@(#) LIBU77 VERSION 19980709\n"; ! char __G77_LIBU77_VERSION__[] = "3.2.1 20021119 (release)"; #include diff -Nrc3pad gcc-3.2/libffi/ChangeLog gcc-3.2.1/libffi/ChangeLog *** gcc-3.2/libffi/ChangeLog Wed Aug 14 09:00:44 2002 --- gcc-3.2.1/libffi/ChangeLog Tue Nov 19 17:49:50 2002 *************** *** 1,3 **** --- 1,19 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-10-07 Kaveh R. Ghazi + + * Makefile.am (all-multi): Fix multilib parallel build. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libffi/Makefile.am gcc-3.2.1/libffi/Makefile.am *** gcc-3.2/libffi/Makefile.am Sun Mar 17 01:04:48 2002 --- gcc-3.2.1/libffi/Makefile.am Mon Oct 7 04:37:02 2002 *************** distclean-recursive: distclean-multi *** 195,201 **** maintainer-clean-recursive: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 195,201 ---- maintainer-clean-recursive: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/libffi/Makefile.in gcc-3.2.1/libffi/Makefile.in *** gcc-3.2/libffi/Makefile.in Sun Mar 17 01:04:48 2002 --- gcc-3.2.1/libffi/Makefile.in Mon Oct 7 04:37:02 2002 *************** distclean-recursive: distclean-multi *** 735,741 **** maintainer-clean-recursive: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 735,741 ---- maintainer-clean-recursive: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/libiberty/ChangeLog gcc-3.2.1/libiberty/ChangeLog *** gcc-3.2/libiberty/ChangeLog Wed Aug 14 09:00:49 2002 --- gcc-3.2.1/libiberty/ChangeLog Tue Nov 19 17:49:53 2002 *************** *** 1,3 **** --- 1,19 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-10-07 Kaveh R. Ghazi + + * Makefile.in (all): Fix multilib parallel build. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libiberty/Makefile.in gcc-3.2.1/libiberty/Makefile.in *** gcc-3.2/libiberty/Makefile.in Tue Jan 22 20:03:29 2002 --- gcc-3.2.1/libiberty/Makefile.in Mon Oct 7 04:37:03 2002 *************** SUBDIRS = testsuite *** 99,105 **** # FIXME: add @BUILD_INFO@ once we're sure it works for everyone. all: stamp-picdir $(TARGETLIB) needed-list required-list all-subdir ! @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all .PHONY: check installcheck check: check-subdir --- 99,105 ---- # FIXME: add @BUILD_INFO@ once we're sure it works for everyone. all: stamp-picdir $(TARGETLIB) needed-list required-list all-subdir ! @: $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all .PHONY: check installcheck check: check-subdir diff -Nrc3pad gcc-3.2/libjava/ChangeLog gcc-3.2.1/libjava/ChangeLog *** gcc-3.2/libjava/ChangeLog Wed Aug 14 09:00:52 2002 --- gcc-3.2.1/libjava/ChangeLog Tue Nov 19 17:49:56 2002 *************** *** 1,3 **** --- 1,19 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-10-07 Kaveh R. Ghazi + + * Makefile.am (all-multi): Fix multilib parallel build. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libjava/Makefile.am gcc-3.2.1/libjava/Makefile.am *** gcc-3.2/libjava/Makefile.am Mon Jun 24 00:15:47 2002 --- gcc-3.2.1/libjava/Makefile.am Mon Oct 7 04:37:03 2002 *************** distclean-recursive: distclean-multi *** 1964,1970 **** maintainer-clean-recursive: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 1964,1970 ---- maintainer-clean-recursive: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/libjava/Makefile.in gcc-3.2.1/libjava/Makefile.in *** gcc-3.2/libjava/Makefile.in Wed Aug 14 09:31:10 2002 --- gcc-3.2.1/libjava/Makefile.in Tue Nov 19 18:11:44 2002 *************** distclean-recursive: distclean-multi *** 3477,3483 **** maintainer-clean-recursive: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 3477,3483 ---- maintainer-clean-recursive: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/libjava/libltdl/ChangeLog gcc-3.2.1/libjava/libltdl/ChangeLog *** gcc-3.2/libjava/libltdl/ChangeLog Wed Aug 14 09:00:55 2002 --- gcc-3.2.1/libjava/libltdl/ChangeLog Tue Nov 19 17:49:59 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libjava/testsuite/ChangeLog gcc-3.2.1/libjava/testsuite/ChangeLog *** gcc-3.2/libjava/testsuite/ChangeLog Wed Aug 14 09:00:59 2002 --- gcc-3.2.1/libjava/testsuite/ChangeLog Tue Nov 19 17:50:02 2002 *************** *** 1,3 **** --- 1,27 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-10-24 Tom Tromey + + * libjava.lang/Primes.java: Removed. + * libjava.lang/Primes.out: Removed. + + 2002-08-16 H.J. Lu + + * lib/libjava.exp (gcc_version): Removed. + (libgcj_jar): New. + (libjava_init): Set libgcj_jar with tcl glob. + (libjava_arguments): Use libgcj_jar. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libjava/testsuite/lib/libjava.exp gcc-3.2.1/libjava/testsuite/lib/libjava.exp *** gcc-3.2/libjava/testsuite/lib/libjava.exp Fri May 17 21:11:35 2002 --- gcc-3.2.1/libjava/testsuite/lib/libjava.exp Fri Aug 16 21:08:37 2002 *************** proc libjava_init { args } { *** 112,118 **** global TOOL_EXECUTABLE global original_ld_library_path global env objdir ! global env gcc_version global tool_root_dir global libjava_libgcc_s_path --- 112,118 ---- global TOOL_EXECUTABLE global original_ld_library_path global env objdir ! global env libgcj_jar global tool_root_dir global libjava_libgcc_s_path *************** proc libjava_init { args } { *** 130,139 **** } } ! # Determine the version so we can find the libgcj jar file. ! set text [eval exec "$GCJ_UNDER_TEST --version 2>@ stdout"] ! regexp -- "gcj \[^ \]+ (\[^ \]+) .*" $text ignore gcc_version ! verbose "jar file is libgcj-$gcc_version.jar" # FIXME: This finds libgcj.spec for the default multilib. # If thread models differ between multilibs, this has to be moved --- 130,138 ---- } } ! # Find the libgcj jar file. ! set libgcj_jar [glob $objdir/../libgcj-*.jar] ! verbose "jar file is $libgcj_jar" # FIXME: This finds libgcj.spec for the default multilib. # If thread models differ between multilibs, this has to be moved *************** proc libjava_arguments {{mode compile}} *** 271,277 **** global runtests global env global tool_root_dir ! global gcc_version global libjava_libgcc_s_path if [info exists LIBJAVA] { --- 270,276 ---- global runtests global env global tool_root_dir ! global libgcj_jar global libjava_libgcc_s_path if [info exists LIBJAVA] { *************** proc libjava_arguments {{mode compile}} *** 337,345 **** verbose "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)" # Set the CLASSPATH environment variable ! verbose "CLASSPATH is .:$srcdir/$subdir:$objdir:$objdir/../libgcj-$gcc_version.jar" global env ! set env(CLASSPATH) ".:$srcdir/$subdir:$objdir:$objdir/../libgcj-$gcc_version.jar" if {$mode == "link"} { global wrapper_file wrap_compile_flags; --- 336,344 ---- verbose "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)" # Set the CLASSPATH environment variable ! verbose "CLASSPATH is .:$srcdir/$subdir:$objdir:$libgcj_jar" global env ! set env(CLASSPATH) ".:$srcdir/$subdir:$objdir:$libgcj_jar" if {$mode == "link"} { global wrapper_file wrap_compile_flags; diff -Nrc3pad gcc-3.2/libjava/testsuite/libjava.lang/Primes.java gcc-3.2.1/libjava/testsuite/libjava.lang/Primes.java *** gcc-3.2/libjava/testsuite/libjava.lang/Primes.java Mon Aug 9 06:35:56 1999 --- gcc-3.2.1/libjava/testsuite/libjava.lang/Primes.java Thu Jan 1 00:00:00 1970 *************** *** 1,213 **** - // Primes.java - - /** Copyright 1998 - * Roedy Green - * Canadian Mind Products - * 5317 Barker Avenue - * Burnaby, BC Canada V5H 2N6 - * tel: (604) 435-3016 - * mailto:roedy@mindprod.com - * http://mindprod.com - */ - // May be freely distributed for any purpose but military - - import java.util.BitSet; - - /** - * @author Roedy Green - * @version 1.10 1998 November 10 - * Calculate primes using Eratostheses Sieve. - * Tell if a given number is prime. - * Find a prime just below a given number. - * Find a prime just above a given number. - */ - - /* - * version 1.1 1998 November 10 - new address and phone. - */ - class Primes - { - - /** - * constructors - */ - Primes() - { - ensureCapacity(1000); - } - - /** - * @param capacity - largest number you will be asking if prime. - * If give too small a number, it will automatically grow by - * recomputing the sieve array. - */ - Primes (int capacity) - { - ensureCapacity(capacity); - } - - /** - * @param candidate - is this a prime? - */ - public boolean isPrime(int candidate) - { - ensureCapacity(candidate); - if (candidate < 3) return candidate != 0; - if (candidate % 2 == 0 ) return false; - return !b.get(candidate/2); - } - - /** - * @return first prime higher than candidate - */ - public int above(int candidate) - { - do - { - // see what we can find in the existing sieve - for (int i=candidate+1; i<= sieveCapacity; i++) - { - if (isPrime(i)) return i; - } - // Keep building ever bigger sieves till we succeed. - // The next prime P' is between P+2 and P^2 - 2. - // However that is a rather pessimistic upper bound. - // Ideally some theorem would tell us how big we need to build - // to find one. - ensureCapacity(Math.max(candidate*2, sieveCapacity*2)); - } // end do - while (true); - } // end above - - /** - * @param return first prime less than candidate - */ - public int below (int candidate) - { - for (candidate--; candidate > 0; candidate--) - { - if (isPrime(candidate)) return candidate; - } - // candidate was 1 or 0 or -ve - return 0; - } - - /** - * calc all primes in the range 1..n, - * not the first n primes. - * @param n, highest candidate, not necessarily prime. - * @return list of primes 1..n in an array - */ - public final int[] getPrimes(int n) - { - // calculate the primes - ensureCapacity(n); - - // pass 1: count primes - int countPrimes = 0; - for (int i = 0; i <= n; i++) - { - if (isPrime(i)) countPrimes++; - } - - // pass 2: construct array of primes - int [] primes = new int[countPrimes]; - countPrimes = 0; - for (int i = 0; i <= n; i++) - { - if (isPrime(i)) primes[countPrimes++] = i; - } - return primes; - } // end getPrimes - - /** - * calculate the sieve, bit map of all primes 0..n - * @param n highest number evalutated by the sieve, not necessarily prime. - */ - private final void sieve ( int n ) - { - // Presume BitSet b set is big enough for our purposes. - // Presume all even numbers are already marked composite, effectively. - // Presume all odd numbers are already marked prime (0 in bit map). - int last = (int)(Math.sqrt(n))+1; - for (int candidate = 3; candidate <= last; candidate += 2) - { - // only look at odd numbers - if (!b.get(candidate/2) /* if candidate is prime */) - { - // Our candidate is prime. - // Only bother to mark multiples of primes. Others already done. - // no need to mark even multiples, already done - int incr = candidate*2; - for ( int multiple = candidate + incr; multiple < n; multiple += incr) - { - b.set(multiple/2); // mark multiple as composite - } // end for multiple - } // end if - } // end for candidate - // at this point our sieve b is correct, except for 0..2 - } // end sieve - - /** - * Ensure have a sieve to tackle primes as big as n. - * If we don't allocate a sieve big enough and calculate it. - * @param n - ensure sieve big enough to evaluate n for primality. - */ - private void ensureCapacity (int n) - { - if ( n > sieveCapacity ) - { - b = new BitSet((n+1)/2); - // starts out all 0, presume all numbers prime - sieveCapacity = n; - sieve(n); - } - // otherwise existing sieve is fine - } // end ensureCapacity - - private int sieveCapacity; - // biggest number we have computed in our sieve. - // our BitSet array is indexed 0..N (odd only) - - private BitSet b; /* true for each odd number if is composite */ - - /** - * Demonstrate and test the methods - */ - public static void main (String[] args) - { - // print primes 1..101 - Primes calc = new Primes(106); - int[] primes = calc.getPrimes(101); - for (int i=0; i + + * Makefile.in (all): Fix multilib parallel build. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libobjc/Makefile.in gcc-3.2.1/libobjc/Makefile.in *** gcc-3.2/libobjc/Makefile.in Mon Feb 11 18:10:05 2002 --- gcc-3.2.1/libobjc/Makefile.in Mon Oct 7 04:37:04 2002 *************** FLAGS_TO_PASS = \ *** 136,142 **** "tooldir=$(tooldir)" all: libobjc.la $(OBJC_BOEHM_GC) ! $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all # User-visible header files. --- 136,142 ---- "tooldir=$(tooldir)" all: libobjc.la $(OBJC_BOEHM_GC) ! : $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all # User-visible header files. diff -Nrc3pad gcc-3.2/libstdc++-v3/ChangeLog gcc-3.2.1/libstdc++-v3/ChangeLog *** gcc-3.2/libstdc++-v3/ChangeLog Wed Aug 14 09:01:05 2002 --- gcc-3.2.1/libstdc++-v3/ChangeLog Tue Nov 19 17:50:09 2002 *************** *** 1,3 **** --- 1,595 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-17 Jakub Jelinek + + * config/linker-map.gnu: Export _S_construct even if size_t is + unsigned long. Collapse std::codecvt::codecvt(size_t) + and std::codecvt::codecvt(size_t) into one export pattern. + + 2002-11-13 Benjamin Kosnik + + * config/linker-map.gnu: Export all _S_construct. + + 2002-11-06 David Edelsohn + + PR 8362 + * testsuite/abi_check.cc: Add guards to prevent -mpower ICE. + + 2002-11-05 Jonathan Wakely + + * include/std/std_sstream.h + (basic_stringbuf::str(const __string_type&)): + Prefer data() to c_str() thus avoiding assigning the + unnecessary NULL-terminator. + + 2002-11-05 Benjamin Kosnik + + PR libstdc++/8258 + * include/bits/istream.tcc (istream::readsome): Don't set eofbit + for null buffer. + (istream::operator>>(_CharT*)): Use traits_type. + (istream::ws): Same. + (istream::operator>>(string)): Same. + * testsuite/27_io/istream_unformatted.cc (test11): Add. + + 2002-11-05 Benjamin Kosnik + + PR libstdc++/7219 + * include/bits/ios_base.h (ios_base::streampos): Add. + (ios_base::streamoff): Add. + * testsuite/27_io/ios_base_type.cc: New. + + 2002-11-05 Paolo Carlini + + PR libstdc++/8466 + * include/std/std_sstream.h + (basic_stringbuf::str(const __string_type&)): + Cannot use simple assignment since the COW-nature of v3 + basic_string is not taken into account in basic_stringbuf. + * testsuite/27_io/stringstream_members.cc: Add test04 from PR. + + 2002-11-04 Benjamin Kosnik + + * config/linker-map.gnu: Export string operator+. + Export __default_alloc_template::_S_force_new. + * testsuite/abi_check.cc: Output tweaks. + + 2002-11-04 Benjamin Kosnik + + PR libstdc++/8172 + * src/string-inst.cc: Add instantiation. + + 2002-11-04 Christian Ehrhardt + + PR libstdc++/8197 + * config/link-map.gnu: Export math stubbs. + + 2002-11-04 Benjamin Kosnik + + PR libstdc++/8318 + * include/std/std_iostream.h: Tweak. + * include/std/std_iosfwd.h: Add _GLIBCPP_USE_WCHAR_T. + * include/std/std_iomanip.h: Same. + * include/bits/stringfwd.h: Same. + * include/bits/basic_string.tcc: Same. + * include/bits/sstream.tcc: Same. + * include/bits/fstream.tcc: Same. + * include/bits/basic_ios.tcc: Same. + * include/bits/streambuf.tcc: Same. + * include/bits/locale_facets.tcc: Same. + + 2002-11-01 Benjamin Kosnik + + PR libstdc++/8348 + * include/bits/istream.tcc (istream::tellg): Remove sentry bits. + (istream::seekg): Same. + * testsuite/27_io/istream_seeks.cc (test06): New. + + 2002-11-01 John Carter + + PR libstdc++/7961 + * include/bits/basic_string.tcc + (compare(const _CharT* __s)): Don't access __s past its length. + + 2002-11-01 Hans-Peter Nilsson + + PR other/3337 + PR bootstrap/6763 + PR bootstrap/8122 + * testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Use + __typeof__ (r.rlim_cur), not rlim_t in declaration of limit. + + 2002-10-29 Paolo Carlini + + PR libstdc++/8347 + * include/bits/basic_string.tcc + (string::_S_construct(_InIter, _InIter, const _Alloc&, + forward_iterator_tag)): Do not throw logic error if + __beg == NULL && __end == __beg. + (string::string(const _CharT*, const _Alloc&)): Tweak. + * testsuite/21_strings/ctor_copy_dtor.cc: Add test05 from PR. + + 2002-10-23 Jakub Jelinek + + * testsuite/22_locale/num_put_members_char.cc (test01): Swap size + and decimal_point arguments of find. + * testsuite/22_locale/num_put_members_wchar_t.cc (test01): Likewise. + + 2002-10-22 Jakub Jelinek + + * Makefile.am (check-abi, new-abi-baseline): Use @glibcpp_srcdir@ + instead of ${top_srcdir}. + * Makefile.in: Rebuilt. + + 2002-10-21 Phil Edwards + + * configure.in: Use target, not target_alias, when matching triplet + patterns. + * configure: Regenerate. + + 2002-10-16 Benjamin Kosnik + + * include/bits/locale_facets.h (__timepunct::__timepunct): Allocate + _M_name_timepunct. + (__timepunct::~__timepunct): Deallocate, remove specialization + declarations. + (messages::messages): Allocate _M_name_messages. + (messages::~messages): Deallocate. + (messages_byname): Same. + * config/locale/gnu/time_members.cc (__timepunct::~__timepunct): + Remove. + * config/locale/generic/time_members.cc (__timepunct::~__timepunct): + Remove. + + * docs/html/install.html: Add eqs_MX, en_PH to required locales list. + + 2002-10-16 Benjamin Kosnik + + * src/globals.cc (__gnu_cxx::c_locale_impl_compat): Add, alias to + c_locale_impl. + * testsuite/abi_check.cc (line_to_symbol_info): Collect size info. + * docs/html/abi.txt: Update. + + 2002-10-16 Benjamin Kosnik + + * testsuite/22_locale/static_members.cc (test02): Less provincial. + + 2002-10-16 Benjamin Kosnik + + * testsuite/22_locale/static_members.cc (test02): Disable for + systems without named locale support. + * testsuite/22_locale/ctor_copy_dtor.cc (test04): Don't assume + running the testsuites in "C" environment. + Add new tests. + * docs/html/22_locale/locale.html: Update. + + 2002-10-16 Benjamin Kosnik + + * testsuite/abi_check.cc (hash): Specialize. + Simplify. Check compatible symbol versions. + * config/linker-map.gnu: Clarify, explicitly export + std::codecvt::c* symbols. + + * testsuite/22_locale/static_members.cc (test02): Avoid null strings. + + 2002-10-16 Benjamin Kosnik + + * testsuite/22_locale/static_members.cc (test02): Fix. + + 2002-10-16 Benjamin Kosnik + + * acconfig.h (_GLIBCPP_SYMVER): Add. + (_GLIBCPP_ASM_SYMVER): Add. + * acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Define _GLIBCPP_SYMVER. + * aclocal.m4: Regenerate. + * config.h.in: Regenerate. + * configure: Regenerate. + * include/bits/c++config (_GLIBCPP_AT_AT): Define, as an expedient + hack around m4 issues with quoting '@'. + * src/locale.cc: Use _GLIBCPP_ASM_SYMVER. + * src/globals.cc (__gnu_cxx): Same. + + * testsuite/22_locale/ctor_copy_dtor.cc (test04): Fix for + + 2002-10-16 Benjamin Kosnik + + * config/linker-map.gnu (GLIBCPP_3.2.1): Add. + (GLIBCPP_3.2): Don't export locale::_S_*. + * src/ios.cc: Move globals into __gnu_cxx. Make old exported + symbols match. + * src/locale.cc: Same. + * src/localename.cc: Same. + + 2002-10-16 Benjamin Kosnik + + * src/locale.cc: Fix comments, move ctors together. + * testsuite/22_locale/static_members.cc (test03): Add. + + 2002-10-16 Paolo Carlini + Benjamin Kosnik + + * include/bits/localefwd.h (class locale): Add static member + _S_num_extra_categories, encoding the number of additional + categories. + Change _S_num_categories to _S_categories_size. + (class locale::_Impl): Add _M_c_cats. + (class locale::_Impl::_M_names): Change to array of chars. + (class locale::_Impl::_M_check_same_name): Use + _S_extra_categories_size, tweak. + (locale::locale(const locale&, _Facet*)): Ditto. + * src/locale.cc (locale::locale(const char* )): Rewrite to deal + with the environment in a POSIX-compliant way while being thread + safe. + (locale::name()): Update to output POSIX environment strings. + * src/localename.cc + (locale::_Impl::_Impl(const _Impl&, size_t): Use + _S_categories_size_*, tweak. + (locale::_Impl::_Impl(facet**, size_t, bool)): Ditto. + (locale::_Impl::_Impl(const char*, size_t)): Name each category + individually. + (locale::_Impl::_M_replace_categories): Use strcpy. + + * include/bits/locale_facets.h (numpunct::_M_initialize_numpunct): + Change default argument to NULL from _S_c_locale. + (timepunct::_M_initialize_timepunct): Same. + _S_c_locale cleanups. + * src/codecvt.c: _S_c_locale simplification. + * src/ctype.c: Same. + * src/globals.cc: Add fake_name. + * src/locale-inst.cc: Remove extra includes. + * src/locale.cc: Remove extra includes. + Add _S_extra_categories_size definition. + Correct "C" initialization. + (locale::facet::facet): Don't initialize _S_c_locale. + (locale::facet::_M_remove_reference): Adjust. + * src/localename: Use facet_vec, facet_name. + (locale::_Impl::_Impl(facet** __f, size_t __refs, bool)): Set + facet ref counts to one. Initialize _S_c_locale. + (locale::_Impl::_M_install_facet(id*, facet*)): Adjust facet ref + counts when installing unilaterally. + + * config/locale/generic/c_locale.cc: Add _S_categories definition. + * config/locale/generic/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro. + * config/locale/generic/time_members.cc: _S_c_locale cleanup. + + * config/locale/gnu/c_locale.cc: Add _S_categories definition. + (_S_destroy_c_locale): Move checks against _S_c_locale here. + * config/locale/gnu/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro. + * config/locale/gnu/ctype_members.cc: Simplify _S_destroy_c_locale + calls, _S_c_locale usage. + * config/locale/gnu/monetary_members.cc: Same, tweaks. + * config/locale/gnu/monetary_members.cc: Same. + * config/locale/gnu/time_members.cc: Same. + * config/os/gnu-linux/ctype_noninline.h: Use locale::classic(). + + * docs/html/22_locale/locale.html: Add bits about global locales + and "C" setlocale. + + * testsuite/22_locale/facet.cc (test02): Add. + * testsuite/22_locale/static_members.cc (test02): Add. + * testsuite/22_locale/ctor_copy_dtor.cc (test04): Add. + + 2002-10-11 Gabriel Dos Reis + + * include/std/std_limits.h (__glibcpp_char_digits10): Fix Typo. + (__glibcpp_char_digits10): Likewise. + + 2002-10-10 Jonathan Lennox + + PR libstdc++/8071, libstdc++/8127, c++/6745 + * streambuf.tcc (__copy_streambufs): Handle cases where + __sbin->in_avail() returns 0, or where __sbin doesn't set gptr(). + * testsuite/27_io/ostream_inserter_other.cc (test05): Add. + + 2002-10-07 Kaveh R. Ghazi + + * Makefile.am (all-multi): Fix multilib parallel build. + + 2002-10-01 Phil Edwards + + * Makefile.am (check-abi): Add @ to rule. + * Makefile.in: Regenerated. + + 2002-10-01 Phil Edwards + + PR libstdc++/8096 + * include/bits/stl_deque.h (deque::_M_range_check): Throw + out_of_range, not range_error. + + 2002-09-28 Paolo Carlini + + * include/bits/locale_facets.tcc (num_put::_M_widen_int): + Deal correctly with grouped, showbased (oct or hex) zero. + * testsuite/22_locale/num_put_members_char.cc: Add test05. + * testsuite/22_locale/num_put_members_wchar_t.cc: Ditto. + + 2002-09-25 Phil Edwards + + Bulk documentation merge (copy) from trunk. + * docs/doxygen/run_doxygen, docs/html/Makefile, docs/html/abi.txt, + docs/html/configopts.html, docs/html/documentation.html, + docs/html/explanations.html, docs/html/install.html, + docs/html/makedoc.awk, docs/html/17_intro/C++STYLE, + docs/html/17_intro/RELEASE-NOTES, docs/html/17_intro/contribute.html, + docs/html/17_intro/howto.html, docs/html/17_intro/license.html, + 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/22_locale/codecvt.html, docs/html/22_locale/ctype.html, + docs/html/22_locale/howto.html, docs/html/22_locale/locale.html, + docs/html/22_locale/messages.html, docs/html/23_containers/howto.html, + docs/html/24_iterators/howto.html, docs/html/25_algorithms/howto.html, + docs/html/26_numerics/howto.html, docs/html/27_io/howto.html, + docs/html/ext/howto.html, docs/html/ext/sgiexts.html, + docs/html/faq/index.html, docs/html/faq/index.txt: Merge from trunk. + + 2002-09-21 Phil Edwards + + * testsuite/abi_check.cc: Pull shell fragments out into... + * config/abi/extract_symvers: ...here. New file. + * Makefile.am (check_abi): Change to match. + (new-abi-baseline): New target. + * Makefile.in: Regenerated. + + 2002-09-16 Loren J. Rittle + + libstdc++/7922 + * include/ext/stl_rope.h (rope<>): Qualify dependent names + with `typename'. + + 2002-09-16 Benjamin Kosnik + + * include/bits/codecvt.h: Remove __s. + * config/locale/gnu/codecvt_members.cc: Remove _M_c_locale_codecvt + usage, substitute _S_c_locale. + + 2002-09-12 Benjamin Kosnik + + * libmath/Makefile.am (LIBTOOL): Use --tag CC always for this + directory. + * libmath/Makefile.in: Regenerate. + * src/Makefile.am: Tweak comment. + * src/Makefile.in: Regenerate. + + * config/locale/gnu/c_locale.h: Remove warnings. + Inject __uselocale into __gnu_cxx. + * config/locale/generic/c_locale.h: Match. + + 2002-09-12 Benjamin Kosnik + + * include/bits/locale_facets.tcc (__convert_from_v): Remove. + * config/locale/gnu/c_locale.h (__convert_from_v): Add. + * config/locale/generic/c_locale.h (__convert_from_v): Add. + + 2002-09-12 Paolo Carlini + + * include/bits/locale_facets.tcc (__convert_from_v): + Use __uselocale instead of setlocale for glibc 2.3+. + + 2002-09-12 Benjamin Kosnik + + * src/Makefile.am (sources): Edit. + (target_sources): New. + (target_sources_extra): New. + * src/Makefile.in: Regenerate. + * acinclude.m4: Set CCODECVT_CC. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * src/locale.cc: Move ctype definitions... + * src/ctype.cc: ...here. New file. + * src/locale.cc: Move codecvt definitions... + * src/codecvt.cc: ...here. + * config/generic/codecvt_members.cc: ...and here. + * config/gnu/codecvt_members.cc: ...and here. + * include/bits/codecvt.h: Tweak. + * include/bits/locale_facets: Tweak. + + * src/bitset.cc: Correct license text. + * src/concept-inst.cc: Same. + * src/strstream.cc: Same. + * src/vterminate.cc: Same. + + 2002-09-10 Danny Smith + + * include/bits/locale_facets.tcc (__convert_from_v): + Replace strdup with ISO malloc and strcpy. + + 2002-09-09 Benjamin Kosnik + + * src/misc-inst.cc: Remove some instantiations. + + * testsuite/abi_check.cc: Make output results more verbose. + + * config/os/gnu-linux/ctype_base.h: Remove shadow headers injections. + + 2002-09-07 Jakub Jelinek + + * config/locale/generic/messages_members.cc: Add specialization for + messages. + * config/locale/ieee_1003.1-20021/messages_members.cc: Likewise. + + 2002-09-06 Jakub Jelinek + + * configure.target: Use cpu_include_dir="config/cpu/sparc" for all + sparc targets. + * config/cpu/sparc/bits/atomicity.h: New file. + * config/cpu/sparc/sparc32/bits/atomicity.h: Removed. + * config/cpu/sparc/sparc64/bits/atomicity.h: Removed. + + 2002-09-06 Jakub Jelinek + + * config/os/gnu-linux/bits/ctype_noninline.h + [_GLIBCPP_USE_SHADOW_HEADERS]: Remove using _C_legacy::__ctype_*. + (ctype::classic_table): If _GLIBCPP_C_LOCALE_GNU, return + _S_c_locale->__ctype_b, otherwise temporarily switch to "C" locale + and return __ctype_b. + (ctype::ctype(__c_locale, const mask*, bool, size_t)): If not + _GLIBCPP_C_LOCALE_GNU, temporarily switch to "C" locale and + initialize using __ctype_{b,tolower,toupper}. + (ctype::ctype(const mask*, bool, size_t)): If + _GLIBCPP_C_LOCALE_GNU, initialize using + _S_c_locale->__ctype_{b,tolower,toupper}, otherwise temporarily + switch to "C" locale and initialize using __ctype_{b,tolower,toupper}. + + 2002-09-05 Loren J. Rittle + + Move from mainline. + * src/Makefile.am (AUTOMAKE_OPTIONS): Use cygnus-style generation. + * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Likewise. + * src/Makefile.in: Regenerate (explicitly with --cygnus option). + * testsuite/Makefile.in: Likewise. + + 2002-09-05 Paolo Carlini + Roland McGrath + + PR libstdc++/7811 + * src/locale.cc (locale::locale(__s)): Use getenv instead + of setenv for the environment locale. + * testsuite/22_locale/ctor_copy_dtor.cc (test03): New. + + 2002-09-05 Jakub Jelinek + + * config/abi/ia64-unknown-linux-gnu: Add. + * config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt: New file. + * config/abi/alphaev67-unknown-linux-gnu: Add. + * config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt: New file. + + 2002-09-05 Phil Edwards + + * testsuite/Makefile.am: Use LD_RUN_PATH when linking abi_check. + Fix spelling in comment. + * testsuite/Makefile.in: Regenerate. + * testsuite/abi_check.cc: Use string literals to build 'cmd' rather + than 'quote' and 'bslash'. + + 2002-09-05 Jakub Jelinek + + * config/locale/gnu/ctype_members.cc (ctype::do_widen(char)): + Switch to _M_c_locale_ctype around btowc call. + (ctype::do_widen(const char*, const char *, wchar_t*)): + Switch to _M_c_locale_ctype around mbsrtowcs call. + (ctype::do_narrow(char)): Switch to _M_c_locale_ctype around + wctob call. + (ctype::do_narrow(const char*, const char *, wchar_t*)): + Switch to _M_c_locale_ctype around wcsrtombs call. + + 2002-09-05 Jakub Jelinek + + * config/locale/gnu/monetary_members.cc + (moneypunct::_M_initialize_moneypunct, + moneypunct::_M_initialize_moneypunct): Use + __uselocale instead of setlocale for glibc 2.3. + + 2002-09-05 Jakub Jelinek + + * config/locale/generic/c++locale_internal.h: New header. + * config/locale/gnu/c++locale_internal.h: New header. + * config/locale/gnu/c_locale.cc: Include it. + * config/locale/gnu/collate_members.cc: Include it. + * config/locale/gnu/ctype_members.cc: Include it. + * config/locale/gnu/messages_members.cc: Include it. + * config/locale/gnu/monetary_members.cc: Include it. + * config/locale/gnu/numeric_members.cc: Include it. + * config/locale/gnu/time_members.cc: Include it. + (_M_put): Reorder __strftime_l and __wcsftime_l arguments to match + glibc. + (_M_initialize_timepunct): Initialize _M_c_locale_timepunct for + C locale. + * acinclude.m4: Include string.h when testing strcoll_l. + For glibc 2.3 provide __-prefixed prototypes. + (CLOCALE_INTERNAL_H): Set, add AC_LINK_FILES line. + * aclocal.m4, configure: Rebuilt. + + 2002-09-05 Benjamin Kosnik + + * include/bits/locale_facets.h: Add declaration of specialization + here. + * config/locale/gnu/messages_members.cc: Add specialization for + messages. + * config/locale/gnu/messages_members.h: Remove generic definition + of do_get. + + 2002-08-26 Phil Edwards + + * Makefile.am (check-abi): Specify current directory. + * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Fix shell syntax, use + abi_baseline_triplet in baseline_file. + * Makefile.in, aclocal.m4, configure: Regenerate. + * configure.target: Add abi_baseline_triplet with default. + * testsuite/abi_check.cc: More error checking. + + 2002-08-25 Benjamin Kosnik + + * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Set + GLIBCPP_BUILD_ABI_CHECK based on cross compiling, build, host + variables. + * aclocal.m4: Regenerate. + * testsuite/Makefile.am (noinst_PROGRAMS): Make conditional on + native compiling. + * testsuite/Makefile.in: Regenerate. + + 2002-08-22 Benjamin Kosnik + Phil Edwards + Ulrich Drepper + + * Makefile.am (check-abi): New rule. + * Makefile.in: Regenerate. + * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Export baseline_file. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * testsuite/Makefile.am (noinst_PROGRAMS): Add abi_check. + (abi_check_SOURCES): Add. + * testsuite/Makefile.in: Regenerate. + * testsuite/abi_check.cc: New file. + * config/abi: Add. + * config/abi/i686-pc-linux-gnu: Add. + * config/abi/i686-pc-linux-gnu/baseline_symbols.txt: New file. + + 2002-08-19 Benjamin Kosnik + + * configure.in (libtool_VERSION): Update to 5:1:0. + * configure: Regenerate. + + 2002-08-15 Benjamin Kosnik + + * include/ext/stdio_filebuf.h (stdio_filebuf): Explicitly set + _M_buf_size_opt to zero when unbuffering. + * include/bits/fstream.tcc (filebuf::showmanyc): Simplify. + Consistency checks for _M_buf_size_opt. + + Revert PR libstdc++/7445 + * src/locale.cc (locale::classic): Revert. + + * docs/html/17_intro/TODO: Add. + + 2002-08-15 Danny Smith + Benjamin Kosnik + + * include/bits/istream.tcc (basic_istream::ignore): Use sbumpc, + not snextc. + * testsuite/27_io/narrow_stream_objects.cc (test10): Add. + + 2002-08-15 Danny Smith + + * config/os/newlib/ctype_inline.h (is): Don't offset _M_table. + (scan_is): Use this->is. + (scan_not): Likewise. + + 2002-08-15 Rick Danos + + PR libstdc++/7461 + * config/os/newlib/ctype_noninline.h (classic_table): Add offset. + * config/os/newlib/ctype_inline.h (is): Use static_cast. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libstdc++-v3/Makefile.am gcc-3.2.1/libstdc++-v3/Makefile.am *** gcc-3.2/libstdc++-v3/Makefile.am Mon Jan 28 22:13:02 2002 --- gcc-3.2.1/libstdc++-v3/Makefile.am Tue Oct 22 21:50:47 2002 *************** check-script-install: $(top_builddir)/mk *** 44,49 **** --- 44,69 ---- cd testsuite; \ @glibcpp_builddir@/mkcheck 1) + # Use 'new-abi-baseline' to create an initial symbol file. Then run + # 'check-abi' to test for changes against that file. + baseline_file = @baseline_file@ + check-abi: $(top_builddir)/testsuite/abi_check + -@(cd testsuite; \ + @glibcpp_srcdir@/config/abi/extract_symvers \ + ../src/.libs/libstdc++.so \ + ./current_symbols.txt; \ + ./abi_check --check ./current_symbols.txt ${baseline_file}) + + new-abi-baseline: + -@(output=${baseline_file}; \ + if test -f $${output}; then \ + output=$${output}.new; \ + t=`echo $${output} | sed 's=.*config/abi/=='`; \ + echo "Baseline file already exists, writing to $${t} instead."; \ + fi; \ + @glibcpp_srcdir@/config/abi/extract_symvers \ + src/.libs/libstdc++.so $${output}) + # These rules are messy, but are hella worth it. doxygen: -(srcdir=`cd ${top_srcdir}; pwd`; \ *************** distclean-am: distclean-multi *** 88,94 **** maintainer-clean-am: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 108,114 ---- maintainer-clean-am: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/libstdc++-v3/Makefile.in gcc-3.2.1/libstdc++-v3/Makefile.in *** gcc-3.2/libstdc++-v3/Makefile.in Fri Jun 28 08:20:38 2002 --- gcc-3.2.1/libstdc++-v3/Makefile.in Tue Oct 22 21:50:47 2002 *************** SUBDIRS = include libio libmath libsupc+ *** 139,144 **** --- 139,148 ---- mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs + # Use 'new-abi-baseline' to create an initial symbol file. Then run + # 'check-abi' to test for changes against that file. + baseline_file = @baseline_file@ + # Multilib support. MAKEOVERRIDES = *************** check-script-install: $(top_builddir)/mk *** 477,482 **** --- 481,502 ---- -(chmod + $(top_builddir)/mkcheck; \ cd testsuite; \ @glibcpp_builddir@/mkcheck 1) + check-abi: $(top_builddir)/testsuite/abi_check + -@(cd testsuite; \ + @glibcpp_srcdir@/config/abi/extract_symvers \ + ../src/.libs/libstdc++.so \ + ./current_symbols.txt; \ + ./abi_check --check ./current_symbols.txt ${baseline_file}) + + new-abi-baseline: + -@(output=${baseline_file}; \ + if test -f $${output}; then \ + output=$${output}.new; \ + t=`echo $${output} | sed 's=.*config/abi/=='`; \ + echo "Baseline file already exists, writing to $${t} instead."; \ + fi; \ + @glibcpp_srcdir@/config/abi/extract_symvers \ + src/.libs/libstdc++.so $${output}) # These rules are messy, but are hella worth it. doxygen: *************** distclean-am: distclean-multi *** 511,517 **** maintainer-clean-am: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 531,537 ---- maintainer-clean-am: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/libstdc++-v3/acconfig.h gcc-3.2.1/libstdc++-v3/acconfig.h *** gcc-3.2/libstdc++-v3/acconfig.h Fri Dec 14 21:06:32 2001 --- gcc-3.2.1/libstdc++-v3/acconfig.h Thu Oct 17 02:03:17 2002 *************** *** 46,51 **** --- 46,65 ---- // Define if you have the copysignf function. #undef _GLIBCPP_HAVE_COPYSIGNF + // Define to use symbol versioning in the shared library. + #undef _GLIBCPP_SYMVER + + // Define symbol versioning in assember directives. If symbol + // versioning is beigng used, and the assembler supports this kind of + // thing, then use it. + // NB: _GLIBCPP_AT_AT is a hack to work around quoting issues in m4. + #if _GLIBCPP_SYMVER + #define _GLIBCPP_ASM_SYMVER(cur, old, version) \ + asm (".symver " #cur "," #old _GLIBCPP_AT_AT #version); + #else + #define _GLIBCPP_ASM_SYMVER(cur, old, version) + #endif + // Define if mbstate_t exists in wchar.h. #undef HAVE_MBSTATE_T diff -Nrc3pad gcc-3.2/libstdc++-v3/acinclude.m4 gcc-3.2.1/libstdc++-v3/acinclude.m4 *** gcc-3.2/libstdc++-v3/acinclude.m4 Wed Jul 3 22:47:34 2002 --- gcc-3.2.1/libstdc++-v3/acinclude.m4 Thu Oct 17 02:03:17 2002 *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1131,1136 **** --- 1131,1142 ---- AC_TRY_RUN([ #define _GNU_SOURCE 1 #include + #include + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + extern __typeof(newlocale) __newlocale; + extern __typeof(duplocale) __duplocale; + extern __typeof(strcoll_l) __strcoll_l; + #endif int main() { const char __one[] = "Äuglein Augmen"; *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1172,1177 **** --- 1178,1184 ---- CLOCALE_H=config/locale/generic/c_locale.h CLOCALE_CC=config/locale/generic/c_locale.cc CCODECVT_H=config/locale/generic/codecvt_specializations.h + CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/generic/ctype_members.cc CMESSAGES_H=config/locale/generic/messages_members.h *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1179,1184 **** --- 1186,1192 ---- CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_CC=config/locale/generic/time_members.cc + CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; xgnu) AC_MSG_RESULT(gnu) *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1204,1209 **** --- 1212,1218 ---- CLOCALE_H=config/locale/gnu/c_locale.h CLOCALE_CC=config/locale/gnu/c_locale.cc CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h + CCODECVT_CC=config/locale/gnu/codecvt_members.cc CCOLLATE_CC=config/locale/gnu/collate_members.cc CCTYPE_CC=config/locale/gnu/ctype_members.cc CMESSAGES_H=config/locale/gnu/messages_members.h *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1211,1216 **** --- 1220,1226 ---- CMONEY_CC=config/locale/gnu/monetary_members.cc CNUMERIC_CC=config/locale/gnu/numeric_members.cc CTIME_CC=config/locale/gnu/time_members.cc + CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h ;; xieee_1003.1-2001) AC_MSG_RESULT(generic) *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1218,1223 **** --- 1228,1234 ---- CLOCALE_H=config/locale/ieee_1003.1-2001/c_locale.h CLOCALE_CC=config/locale/ieee_1003.1-2001/c_locale.cc CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h + CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/generic/ctype_members.cc CMESSAGES_H=config/locale/ieee_1003.1-2001/messages_members.h *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1225,1230 **** --- 1236,1242 ---- CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_CC=config/locale/generic/time_members.cc + CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *) echo "$enable_clocale is an unknown locale package" 1>&2 *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1237,1253 **** glibcpp_localedir=${glibcpp_builddir}/po/share/locale AC_SUBST(glibcpp_localedir) AC_SUBST(USE_NLS) AC_SUBST(CLOCALE_H) AC_SUBST(CCODECVT_H) AC_SUBST(CMESSAGES_H) AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc) ! AC_LINK_FILES($CCOLLATE_CC, src/collate.cc) ! AC_LINK_FILES($CCTYPE_CC, src/ctype.cc) ! AC_LINK_FILES($CMESSAGES_CC, src/messages.cc) ! AC_LINK_FILES($CMONEY_CC, src/monetary.cc) ! AC_LINK_FILES($CNUMERIC_CC, src/numeric.cc) ! AC_LINK_FILES($CTIME_CC, src/time.cc) ]) --- 1249,1271 ---- glibcpp_localedir=${glibcpp_builddir}/po/share/locale AC_SUBST(glibcpp_localedir) + # For the time being, transform ctype_noninline.h to ctype_members_char.cc + # CCTYPE_CHAR_CC=config/${os_include_dir}/ctype_noninline.h + AC_SUBST(USE_NLS) AC_SUBST(CLOCALE_H) AC_SUBST(CCODECVT_H) AC_SUBST(CMESSAGES_H) AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc) ! AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc) ! AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc) ! # AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc) ! AC_LINK_FILES($CCTYPE_CC, src/ctype_members.cc) ! AC_LINK_FILES($CMESSAGES_CC, src/messages_members.cc) ! AC_LINK_FILES($CMONEY_CC, src/monetary_members.cc) ! AC_LINK_FILES($CNUMERIC_CC, src/numeric_members.cc) ! AC_LINK_FILES($CTIME_CC, src/time_members.cc) ! AC_LINK_FILES($CLOCALE_INTERNAL_H, src/c++locale_internal.h) ]) *************** AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [ *** 2024,2029 **** --- 2042,2055 ---- # Look for setenv, so that extended locale tests can be performed. GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv) + + # Export file names for ABI checking. + baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt" + AC_SUBST(baseline_file) + + # Don't do ABI checking unless native. + AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK, + test x"$build" = x"$host" && test -z "$with_cross_host") ]) *************** case $enable_symvers in *** 2175,2180 **** --- 2201,2207 ---- ;; gnu) LINKER_MAP=config/linker-map.gnu + AC_DEFINE(_GLIBCPP_SYMVER) ;; esac diff -Nrc3pad gcc-3.2/libstdc++-v3/aclocal.m4 gcc-3.2.1/libstdc++-v3/aclocal.m4 *** gcc-3.2/libstdc++-v3/aclocal.m4 Wed Jul 3 22:47:35 2002 --- gcc-3.2.1/libstdc++-v3/aclocal.m4 Thu Oct 17 02:03:17 2002 *************** *** 1,6 **** ! dnl aclocal.m4 generated automatically by aclocal 1.4 ! dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. --- 1,6 ---- ! dnl aclocal.m4 generated automatically by aclocal 1.4-p5 ! dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1143,1148 **** --- 1143,1154 ---- AC_TRY_RUN([ #define _GNU_SOURCE 1 #include + #include + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + extern __typeof(newlocale) __newlocale; + extern __typeof(duplocale) __duplocale; + extern __typeof(strcoll_l) __strcoll_l; + #endif int main() { const char __one[] = "Äuglein Augmen"; *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1184,1189 **** --- 1190,1196 ---- CLOCALE_H=config/locale/generic/c_locale.h CLOCALE_CC=config/locale/generic/c_locale.cc CCODECVT_H=config/locale/generic/codecvt_specializations.h + CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/generic/ctype_members.cc CMESSAGES_H=config/locale/generic/messages_members.h *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1191,1196 **** --- 1198,1204 ---- CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_CC=config/locale/generic/time_members.cc + CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; xgnu) AC_MSG_RESULT(gnu) *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1216,1221 **** --- 1224,1230 ---- CLOCALE_H=config/locale/gnu/c_locale.h CLOCALE_CC=config/locale/gnu/c_locale.cc CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h + CCODECVT_CC=config/locale/gnu/codecvt_members.cc CCOLLATE_CC=config/locale/gnu/collate_members.cc CCTYPE_CC=config/locale/gnu/ctype_members.cc CMESSAGES_H=config/locale/gnu/messages_members.h *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1223,1228 **** --- 1232,1238 ---- CMONEY_CC=config/locale/gnu/monetary_members.cc CNUMERIC_CC=config/locale/gnu/numeric_members.cc CTIME_CC=config/locale/gnu/time_members.cc + CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h ;; xieee_1003.1-2001) AC_MSG_RESULT(generic) *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1230,1235 **** --- 1240,1246 ---- CLOCALE_H=config/locale/ieee_1003.1-2001/c_locale.h CLOCALE_CC=config/locale/ieee_1003.1-2001/c_locale.cc CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h + CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/generic/ctype_members.cc CMESSAGES_H=config/locale/ieee_1003.1-2001/messages_members.h *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1237,1242 **** --- 1248,1254 ---- CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_CC=config/locale/generic/time_members.cc + CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *) echo "$enable_clocale is an unknown locale package" 1>&2 *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1249,1265 **** glibcpp_localedir=${glibcpp_builddir}/po/share/locale AC_SUBST(glibcpp_localedir) AC_SUBST(USE_NLS) AC_SUBST(CLOCALE_H) AC_SUBST(CCODECVT_H) AC_SUBST(CMESSAGES_H) AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc) ! AC_LINK_FILES($CCOLLATE_CC, src/collate.cc) ! AC_LINK_FILES($CCTYPE_CC, src/ctype.cc) ! AC_LINK_FILES($CMESSAGES_CC, src/messages.cc) ! AC_LINK_FILES($CMONEY_CC, src/monetary.cc) ! AC_LINK_FILES($CNUMERIC_CC, src/numeric.cc) ! AC_LINK_FILES($CTIME_CC, src/time.cc) ]) --- 1261,1283 ---- glibcpp_localedir=${glibcpp_builddir}/po/share/locale AC_SUBST(glibcpp_localedir) + # For the time being, transform ctype_noninline.h to ctype_members_char.cc + # CCTYPE_CHAR_CC=config/${os_include_dir}/ctype_noninline.h + AC_SUBST(USE_NLS) AC_SUBST(CLOCALE_H) AC_SUBST(CCODECVT_H) AC_SUBST(CMESSAGES_H) AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc) ! AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc) ! AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc) ! # AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc) ! AC_LINK_FILES($CCTYPE_CC, src/ctype_members.cc) ! AC_LINK_FILES($CMESSAGES_CC, src/messages_members.cc) ! AC_LINK_FILES($CMONEY_CC, src/monetary_members.cc) ! AC_LINK_FILES($CNUMERIC_CC, src/numeric_members.cc) ! AC_LINK_FILES($CTIME_CC, src/time_members.cc) ! AC_LINK_FILES($CLOCALE_INTERNAL_H, src/c++locale_internal.h) ]) *************** AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [ *** 2036,2041 **** --- 2054,2067 ---- # Look for setenv, so that extended locale tests can be performed. GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv) + + # Export file names for ABI checking. + baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt" + AC_SUBST(baseline_file) + + # Don't do ABI checking unless native. + AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK, + test x"$build" = x"$host" && test -z "$with_cross_host") ]) *************** case $enable_symvers in *** 2187,2192 **** --- 2213,2219 ---- ;; gnu) LINKER_MAP=config/linker-map.gnu + AC_DEFINE(_GLIBCPP_SYMVER) ;; esac *************** AC_MSG_RESULT($enable_symvers) *** 2197,2208 **** ]) # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 ! AC_DEFUN(AM_MAINTAINER_MODE, [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, --- 2224,2260 ---- ]) + # isc-posix.m4 serial 1 (gettext-0.10.40) + dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + # This test replaces the one in autoconf. + # Currently this macro should have the same name as the autoconf macro + # because gettext's gettext.m4 (distributed in the automake package) + # still uses it. Otherwise, the use in gettext.m4 makes autoheader + # give these diagnostics: + # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX + # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX + + undefine([AC_ISC_POSIX]) + + AC_DEFUN([AC_ISC_POSIX], + [ + dnl This test replaces the obsolescent AC_ISC_POSIX kludge. + AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) + ] + ) + # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 ! AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, *************** AC_DEFUN(AM_MAINTAINER_MODE, *** 2219,2225 **** # Define a conditional. ! AC_DEFUN(AM_CONDITIONAL, [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then --- 2271,2277 ---- # Define a conditional. ! AC_DEFUN([AM_CONDITIONAL], [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then *************** fi]) *** 2239,2245 **** dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ! AC_DEFUN(AM_INIT_AUTOMAKE, [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) --- 2291,2297 ---- dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ! AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) *************** AC_REQUIRE([AC_PROG_MAKE_SET])]) *** 2267,2273 **** # Check to make sure that the build environment is sane. # ! AC_DEFUN(AM_SANITY_CHECK, [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 --- 2319,2325 ---- # Check to make sure that the build environment is sane. # ! AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 *************** AC_MSG_RESULT(yes)]) *** 2308,2314 **** dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. ! AC_DEFUN(AM_MISSING_PROG, [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. --- 2360,2366 ---- dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. ! AC_DEFUN([AM_MISSING_PROG], [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. *************** AC_SUBST($1)]) *** 2324,2330 **** # Like AC_CONFIG_HEADER, but automatically create stamp file. ! AC_DEFUN(AM_CONFIG_HEADER, [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. --- 2376,2382 ---- # Like AC_CONFIG_HEADER, but automatically create stamp file. ! AC_DEFUN([AM_CONFIG_HEADER], [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. diff -Nrc3pad gcc-3.2/libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt gcc-3.2.1/libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt *** gcc-3.2/libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt Thu Sep 5 16:36:02 2002 *************** *** 0 **** --- 1,3031 ---- + FUNC:__cxa_allocate_exception@@CXXABI_1.2 + FUNC:__cxa_bad_cast@@CXXABI_1.2 + FUNC:__cxa_bad_typeid@@CXXABI_1.2 + FUNC:__cxa_begin_catch@@CXXABI_1.2 + FUNC:__cxa_call_unexpected@@CXXABI_1.2 + FUNC:__cxa_current_exception_type@@CXXABI_1.2 + FUNC:__cxa_demangle@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append@@CXXABI_1.2 + FUNC:__cxa_dyn_string_clear@@CXXABI_1.2 + FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_copy@@CXXABI_1.2 + FUNC:__cxa_dyn_string_delete@@CXXABI_1.2 + FUNC:__cxa_dyn_string_eq@@CXXABI_1.2 + FUNC:__cxa_dyn_string_init@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert@@CXXABI_1.2 + FUNC:__cxa_dyn_string_new@@CXXABI_1.2 + FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2 + FUNC:__cxa_dyn_string_release@@CXXABI_1.2 + FUNC:__cxa_dyn_string_resize@@CXXABI_1.2 + FUNC:__cxa_dyn_string_substring@@CXXABI_1.2 + FUNC:__cxa_end_catch@@CXXABI_1.2 + FUNC:__cxa_free_exception@@CXXABI_1.2 + FUNC:__cxa_get_globals@@CXXABI_1.2 + FUNC:__cxa_get_globals_fast@@CXXABI_1.2 + FUNC:__cxa_pure_virtual@@CXXABI_1.2 + FUNC:__cxa_rethrow@@CXXABI_1.2 + FUNC:__cxa_throw@@CXXABI_1.2 + FUNC:__cxa_vec_cctor@@CXXABI_1.2 + FUNC:__cxa_vec_cleanup@@CXXABI_1.2 + FUNC:__cxa_vec_ctor@@CXXABI_1.2 + FUNC:__cxa_vec_delete2@@CXXABI_1.2 + FUNC:__cxa_vec_delete3@@CXXABI_1.2 + FUNC:__cxa_vec_delete@@CXXABI_1.2 + FUNC:__cxa_vec_dtor@@CXXABI_1.2 + FUNC:__cxa_vec_new2@@CXXABI_1.2 + FUNC:__cxa_vec_new3@@CXXABI_1.2 + FUNC:__cxa_vec_new@@CXXABI_1.2 + FUNC:__dynamic_cast@@CXXABI_1.2 + FUNC:__gxx_personality_v0@@CXXABI_1.2 + FUNC:_ZdaPv@@GLIBCPP_3.2 + FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZdlPv@@GLIBCPP_3.2 + FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2 + FUNC:_Znam@@GLIBCPP_3.2 + FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2 + FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs2atEm@@GLIBCPP_3.2 + FUNC:_ZNKSs3endEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6substrEmm@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_foldEmm@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2 + FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSsixEm@@GLIBCPP_3.2 + FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_scan_isEtPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE11do_scan_notEtPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE5do_isEtc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2 + FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2 + FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcmRSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwmRSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8valarrayImE4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2 + FUNC:_ZNSaIcE10deallocateEPcm@@GLIBCPP_3.2 + FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2 + FUNC:_ZNSaIcE8allocateEmPKv@@GLIBCPP_3.2 + FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwE10deallocateEPwm@@GLIBCPP_3.2 + FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2 + FUNC:_ZNSaIwE8allocateEmPKv@@GLIBCPP_3.2 + FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2 + FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSdD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2 + FUNC:_ZNSi3getEPcl@@GLIBCPP_3.2 + FUNC:_ZNSi3getERc@@GLIBCPP_3.2 + FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2 + FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSi3getEv@@GLIBCPP_3.2 + FUNC:_ZNSi4peekEv@@GLIBCPP_3.2 + FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2 + FUNC:_ZNSi4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2 + FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2 + FUNC:_ZNSi6ignoreEli@@GLIBCPP_3.2 + FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2 + FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2 + FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSi7getlineEPclc@@GLIBCPP_3.2 + FUNC:_ZNSi7getlineEPcl@@GLIBCPP_3.2 + FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2 + FUNC:_ZNSi8readsomeEPcl@@GLIBCPP_3.2 + FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSiD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSiD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSiD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSirsERb@@GLIBCPP_3.2 + FUNC:_ZNSirsERd@@GLIBCPP_3.2 + FUNC:_ZNSirsERe@@GLIBCPP_3.2 + FUNC:_ZNSirsERf@@GLIBCPP_3.2 + FUNC:_ZNSirsERi@@GLIBCPP_3.2 + FUNC:_ZNSirsERj@@GLIBCPP_3.2 + FUNC:_ZNSirsERl@@GLIBCPP_3.2 + FUNC:_ZNSirsERm@@GLIBCPP_3.2 + FUNC:_ZNSirsERPv@@GLIBCPP_3.2 + FUNC:_ZNSirsERs@@GLIBCPP_3.2 + FUNC:_ZNSirsERt@@GLIBCPP_3.2 + FUNC:_ZNSirsERx@@GLIBCPP_3.2 + FUNC:_ZNSirsERy@@GLIBCPP_3.2 + FUNC:_ZNSo3putEc@@GLIBCPP_3.2 + FUNC:_ZNSo5flushEv@@GLIBCPP_3.2 + FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2 + FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2 + FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSoD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSoD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSoD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSolsEb@@GLIBCPP_3.2 + FUNC:_ZNSolsEd@@GLIBCPP_3.2 + FUNC:_ZNSolsEe@@GLIBCPP_3.2 + FUNC:_ZNSolsEf@@GLIBCPP_3.2 + FUNC:_ZNSolsEi@@GLIBCPP_3.2 + FUNC:_ZNSolsEj@@GLIBCPP_3.2 + FUNC:_ZNSolsEl@@GLIBCPP_3.2 + FUNC:_ZNSolsEm@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPKv@@GLIBCPP_3.2 + FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSolsEs@@GLIBCPP_3.2 + FUNC:_ZNSolsEt@@GLIBCPP_3.2 + FUNC:_ZNSolsEx@@GLIBCPP_3.2 + FUNC:_ZNSolsEy@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2 + FUNC:_ZNSs12_S_constructEmcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2 + FUNC:_ZNSs2atEm@@GLIBCPP_3.2 + FUNC:_ZNSs3endEv@@GLIBCPP_3.2 + FUNC:_ZNSs4rendEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEm@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep9_S_createEmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_RepixEm@@GLIBCPP_3.2 + FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2 + FUNC:_ZNSs5beginEv@@GLIBCPP_3.2 + FUNC:_ZNSs5clearEv@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2 + FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2 + FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2 + FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2 + FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2 + FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2 + FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2 + FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2 + FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2 + FUNC:_ZNSsaSEc@@GLIBCPP_3.2 + FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2 + FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSsD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSsixEm@@GLIBCPP_3.2 + FUNC:_ZNSspLEc@@GLIBCPP_3.2 + FUNC:_ZNSspLEPKc@@GLIBCPP_3.2 + FUNC:_ZNSspLERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPcl@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2 + FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePccl@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE6xsgetnEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE6xsputnEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf6setbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8_M_allocEm@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_l@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2El@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPclRlS4_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwlRlS4_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreElj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEmm@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEmm@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvmm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEmRi@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC1EPKtbm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC2EPKtbm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCPP_3.2 + FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2 + FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEmb@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1ERKS0_m@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEmb@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2ERKS0_m@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2 + FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEixEm@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2 + FUNC:_Znwm@@GLIBCPP_3.2 + FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2 + FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2 + FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2 + FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2 + FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2 + FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2 + FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2 + FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2 + FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2 + FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2 + FUNC:_ZSt26__uninitialized_fill_n_auxIPSsmSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2 + FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9terminatev@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZThn16_NSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt9strstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSiD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSiD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSoD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSoD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCPP_3.2 + OBJECT:0:CXXABI_1.2 + OBJECT:0:GLIBCPP_3.2 + OBJECT:104:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:104:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:104:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:104:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:104:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:104:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:104:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:104:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:112:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2 + OBJECT:112:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2 + OBJECT:120:_ZTVSd@@GLIBCPP_3.2 + OBJECT:120:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:120:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:120:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:120:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:120:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:120:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:120:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:120:_ZTVSt9strstream@@GLIBCPP_3.2 + OBJECT:128:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2 + OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:128:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt12strstreambuf@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2 + OBJECT:136:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:136:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2 + OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2 + OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:16:_ZSt10time_get_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt10time_get_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt10time_put_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt10time_put_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt11money_get_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt11money_get_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt11money_put_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt11money_put_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt9codecvt_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt9codecvt_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt9num_get_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt9num_get_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt9num_put_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt9num_put_w@@GLIBCPP_3.2 + OBJECT:16:_ZTIa@@GLIBCPP_3.2 + OBJECT:16:_ZTIb@@GLIBCPP_3.2 + OBJECT:16:_ZTIc@@GLIBCPP_3.2 + OBJECT:16:_ZTId@@GLIBCPP_3.2 + OBJECT:16:_ZTIe@@GLIBCPP_3.2 + OBJECT:16:_ZTIf@@GLIBCPP_3.2 + OBJECT:16:_ZTIh@@GLIBCPP_3.2 + OBJECT:16:_ZTIi@@GLIBCPP_3.2 + OBJECT:16:_ZTIj@@GLIBCPP_3.2 + OBJECT:16:_ZTIl@@GLIBCPP_3.2 + OBJECT:16:_ZTIm@@GLIBCPP_3.2 + OBJECT:16:_ZTINSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:16:_ZTIs@@GLIBCPP_3.2 + OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt10money_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt12codecvt_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt13messages_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:16:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:16:_ZTISt8ios_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt9exception@@GLIBCPP_3.2 + OBJECT:16:_ZTISt9time_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt9type_info@@GLIBCPP_3.2 + OBJECT:16:_ZTIt@@GLIBCPP_3.2 + OBJECT:16:_ZTIv@@GLIBCPP_3.2 + OBJECT:16:_ZTIw@@GLIBCPP_3.2 + OBJECT:16:_ZTIx@@GLIBCPP_3.2 + OBJECT:16:_ZTIy@@GLIBCPP_3.2 + OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2 + OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2 + OBJECT:16:_ZTTSi@@GLIBCPP_3.2 + OBJECT:16:_ZTTSo@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2 + OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2 + OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2 + OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2 + OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2 + OBJECT:224:_ZSt9facet_vec@@GLIBCPP_3.2 + OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:248:_ZSt7buf_cin@@GLIBCPP_3.2 + OBJECT:248:_ZSt8buf_cerr@@GLIBCPP_3.2 + OBJECT:248:_ZSt8buf_cout@@GLIBCPP_3.2 + OBJECT:24:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2 + OBJECT:24:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2 + OBJECT:24:_ZSt7ctype_w@@GLIBCPP_3.2 + OBJECT:24:_ZSt9collate_c@@GLIBCPP_3.2 + OBJECT:24:_ZSt9collate_w@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt10bad_typeid@@GLIBCPP_3.2 + OBJECT:24:_ZTISt10istrstream@@GLIBCPP_3.2 + OBJECT:24:_ZTISt10ostrstream@@GLIBCPP_3.2 + OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt11range_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12domain_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12length_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12out_of_range@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12strstreambuf@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13bad_exception@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13runtime_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14overflow_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15underflow_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt16invalid_argument@@GLIBCPP_3.2 + OBJECT:24:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt7collateIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt7collateIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt8bad_cast@@GLIBCPP_3.2 + OBJECT:24:_ZTISt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9bad_alloc@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9strstream@@GLIBCPP_3.2 + OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2 + OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2 + OBJECT:256:_ZSt8buf_wcin@@GLIBCPP_3.2 + OBJECT:256:_ZSt9buf_wcerr@@GLIBCPP_3.2 + OBJECT:256:_ZSt9buf_wcout@@GLIBCPP_3.2 + OBJECT:272:_ZSt4cerr@@GLIBCPP_3.2 + OBJECT:272:_ZSt4clog@@GLIBCPP_3.2 + OBJECT:272:_ZSt4cout@@GLIBCPP_3.2 + OBJECT:272:_ZSt5wcerr@@GLIBCPP_3.2 + OBJECT:272:_ZSt5wclog@@GLIBCPP_3.2 + OBJECT:272:_ZSt5wcout@@GLIBCPP_3.2 + OBJECT:280:_ZSt3cin@@GLIBCPP_3.2 + OBJECT:280:_ZSt4wcin@@GLIBCPP_3.2 + OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2 + OBJECT:2:_ZTSa@@GLIBCPP_3.2 + OBJECT:2:_ZTSb@@GLIBCPP_3.2 + OBJECT:2:_ZTSc@@GLIBCPP_3.2 + OBJECT:2:_ZTSd@@GLIBCPP_3.2 + OBJECT:2:_ZTSe@@GLIBCPP_3.2 + OBJECT:2:_ZTSf@@GLIBCPP_3.2 + OBJECT:2:_ZTSh@@GLIBCPP_3.2 + OBJECT:2:_ZTSi@@GLIBCPP_3.2 + OBJECT:2:_ZTSj@@GLIBCPP_3.2 + OBJECT:2:_ZTSl@@GLIBCPP_3.2 + OBJECT:2:_ZTSm@@GLIBCPP_3.2 + OBJECT:2:_ZTSs@@GLIBCPP_3.2 + OBJECT:2:_ZTSt@@GLIBCPP_3.2 + OBJECT:2:_ZTSv@@GLIBCPP_3.2 + OBJECT:2:_ZTSw@@GLIBCPP_3.2 + OBJECT:2:_ZTSx@@GLIBCPP_3.2 + OBJECT:2:_ZTSy@@GLIBCPP_3.2 + OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2 + OBJECT:32:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2 + OBJECT:32:_ZSt10messages_c@@GLIBCPP_3.2 + OBJECT:32:_ZSt10messages_w@@GLIBCPP_3.2 + OBJECT:32:_ZTIPa@@GLIBCPP_3.2 + OBJECT:32:_ZTIPb@@GLIBCPP_3.2 + OBJECT:32:_ZTIPc@@GLIBCPP_3.2 + OBJECT:32:_ZTIPd@@GLIBCPP_3.2 + OBJECT:32:_ZTIPe@@GLIBCPP_3.2 + OBJECT:32:_ZTIPf@@GLIBCPP_3.2 + OBJECT:32:_ZTIPh@@GLIBCPP_3.2 + OBJECT:32:_ZTIPi@@GLIBCPP_3.2 + OBJECT:32:_ZTIPj@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKa@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKb@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKc@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKd@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKe@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKf@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKh@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKi@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKj@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKl@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKm@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKs@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKt@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKv@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKw@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKx@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKy@@GLIBCPP_3.2 + OBJECT:32:_ZTIPl@@GLIBCPP_3.2 + OBJECT:32:_ZTIPm@@GLIBCPP_3.2 + OBJECT:32:_ZTIPs@@GLIBCPP_3.2 + OBJECT:32:_ZTIPt@@GLIBCPP_3.2 + OBJECT:32:_ZTIPv@@GLIBCPP_3.2 + OBJECT:32:_ZTIPw@@GLIBCPP_3.2 + OBJECT:32:_ZTIPx@@GLIBCPP_3.2 + OBJECT:32:_ZTIPy@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt10istrstream@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt10ostrstream@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTVNSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:32:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:32:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:32:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:3:_ZTSPa@@GLIBCPP_3.2 + OBJECT:3:_ZTSPb@@GLIBCPP_3.2 + OBJECT:3:_ZTSPc@@GLIBCPP_3.2 + OBJECT:3:_ZTSPd@@GLIBCPP_3.2 + OBJECT:3:_ZTSPe@@GLIBCPP_3.2 + OBJECT:3:_ZTSPf@@GLIBCPP_3.2 + OBJECT:3:_ZTSPh@@GLIBCPP_3.2 + OBJECT:3:_ZTSPi@@GLIBCPP_3.2 + OBJECT:3:_ZTSPj@@GLIBCPP_3.2 + OBJECT:3:_ZTSPl@@GLIBCPP_3.2 + OBJECT:3:_ZTSPm@@GLIBCPP_3.2 + OBJECT:3:_ZTSPs@@GLIBCPP_3.2 + OBJECT:3:_ZTSPt@@GLIBCPP_3.2 + OBJECT:3:_ZTSPv@@GLIBCPP_3.2 + OBJECT:3:_ZTSPw@@GLIBCPP_3.2 + OBJECT:3:_ZTSPx@@GLIBCPP_3.2 + OBJECT:3:_ZTSPy@@GLIBCPP_3.2 + OBJECT:3:_ZTSSd@@GLIBCPP_3.2 + OBJECT:3:_ZTSSi@@GLIBCPP_3.2 + OBJECT:3:_ZTSSo@@GLIBCPP_3.2 + OBJECT:408:_ZSt11timepunct_c@@GLIBCPP_3.2 + OBJECT:408:_ZSt11timepunct_w@@GLIBCPP_3.2 + OBJECT:40:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2 + OBJECT:40:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2 + OBJECT:40:_ZSt10numpunct_c@@GLIBCPP_3.2 + OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt10bad_typeid@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt11logic_error@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt11range_error@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt12domain_error@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt12length_error@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt12out_of_range@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt13bad_exception@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt13runtime_error@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt14overflow_error@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt15underflow_error@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt16invalid_argument@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt8bad_cast@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt9bad_alloc@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt9exception@@GLIBCPP_3.2 + OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:48:_ZSt10numpunct_w@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKa@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKb@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKc@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKd@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKe@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKf@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKh@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKi@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKj@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKl@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKm@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKs@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKt@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKv@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKw@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKx@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKy@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2 + OBJECT:56:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2 + OBJECT:56:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2 + OBJECT:56:_ZSt7ctype_c@@GLIBCPP_3.2 + OBJECT:56:_ZTISi@@GLIBCPP_3.2 + OBJECT:56:_ZTISo@@GLIBCPP_3.2 + OBJECT:56:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:56:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZTTSd@@GLIBCPP_3.2 + OBJECT:56:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:56:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:56:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:56:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:56:_ZTVSt7collateIcE@@GLIBCPP_3.2 + OBJECT:56:_ZTVSt7collateIwE@@GLIBCPP_3.2 + OBJECT:56:_ZTVSt8messagesIcE@@GLIBCPP_3.2 + OBJECT:56:_ZTVSt8messagesIwE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:64:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:64:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:64:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt9type_info@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2 + OBJECT:72:_ZSt13c_locale_impl@@GLIBCPP_3.2 + OBJECT:72:_ZSt13moneypunct_fc@@GLIBCPP_3.2 + OBJECT:72:_ZSt13moneypunct_fw@@GLIBCPP_3.2 + OBJECT:72:_ZSt13moneypunct_tc@@GLIBCPP_3.2 + OBJECT:72:_ZSt13moneypunct_tw@@GLIBCPP_3.2 + OBJECT:72:_ZTISd@@GLIBCPP_3.2 + OBJECT:72:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8messagesIcE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8messagesIwE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:72:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:72:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:72:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:72:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:72:_ZTVSt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:72:_ZTVSt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt9strstream@@GLIBCPP_3.2 + OBJECT:80:_ZTVSi@@GLIBCPP_3.2 + OBJECT:80:_ZTVSo@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt10istrstream@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt10ostrstream@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:88:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:88:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:88:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:88:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:88:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:88:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:88:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:88:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:88:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2 + OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2 + OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7collateIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7collateIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZSt8c_locale@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 diff -Nrc3pad gcc-3.2/libstdc++-v3/config/abi/extract_symvers gcc-3.2.1/libstdc++-v3/config/abi/extract_symvers *** gcc-3.2/libstdc++-v3/config/abi/extract_symvers Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/abi/extract_symvers Sat Sep 21 19:17:56 2002 *************** *** 0 **** --- 1,64 ---- + #!/bin/sh + + # Copyright (C) 2002 Free Software Foundation, Inc. + # + # This file is part of the GNU ISO C++ Library. This library is free + # software; you can redistribute it and/or modify it under the + # terms of the GNU General Public License as published by the + # Free Software Foundation; either version 2, or (at your option) + # any later version. + # + # This library is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License along + # with this library; see the file COPYING. If not, write to the Free + # Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + # USA. + # + # As a special exception, you may use this file as part of a free software + # library without restriction. Specifically, if other files instantiate + # templates or use macros or inline functions from this file, or you compile + # this file and link it with other files to produce an executable, this + # file does not by itself cause the resulting executable to be covered by + # the GNU General Public License. This exception does not however + # invalidate any other reasons why the executable file might be covered by + # the GNU General Public License. + + + if test ${#} -lt 2 || test $1 = '--help'; then + echo "Usage: extract_symvers shared_lib output_file" 1>&2 + exit 1 + fi + + lib=$1 + output=$2 + + # GNU binutils, somewhere after version 2.11.2, requires -W/--wide to avoid + # default line truncation. -W is not supported and truncation did not occur + # by default before that point. + readelf="readelf --symbols" + if readelf --help | grep -- --wide > /dev/null; then + readelf="$readelf --wide" + fi + + # This avoids weird sorting problems later. + export LC_ALL=C + + tmp=extract.$$ + + ${readelf} ${lib} | sed '/\.dynsym/,/^$/p;d' | egrep -v ' (LOCAL|UND) ' |\ + awk '{ if ($4 == "FUNC" || $4 == "NOTYPE") + printf "%s:%s\n", $4, $8; + else if ($4 == "OBJECT") + printf "%s:%s:%s\n", $4, $3, $8; + }' | sort | uniq > $tmp 2>&1 + # else printf "Huh? What is %s?\n", $8; + + + # I think we'll be doing some more with this file, but for now, dump. + mv $tmp $output + + exit 0 diff -Nrc3pad gcc-3.2/libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt gcc-3.2.1/libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt *** gcc-3.2/libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt Fri Aug 23 02:43:03 2002 *************** *** 0 **** --- 1,3031 ---- + FUNC:__cxa_allocate_exception@@CXXABI_1.2 + FUNC:__cxa_bad_cast@@CXXABI_1.2 + FUNC:__cxa_bad_typeid@@CXXABI_1.2 + FUNC:__cxa_begin_catch@@CXXABI_1.2 + FUNC:__cxa_call_unexpected@@CXXABI_1.2 + FUNC:__cxa_current_exception_type@@CXXABI_1.2 + FUNC:__cxa_demangle@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append@@CXXABI_1.2 + FUNC:__cxa_dyn_string_clear@@CXXABI_1.2 + FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_copy@@CXXABI_1.2 + FUNC:__cxa_dyn_string_delete@@CXXABI_1.2 + FUNC:__cxa_dyn_string_eq@@CXXABI_1.2 + FUNC:__cxa_dyn_string_init@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert@@CXXABI_1.2 + FUNC:__cxa_dyn_string_new@@CXXABI_1.2 + FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2 + FUNC:__cxa_dyn_string_release@@CXXABI_1.2 + FUNC:__cxa_dyn_string_resize@@CXXABI_1.2 + FUNC:__cxa_dyn_string_substring@@CXXABI_1.2 + FUNC:__cxa_end_catch@@CXXABI_1.2 + FUNC:__cxa_free_exception@@CXXABI_1.2 + FUNC:__cxa_get_globals@@CXXABI_1.2 + FUNC:__cxa_get_globals_fast@@CXXABI_1.2 + FUNC:__cxa_pure_virtual@@CXXABI_1.2 + FUNC:__cxa_rethrow@@CXXABI_1.2 + FUNC:__cxa_throw@@CXXABI_1.2 + FUNC:__cxa_vec_cctor@@CXXABI_1.2 + FUNC:__cxa_vec_cleanup@@CXXABI_1.2 + FUNC:__cxa_vec_ctor@@CXXABI_1.2 + FUNC:__cxa_vec_delete2@@CXXABI_1.2 + FUNC:__cxa_vec_delete3@@CXXABI_1.2 + FUNC:__cxa_vec_delete@@CXXABI_1.2 + FUNC:__cxa_vec_dtor@@CXXABI_1.2 + FUNC:__cxa_vec_new2@@CXXABI_1.2 + FUNC:__cxa_vec_new3@@CXXABI_1.2 + FUNC:__cxa_vec_new@@CXXABI_1.2 + FUNC:__dynamic_cast@@CXXABI_1.2 + FUNC:__gxx_personality_v0@@CXXABI_1.2 + FUNC:_ZdaPv@@GLIBCPP_3.2 + FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZdlPv@@GLIBCPP_3.2 + FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2 + FUNC:_Znaj@@GLIBCPP_3.2 + FUNC:_ZnajRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEjj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEj@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCPP_3.2 + FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEcj@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEPKcj@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEcj@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEPKcj@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEPKcjj@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofERKSsj@@GLIBCPP_3.2 + FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEcj@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEPKcj@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEPKcjj@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofERKSsj@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEcj@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEPKcj@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEPKcjj@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofERKSsj@@GLIBCPP_3.2 + FUNC:_ZNKSs2atEj@@GLIBCPP_3.2 + FUNC:_ZNKSs3endEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4copyEPcjj@@GLIBCPP_3.2 + FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEcj@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEPKcj@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEPKcjj@@GLIBCPP_3.2 + FUNC:_ZNKSs4findERKSsj@@GLIBCPP_3.2 + FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEcj@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEPKcj@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEPKcjj@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindERKSsj@@GLIBCPP_3.2 + FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6substrEjj@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEjjPKc@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEjjPKcj@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEjjRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_foldEjj@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8_M_checkEj@@GLIBCPP_3.2 + FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSsixEj@@GLIBCPP_3.2 + FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_scan_isEtPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE11do_scan_notEtPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE5do_isEtc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2 + FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_j@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_j@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2 + FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcjRSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwjRSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2 + FUNC:_ZNSaIcE10deallocateEPcj@@GLIBCPP_3.2 + FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2 + FUNC:_ZNSaIcE8allocateEjPKv@@GLIBCPP_3.2 + FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwE10deallocateEPwj@@GLIBCPP_3.2 + FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2 + FUNC:_ZNSaIwE8allocateEjPKv@@GLIBCPP_3.2 + FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEj@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2 + FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSdD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSi3getEPcic@@GLIBCPP_3.2 + FUNC:_ZNSi3getEPci@@GLIBCPP_3.2 + FUNC:_ZNSi3getERc@@GLIBCPP_3.2 + FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2 + FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSi3getEv@@GLIBCPP_3.2 + FUNC:_ZNSi4peekEv@@GLIBCPP_3.2 + FUNC:_ZNSi4readEPci@@GLIBCPP_3.2 + FUNC:_ZNSi4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2 + FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2 + FUNC:_ZNSi6ignoreEii@@GLIBCPP_3.2 + FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2 + FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2 + FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSi7getlineEPcic@@GLIBCPP_3.2 + FUNC:_ZNSi7getlineEPci@@GLIBCPP_3.2 + FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2 + FUNC:_ZNSi8readsomeEPci@@GLIBCPP_3.2 + FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSiD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSiD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSiD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSirsERb@@GLIBCPP_3.2 + FUNC:_ZNSirsERd@@GLIBCPP_3.2 + FUNC:_ZNSirsERe@@GLIBCPP_3.2 + FUNC:_ZNSirsERf@@GLIBCPP_3.2 + FUNC:_ZNSirsERi@@GLIBCPP_3.2 + FUNC:_ZNSirsERj@@GLIBCPP_3.2 + FUNC:_ZNSirsERl@@GLIBCPP_3.2 + FUNC:_ZNSirsERm@@GLIBCPP_3.2 + FUNC:_ZNSirsERPv@@GLIBCPP_3.2 + FUNC:_ZNSirsERs@@GLIBCPP_3.2 + FUNC:_ZNSirsERt@@GLIBCPP_3.2 + FUNC:_ZNSirsERx@@GLIBCPP_3.2 + FUNC:_ZNSirsERy@@GLIBCPP_3.2 + FUNC:_ZNSo3putEc@@GLIBCPP_3.2 + FUNC:_ZNSo5flushEv@@GLIBCPP_3.2 + FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2 + FUNC:_ZNSo5writeEPKci@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2 + FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSoD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSoD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSoD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSolsEb@@GLIBCPP_3.2 + FUNC:_ZNSolsEd@@GLIBCPP_3.2 + FUNC:_ZNSolsEe@@GLIBCPP_3.2 + FUNC:_ZNSolsEf@@GLIBCPP_3.2 + FUNC:_ZNSolsEi@@GLIBCPP_3.2 + FUNC:_ZNSolsEj@@GLIBCPP_3.2 + FUNC:_ZNSolsEl@@GLIBCPP_3.2 + FUNC:_ZNSolsEm@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPKv@@GLIBCPP_3.2 + FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSolsEs@@GLIBCPP_3.2 + FUNC:_ZNSolsEt@@GLIBCPP_3.2 + FUNC:_ZNSolsEx@@GLIBCPP_3.2 + FUNC:_ZNSolsEy@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2 + FUNC:_ZNSs12_S_constructEjcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2 + FUNC:_ZNSs2atEj@@GLIBCPP_3.2 + FUNC:_ZNSs3endEv@@GLIBCPP_3.2 + FUNC:_ZNSs4rendEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEj@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep9_S_createEjRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_RepixEj@@GLIBCPP_3.2 + FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2 + FUNC:_ZNSs5beginEv@@GLIBCPP_3.2 + FUNC:_ZNSs5clearEv@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEjj@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEjc@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEPKcj@@GLIBCPP_3.2 + FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6appendERKSsjj@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEjc@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEPKcj@@GLIBCPP_3.2 + FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6assignERKSsjj@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEjjc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEjPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEjPKcj@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEjRKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEjRKSsjj@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCPP_3.2 + FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNSs6resizeEjc@@GLIBCPP_3.2 + FUNC:_ZNSs6resizeEj@@GLIBCPP_3.2 + FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2 + FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEjjjc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEjjPKc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEjjPKcj@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEjjRKSs@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNSs7reserveEj@@GLIBCPP_3.2 + FUNC:_ZNSs9_M_mutateEjjj@@GLIBCPP_3.2 + FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2 + FUNC:_ZNSsaSEc@@GLIBCPP_3.2 + FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2 + FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSsjj@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSsjj@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSsD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSsixEj@@GLIBCPP_3.2 + FUNC:_ZNSspLEc@@GLIBCPP_3.2 + FUNC:_ZNSspLEPKc@@GLIBCPP_3.2 + FUNC:_ZNSspLERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPci@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPci@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2 + FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcci@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE6xsgetnEPci@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE6xsputnEPKci@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf6setbufEPci@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8_M_allocEj@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_i@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1Ei@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2Ei@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPciRiS4_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwiRiS4_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEjj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEjj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvjj@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEj@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEjRi@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEj@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEj@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEj@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbj@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC1EPKtbj@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbj@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC2EPKtbj@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCPP_3.2 + FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2 + FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEjb@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1ERKS0_j@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2EPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEjb@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2ERKS0_j@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2 + FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayIjEixEj@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2 + FUNC:_Znwj@@GLIBCPP_3.2 + FUNC:_ZnwjRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2 + FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2 + FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2 + FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2 + FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2 + FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2 + FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2 + FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2 + FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2 + FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2 + FUNC:_ZSt26__uninitialized_fill_n_auxIPSsjSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2 + FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9terminatev@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZThn8_NSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZThn8_NSt9strstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSiD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSiD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSoD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSoD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt10istrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt10istrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt10ostrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt10ostrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCPP_3.2 + OBJECT:0:CXXABI_1.2 + OBJECT:0:GLIBCPP_3.2 + OBJECT:112:_ZSt9facet_vec@@GLIBCPP_3.2 + OBJECT:12:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2 + OBJECT:12:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2 + OBJECT:12:_ZSt7ctype_w@@GLIBCPP_3.2 + OBJECT:12:_ZSt9collate_c@@GLIBCPP_3.2 + OBJECT:12:_ZSt9collate_w@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt10bad_typeid@@GLIBCPP_3.2 + OBJECT:12:_ZTISt10istrstream@@GLIBCPP_3.2 + OBJECT:12:_ZTISt10ostrstream@@GLIBCPP_3.2 + OBJECT:12:_ZTISt11logic_error@@GLIBCPP_3.2 + OBJECT:12:_ZTISt11range_error@@GLIBCPP_3.2 + OBJECT:12:_ZTISt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt12domain_error@@GLIBCPP_3.2 + OBJECT:12:_ZTISt12length_error@@GLIBCPP_3.2 + OBJECT:12:_ZTISt12out_of_range@@GLIBCPP_3.2 + OBJECT:12:_ZTISt12strstreambuf@@GLIBCPP_3.2 + OBJECT:12:_ZTISt13bad_exception@@GLIBCPP_3.2 + OBJECT:12:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt13runtime_error@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt14overflow_error@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt15underflow_error@@GLIBCPP_3.2 + OBJECT:12:_ZTISt16invalid_argument@@GLIBCPP_3.2 + OBJECT:12:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt7collateIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt7collateIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt8bad_cast@@GLIBCPP_3.2 + OBJECT:12:_ZTISt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt9bad_alloc@@GLIBCPP_3.2 + OBJECT:12:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:12:_ZTISt9strstream@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2 + OBJECT:140:_ZSt4cerr@@GLIBCPP_3.2 + OBJECT:140:_ZSt4clog@@GLIBCPP_3.2 + OBJECT:140:_ZSt4cout@@GLIBCPP_3.2 + OBJECT:140:_ZSt7buf_cin@@GLIBCPP_3.2 + OBJECT:140:_ZSt8buf_cerr@@GLIBCPP_3.2 + OBJECT:140:_ZSt8buf_cout@@GLIBCPP_3.2 + OBJECT:144:_ZSt3cin@@GLIBCPP_3.2 + OBJECT:144:_ZSt5wcerr@@GLIBCPP_3.2 + OBJECT:144:_ZSt5wclog@@GLIBCPP_3.2 + OBJECT:144:_ZSt5wcout@@GLIBCPP_3.2 + OBJECT:148:_ZSt4wcin@@GLIBCPP_3.2 + OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2 + OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2 + OBJECT:156:_ZSt8buf_wcin@@GLIBCPP_3.2 + OBJECT:156:_ZSt9buf_wcerr@@GLIBCPP_3.2 + OBJECT:156:_ZSt9buf_wcout@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:16:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2 + OBJECT:16:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2 + OBJECT:16:_ZSt10messages_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt10messages_w@@GLIBCPP_3.2 + OBJECT:16:_ZTIPa@@GLIBCPP_3.2 + OBJECT:16:_ZTIPb@@GLIBCPP_3.2 + OBJECT:16:_ZTIPc@@GLIBCPP_3.2 + OBJECT:16:_ZTIPd@@GLIBCPP_3.2 + OBJECT:16:_ZTIPe@@GLIBCPP_3.2 + OBJECT:16:_ZTIPf@@GLIBCPP_3.2 + OBJECT:16:_ZTIPh@@GLIBCPP_3.2 + OBJECT:16:_ZTIPi@@GLIBCPP_3.2 + OBJECT:16:_ZTIPj@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKa@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKb@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKc@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKd@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKe@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKf@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKh@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKi@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKj@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKl@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKm@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKs@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKt@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKv@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKw@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKx@@GLIBCPP_3.2 + OBJECT:16:_ZTIPKy@@GLIBCPP_3.2 + OBJECT:16:_ZTIPl@@GLIBCPP_3.2 + OBJECT:16:_ZTIPm@@GLIBCPP_3.2 + OBJECT:16:_ZTIPs@@GLIBCPP_3.2 + OBJECT:16:_ZTIPt@@GLIBCPP_3.2 + OBJECT:16:_ZTIPv@@GLIBCPP_3.2 + OBJECT:16:_ZTIPw@@GLIBCPP_3.2 + OBJECT:16:_ZTIPx@@GLIBCPP_3.2 + OBJECT:16:_ZTIPy@@GLIBCPP_3.2 + OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2 + OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt10istrstream@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt10ostrstream@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:16:_ZTVNSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:16:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:16:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:16:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:16:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2 + OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2 + OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2 + OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2 + OBJECT:204:_ZSt11timepunct_c@@GLIBCPP_3.2 + OBJECT:204:_ZSt11timepunct_w@@GLIBCPP_3.2 + OBJECT:20:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2 + OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt10bad_typeid@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt11logic_error@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt11range_error@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt12domain_error@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt12length_error@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt12out_of_range@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt13bad_exception@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt13runtime_error@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt14overflow_error@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt15underflow_error@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt16invalid_argument@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt8bad_cast@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt9bad_alloc@@GLIBCPP_3.2 + OBJECT:20:_ZTVSt9exception@@GLIBCPP_3.2 + OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2 + OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2 + OBJECT:24:_ZSt10numpunct_c@@GLIBCPP_3.2 + OBJECT:24:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2 + OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2 + OBJECT:28:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2 + OBJECT:28:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2 + OBJECT:28:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2 + OBJECT:28:_ZSt10numpunct_w@@GLIBCPP_3.2 + OBJECT:28:_ZSt7ctype_c@@GLIBCPP_3.2 + OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:28:_ZTTSd@@GLIBCPP_3.2 + OBJECT:28:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:28:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:28:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:28:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:28:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:28:_ZTVSt7collateIcE@@GLIBCPP_3.2 + OBJECT:28:_ZTVSt7collateIwE@@GLIBCPP_3.2 + OBJECT:28:_ZTVSt8messagesIcE@@GLIBCPP_3.2 + OBJECT:28:_ZTVSt8messagesIwE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2 + OBJECT:2:_ZTSa@@GLIBCPP_3.2 + OBJECT:2:_ZTSb@@GLIBCPP_3.2 + OBJECT:2:_ZTSc@@GLIBCPP_3.2 + OBJECT:2:_ZTSd@@GLIBCPP_3.2 + OBJECT:2:_ZTSe@@GLIBCPP_3.2 + OBJECT:2:_ZTSf@@GLIBCPP_3.2 + OBJECT:2:_ZTSh@@GLIBCPP_3.2 + OBJECT:2:_ZTSi@@GLIBCPP_3.2 + OBJECT:2:_ZTSj@@GLIBCPP_3.2 + OBJECT:2:_ZTSl@@GLIBCPP_3.2 + OBJECT:2:_ZTSm@@GLIBCPP_3.2 + OBJECT:2:_ZTSs@@GLIBCPP_3.2 + OBJECT:2:_ZTSt@@GLIBCPP_3.2 + OBJECT:2:_ZTSv@@GLIBCPP_3.2 + OBJECT:2:_ZTSw@@GLIBCPP_3.2 + OBJECT:2:_ZTSx@@GLIBCPP_3.2 + OBJECT:2:_ZTSy@@GLIBCPP_3.2 + OBJECT:32:_ZTISi@@GLIBCPP_3.2 + OBJECT:32:_ZTISo@@GLIBCPP_3.2 + OBJECT:32:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:32:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:32:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:32:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:32:_ZTVSt9type_info@@GLIBCPP_3.2 + OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:36:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2 + OBJECT:36:_ZSt13c_locale_impl@@GLIBCPP_3.2 + OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:36:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:36:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:36:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:36:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:36:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:36:_ZTVSt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:36:_ZTVSt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:3:_ZTSPa@@GLIBCPP_3.2 + OBJECT:3:_ZTSPb@@GLIBCPP_3.2 + OBJECT:3:_ZTSPc@@GLIBCPP_3.2 + OBJECT:3:_ZTSPd@@GLIBCPP_3.2 + OBJECT:3:_ZTSPe@@GLIBCPP_3.2 + OBJECT:3:_ZTSPf@@GLIBCPP_3.2 + OBJECT:3:_ZTSPh@@GLIBCPP_3.2 + OBJECT:3:_ZTSPi@@GLIBCPP_3.2 + OBJECT:3:_ZTSPj@@GLIBCPP_3.2 + OBJECT:3:_ZTSPl@@GLIBCPP_3.2 + OBJECT:3:_ZTSPm@@GLIBCPP_3.2 + OBJECT:3:_ZTSPs@@GLIBCPP_3.2 + OBJECT:3:_ZTSPt@@GLIBCPP_3.2 + OBJECT:3:_ZTSPv@@GLIBCPP_3.2 + OBJECT:3:_ZTSPw@@GLIBCPP_3.2 + OBJECT:3:_ZTSPx@@GLIBCPP_3.2 + OBJECT:3:_ZTSPy@@GLIBCPP_3.2 + OBJECT:3:_ZTSSd@@GLIBCPP_3.2 + OBJECT:3:_ZTSSi@@GLIBCPP_3.2 + OBJECT:3:_ZTSSo@@GLIBCPP_3.2 + OBJECT:40:_ZSt13moneypunct_fc@@GLIBCPP_3.2 + OBJECT:40:_ZSt13moneypunct_tc@@GLIBCPP_3.2 + OBJECT:40:_ZTISd@@GLIBCPP_3.2 + OBJECT:40:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt8messagesIcE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt8messagesIwE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTTSt9strstream@@GLIBCPP_3.2 + OBJECT:40:_ZTVSi@@GLIBCPP_3.2 + OBJECT:40:_ZTVSo@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt10istrstream@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt10ostrstream@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:44:_ZSt13moneypunct_fw@@GLIBCPP_3.2 + OBJECT:44:_ZSt13moneypunct_tw@@GLIBCPP_3.2 + OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:44:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:44:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:44:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:44:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:44:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:44:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:44:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:44:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2 + OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2 + OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2 + OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt7collateIcE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt7collateIwE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:4:_ZSt8c_locale@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKa@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKb@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKc@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKd@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKe@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKf@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKh@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKi@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKj@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKl@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKm@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKs@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKt@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKv@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKw@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKx@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKy@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:52:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:52:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:52:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:52:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:52:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:52:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:52:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:52:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:56:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2 + OBJECT:56:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTVSd@@GLIBCPP_3.2 + OBJECT:60:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:60:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:60:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:60:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:60:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:60:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTVSt9strstream@@GLIBCPP_3.2 + OBJECT:64:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2 + OBJECT:64:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt12strstreambuf@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:68:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:68:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZSt10time_get_c@@GLIBCPP_3.2 + OBJECT:8:_ZSt10time_get_w@@GLIBCPP_3.2 + OBJECT:8:_ZSt10time_put_c@@GLIBCPP_3.2 + OBJECT:8:_ZSt10time_put_w@@GLIBCPP_3.2 + OBJECT:8:_ZSt11money_get_c@@GLIBCPP_3.2 + OBJECT:8:_ZSt11money_get_w@@GLIBCPP_3.2 + OBJECT:8:_ZSt11money_put_c@@GLIBCPP_3.2 + OBJECT:8:_ZSt11money_put_w@@GLIBCPP_3.2 + OBJECT:8:_ZSt9codecvt_c@@GLIBCPP_3.2 + OBJECT:8:_ZSt9codecvt_w@@GLIBCPP_3.2 + OBJECT:8:_ZSt9num_get_c@@GLIBCPP_3.2 + OBJECT:8:_ZSt9num_get_w@@GLIBCPP_3.2 + OBJECT:8:_ZSt9num_put_c@@GLIBCPP_3.2 + OBJECT:8:_ZSt9num_put_w@@GLIBCPP_3.2 + OBJECT:8:_ZTIa@@GLIBCPP_3.2 + OBJECT:8:_ZTIb@@GLIBCPP_3.2 + OBJECT:8:_ZTIc@@GLIBCPP_3.2 + OBJECT:8:_ZTId@@GLIBCPP_3.2 + OBJECT:8:_ZTIe@@GLIBCPP_3.2 + OBJECT:8:_ZTIf@@GLIBCPP_3.2 + OBJECT:8:_ZTIh@@GLIBCPP_3.2 + OBJECT:8:_ZTIi@@GLIBCPP_3.2 + OBJECT:8:_ZTIj@@GLIBCPP_3.2 + OBJECT:8:_ZTIl@@GLIBCPP_3.2 + OBJECT:8:_ZTIm@@GLIBCPP_3.2 + OBJECT:8:_ZTINSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:8:_ZTIs@@GLIBCPP_3.2 + OBJECT:8:_ZTISt10ctype_base@@GLIBCPP_3.2 + OBJECT:8:_ZTISt10money_base@@GLIBCPP_3.2 + OBJECT:8:_ZTISt10__num_base@@GLIBCPP_3.2 + OBJECT:8:_ZTISt12codecvt_base@@GLIBCPP_3.2 + OBJECT:8:_ZTISt13messages_base@@GLIBCPP_3.2 + OBJECT:8:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:8:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:8:_ZTISt8ios_base@@GLIBCPP_3.2 + OBJECT:8:_ZTISt9exception@@GLIBCPP_3.2 + OBJECT:8:_ZTISt9time_base@@GLIBCPP_3.2 + OBJECT:8:_ZTISt9type_info@@GLIBCPP_3.2 + OBJECT:8:_ZTIt@@GLIBCPP_3.2 + OBJECT:8:_ZTIv@@GLIBCPP_3.2 + OBJECT:8:_ZTIw@@GLIBCPP_3.2 + OBJECT:8:_ZTIx@@GLIBCPP_3.2 + OBJECT:8:_ZTIy@@GLIBCPP_3.2 + OBJECT:8:_ZTTSi@@GLIBCPP_3.2 + OBJECT:8:_ZTTSo@@GLIBCPP_3.2 + OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:8:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 diff -Nrc3pad gcc-3.2/libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt gcc-3.2.1/libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt *** gcc-3.2/libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt Thu Sep 5 16:36:03 2002 *************** *** 0 **** --- 1,3031 ---- + FUNC:__cxa_allocate_exception@@CXXABI_1.2 + FUNC:__cxa_bad_cast@@CXXABI_1.2 + FUNC:__cxa_bad_typeid@@CXXABI_1.2 + FUNC:__cxa_begin_catch@@CXXABI_1.2 + FUNC:__cxa_call_unexpected@@CXXABI_1.2 + FUNC:__cxa_current_exception_type@@CXXABI_1.2 + FUNC:__cxa_demangle@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append_char@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_append@@CXXABI_1.2 + FUNC:__cxa_dyn_string_clear@@CXXABI_1.2 + FUNC:__cxa_dyn_string_copy_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_copy@@CXXABI_1.2 + FUNC:__cxa_dyn_string_delete@@CXXABI_1.2 + FUNC:__cxa_dyn_string_eq@@CXXABI_1.2 + FUNC:__cxa_dyn_string_init@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert_char@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_insert@@CXXABI_1.2 + FUNC:__cxa_dyn_string_new@@CXXABI_1.2 + FUNC:__cxa_dyn_string_prepend_cstr@@CXXABI_1.2 + FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2 + FUNC:__cxa_dyn_string_release@@CXXABI_1.2 + FUNC:__cxa_dyn_string_resize@@CXXABI_1.2 + FUNC:__cxa_dyn_string_substring@@CXXABI_1.2 + FUNC:__cxa_end_catch@@CXXABI_1.2 + FUNC:__cxa_free_exception@@CXXABI_1.2 + FUNC:__cxa_get_globals@@CXXABI_1.2 + FUNC:__cxa_get_globals_fast@@CXXABI_1.2 + FUNC:__cxa_pure_virtual@@CXXABI_1.2 + FUNC:__cxa_rethrow@@CXXABI_1.2 + FUNC:__cxa_throw@@CXXABI_1.2 + FUNC:__cxa_vec_cctor@@CXXABI_1.2 + FUNC:__cxa_vec_cleanup@@CXXABI_1.2 + FUNC:__cxa_vec_ctor@@CXXABI_1.2 + FUNC:__cxa_vec_delete2@@CXXABI_1.2 + FUNC:__cxa_vec_delete3@@CXXABI_1.2 + FUNC:__cxa_vec_delete@@CXXABI_1.2 + FUNC:__cxa_vec_dtor@@CXXABI_1.2 + FUNC:__cxa_vec_new2@@CXXABI_1.2 + FUNC:__cxa_vec_new3@@CXXABI_1.2 + FUNC:__cxa_vec_new@@CXXABI_1.2 + FUNC:__dynamic_cast@@CXXABI_1.2 + FUNC:__gxx_personality_v0@@CXXABI_1.2 + FUNC:_ZdaPv@@GLIBCPP_3.2 + FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZdlPv@@GLIBCPP_3.2 + FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2 + FUNC:_Znam@@GLIBCPP_3.2 + FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE7addressERc@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2 + FUNC:_ZNKSaIcE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE7addressERKw@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE7addressERw@@GLIBCPP_3.2 + FUNC:_ZNKSaIwE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_foldEmm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2 + FUNC:_ZNKSi6gcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs13find_first_ofERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs13get_allocatorEv@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs16find_last_not_ofERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs17find_first_not_ofERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs2atEm@@GLIBCPP_3.2 + FUNC:_ZNKSs3endEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs4rendEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2 + FUNC:_ZNKSs4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5beginEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5c_strEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5emptyEv@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2 + FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2 + FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSs6substrEmm@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareEPKc@@GLIBCPP_3.2 + FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_dataEv@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_foldEmm@@GLIBCPP_3.2 + FUNC:_ZNKSs7_M_iendEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8max_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2 + FUNC:_ZNKSs9_M_ibeginEv@@GLIBCPP_3.2 + FUNC:_ZNKSsixEm@@GLIBCPP_3.2 + FUNC:_ZNKSt10istrstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb0EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIcLb1EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb0EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE10neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE10pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE11frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_negative_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_positive_signEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10moneypunctIwLb1EE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10ostrstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt10ostrstream6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt11logic_error4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE7_M_ampmEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE7_M_daysEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIcE9_M_monthsEPPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE7_M_ampmEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE7_M_daysEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt11__timepunctIwE9_M_monthsEPPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt12__basic_fileIcE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt12strstreambuf6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2 + FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_scan_isEtPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE11do_scan_notEtPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE5do_isEtc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE5do_isEtw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2 + FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2 + FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCPP_3.2 + FUNC:_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERKS0_PKcS5_m@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE4hashEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE7compareEPKcS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE7do_hashEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIcE9transformEPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE4hashEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE7compareEPKwS2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE7do_hashEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7collateIwE9transformEPKwS2_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intES3_S3_RSt8ios_baseRSt12_Ios_IostateRSsRi@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_widen_floatES3_RSt8ios_basecPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIdEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatIeEES3_S3_RSt8ios_baseccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_widen_floatES3_RSt8ios_basewPci@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIdEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatIeEES3_S3_RSt8ios_basewcT_@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCPP_3.2 + FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertES3_RSt8ios_basewPKwi@@GLIBCPP_3.2 + FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE20_M_convert_from_charEPc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE3getEiiiRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE4openERKSsRKSt6localePKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE5closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE7do_openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIcE8do_closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE20_M_convert_from_charEPc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE4openERKSsRKSt6localePKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE5closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE7do_openERKSsRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNKSt8messagesIwE8do_closeEi@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE11do_truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE12do_falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE8truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIcE9falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE11do_groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE11do_truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE12do_falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE13decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE13thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE16do_decimal_pointEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE16do_thousands_sepEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE8groupingEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE8truenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8numpunctIwE9falsenameEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameERS3_S5_RiPPKcmRSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameERS3_S5_RiPPKwmRSt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatERS3_S5_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2 + FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2 + FUNC:_ZNKSt8valarrayImE4sizeEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE14_M_check_facetEPKNSt6locale5facetE@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9exception4whatEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@GLIBCPP_3.2 + FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2 + FUNC:_ZNKSt9strstream5rdbufEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9strstream6pcountEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info10__do_catchEPKS_PPvj@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info14__is_pointer_pEv@@GLIBCPP_3.2 + FUNC:_ZNKSt9type_info15__is_function_pEv@@GLIBCPP_3.2 + FUNC:_ZNSaIcE10deallocateEPcm@@GLIBCPP_3.2 + FUNC:_ZNSaIcE7destroyEPc@@GLIBCPP_3.2 + FUNC:_ZNSaIcE8allocateEmPKv@@GLIBCPP_3.2 + FUNC:_ZNSaIcE9constructEPcRKc@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIcEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwE10deallocateEPwm@@GLIBCPP_3.2 + FUNC:_ZNSaIwE7destroyEPw@@GLIBCPP_3.2 + FUNC:_ZNSaIwE8allocateEmPKv@@GLIBCPP_3.2 + FUNC:_ZNSaIwE9constructEPwRKw@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSaIwEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSaIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_M_replaceIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKwS2_EEEERS2_NS5_IPwS2_EESB_T_SC_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPwS2_EEEERS2_S7_S7_T_S9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPKwEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeIPwEERS2_N9__gnu_cxx17__normal_iteratorIS4_S2_EES8_T_S9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE2atEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE3endEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4_RepixEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPKwS2_EEEET_S9_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEixEm@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEpLEw@@GLIBCPP_3.2 + FUNC:_ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSdD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2 + FUNC:_ZNSi3getEPcl@@GLIBCPP_3.2 + FUNC:_ZNSi3getERc@@GLIBCPP_3.2 + FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2 + FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSi3getEv@@GLIBCPP_3.2 + FUNC:_ZNSi4peekEv@@GLIBCPP_3.2 + FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2 + FUNC:_ZNSi4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSi5tellgEv@@GLIBCPP_3.2 + FUNC:_ZNSi5ungetEv@@GLIBCPP_3.2 + FUNC:_ZNSi6ignoreEli@@GLIBCPP_3.2 + FUNC:_ZNSi6sentryC1ERSib@@GLIBCPP_3.2 + FUNC:_ZNSi6sentryC2ERSib@@GLIBCPP_3.2 + FUNC:_ZNSi6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSi7getlineEPclc@@GLIBCPP_3.2 + FUNC:_ZNSi7getlineEPcl@@GLIBCPP_3.2 + FUNC:_ZNSi7putbackEc@@GLIBCPP_3.2 + FUNC:_ZNSi8readsomeEPcl@@GLIBCPP_3.2 + FUNC:_ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSiD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSiD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSiD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSiS_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2 + FUNC:_ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSirsERb@@GLIBCPP_3.2 + FUNC:_ZNSirsERd@@GLIBCPP_3.2 + FUNC:_ZNSirsERe@@GLIBCPP_3.2 + FUNC:_ZNSirsERf@@GLIBCPP_3.2 + FUNC:_ZNSirsERi@@GLIBCPP_3.2 + FUNC:_ZNSirsERj@@GLIBCPP_3.2 + FUNC:_ZNSirsERl@@GLIBCPP_3.2 + FUNC:_ZNSirsERm@@GLIBCPP_3.2 + FUNC:_ZNSirsERPv@@GLIBCPP_3.2 + FUNC:_ZNSirsERs@@GLIBCPP_3.2 + FUNC:_ZNSirsERt@@GLIBCPP_3.2 + FUNC:_ZNSirsERx@@GLIBCPP_3.2 + FUNC:_ZNSirsERy@@GLIBCPP_3.2 + FUNC:_ZNSo3putEc@@GLIBCPP_3.2 + FUNC:_ZNSo5flushEv@@GLIBCPP_3.2 + FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2 + FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2 + FUNC:_ZNSo6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSoD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSoD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSoD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSolsEb@@GLIBCPP_3.2 + FUNC:_ZNSolsEd@@GLIBCPP_3.2 + FUNC:_ZNSolsEe@@GLIBCPP_3.2 + FUNC:_ZNSolsEf@@GLIBCPP_3.2 + FUNC:_ZNSolsEi@@GLIBCPP_3.2 + FUNC:_ZNSolsEj@@GLIBCPP_3.2 + FUNC:_ZNSolsEl@@GLIBCPP_3.2 + FUNC:_ZNSolsEm@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSoS_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSt8ios_baseS0_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@@GLIBCPP_3.2 + FUNC:_ZNSolsEPKv@@GLIBCPP_3.2 + FUNC:_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + FUNC:_ZNSolsEs@@GLIBCPP_3.2 + FUNC:_ZNSolsEt@@GLIBCPP_3.2 + FUNC:_ZNSolsEx@@GLIBCPP_3.2 + FUNC:_ZNSolsEy@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs10_M_replaceIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_St18input_iterator_tag@@GLIBCPP_3.2 + FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_M_leak_hardEv@@GLIBCPP_3.2 + FUNC:_ZNSs12_S_constructEmcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs12_S_empty_repEv@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcPKcS1_@@GLIBCPP_3.2 + FUNC:_ZNSs13_S_copy_charsEPcS_S_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2 + FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2 + FUNC:_ZNSs2atEm@@GLIBCPP_3.2 + FUNC:_ZNSs3endEv@@GLIBCPP_3.2 + FUNC:_ZNSs4rendEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_disposeERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_refcopyEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep10_M_refdataEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep13_M_set_leakedEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep15_M_set_sharableEv@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep7_M_grabERKSaIcES2_@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep8_M_cloneERKSaIcEm@@GLIBCPP_3.2 + FUNC:_ZNSs4_Rep9_S_createEmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSs4_RepixEm@@GLIBCPP_3.2 + FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2 + FUNC:_ZNSs5beginEv@@GLIBCPP_3.2 + FUNC:_ZNSs5clearEv@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2 + FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2 + FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2 + FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2 + FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2 + FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2 + FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2 + FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2 + FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2 + FUNC:_ZNSs7_M_leakEv@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@@GLIBCPP_3.2 + FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@@GLIBCPP_3.2 + FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2 + FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2 + FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2 + FUNC:_ZNSsaSEc@@GLIBCPP_3.2 + FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2 + FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2 + FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2 + FUNC:_ZNSsD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSsD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSsixEm@@GLIBCPP_3.2 + FUNC:_ZNSspLEc@@GLIBCPP_3.2 + FUNC:_ZNSspLEPKc@@GLIBCPP_3.2 + FUNC:_ZNSspLERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPcl@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10istrstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10money_base20_S_construct_patternEccc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10__num_base13_S_format_intERKSt8ios_basePccc@@GLIBCPP_3.2 + FUNC:_ZNSt10__num_base15_S_format_floatERKSt8ios_basePccl@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstream6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt10ostrstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11logic_errorD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11range_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE6xsgetnEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE6xsputnEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE7seekposElSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_getcEv@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12__basic_fileIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12ctype_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12domain_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12length_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12out_of_rangeD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf6setbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7_M_freeEPc@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8_M_allocEm@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8_M_setupEPcS0_l@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambuf9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2El@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE17_M_output_unshiftEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_really_overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE18_M_set_determinateEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_is_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_underflow_commonEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE20_M_set_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPclRlS4_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE17_M_output_unshiftEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_really_overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE18_M_set_determinateEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_is_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_underflow_commonEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE20_M_set_indeterminateEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwlRlS4_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreElj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCPP_3.2 + FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt13runtime_errorD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14collate_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt14overflow_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE14_M_in_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_buf_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_out_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE15_M_pback_createEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE16_M_pback_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE14_M_in_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_buf_sizeEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_out_cur_moveEl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE15_M_pback_createEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE16_M_pback_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE14_M_really_syncEmm@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE14_M_really_syncEmm@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15messages_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15numpunct_bynameIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt15underflow_errorD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt16invalid_argumentD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIcLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb0EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt17moneypunct_bynameIwLb1EED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvmm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEmRi@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexEm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE8allocateEm@@GLIBCPP_3.2 + FUNC:_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcE13classic_tableEv@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC1EP15__locale_structPKtbm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC1EPKtbm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC2EP15__locale_structPKtbm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcEC2EPKtbm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt5ctypeIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCPP_3.2 + FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale11_M_coalesceERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6locale21_S_normalize_categoryEj@@GLIBCPP_3.2 + FUNC:_ZNSt6locale2idC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale2idC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5facetD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPNS_5facetE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_j@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1EPPNS_5facetEmb@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC1ERKS0_m@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2EPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2EPPNS_5facetEmb@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplC2ERKS0_m@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale5_ImplD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6locale7classicEv@@GLIBCPP_3.2 + FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1EPNS_5_ImplE@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_PKcj@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1ERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2EPKc@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2EPNS_5_ImplE@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_PKcj@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2ERKS_S1_j@@GLIBCPP_3.2 + FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIcc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7codecvtIwc11__mbstate_tED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8bad_castD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base13_M_grow_wordsEi@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base15sync_with_stdioEb@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base17_M_call_callbacksENS_5eventE@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base20_M_dispose_callbacksEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4Init13_S_ios_createEb@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4Init14_S_ios_destroyEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base4InitD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureC1ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureC2ERKSs@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7failureD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_base7_M_initEv@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcm@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC1EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwEC2EP15__locale_structm@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8numpunctIwED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt8valarrayImEixEm@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9bad_allocD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_facetsERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9exceptionD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstream3strEv@@GLIBCPP_3.2 + FUNC:_ZNSt9strstream6freezeEb@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC1EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC2EPciSt13_Ios_Openmode@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamC2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9strstreamD2Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2 + FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2 + FUNC:_Znwm@@GLIBCPP_3.2 + FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2 + FUNC:_ZSt10unexpectedv@@GLIBCPP_3.2 + FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi@@GLIBCPP_3.2 + FUNC:_ZSt14set_unexpectedPFvvE@@GLIBCPP_3.2 + FUNC:_ZSt15set_new_handlerPFvvE@@GLIBCPP_3.2 + FUNC:_ZSt16__throw_bad_castv@@GLIBCPP_3.2 + FUNC:_ZSt17__throw_bad_allocv@@GLIBCPP_3.2 + FUNC:_ZSt18__throw_bad_typeidv@@GLIBCPP_3.2 + FUNC:_ZSt18uncaught_exceptionv@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_ios_failurePKc@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_logic_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt19__throw_range_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_domain_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_length_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt20__throw_out_of_rangePKc@@GLIBCPP_3.2 + FUNC:_ZSt21__throw_bad_exceptionv@@GLIBCPP_3.2 + FUNC:_ZSt21__throw_runtime_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt22__throw_overflow_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt23__throw_underflow_errorPKc@@GLIBCPP_3.2 + FUNC:_ZSt24__throw_invalid_argumentPKc@@GLIBCPP_3.2 + FUNC:_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPKSsSt6vectorISsSaISsEEEEPSsET0_T_SA_S9_12__false_type@@GLIBCPP_3.2 + FUNC:_ZSt26__uninitialized_fill_n_auxIPSsmSsET_S1_T0_RKT1_12__false_type@@GLIBCPP_3.2 + FUNC:_ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt5ctypeIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt5ctypeIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7collateIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7collateIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8messagesIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8messagesIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8numpunctIcEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8numpunctIwEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9terminatev@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7collateIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7collateIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2 + FUNC:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@@GLIBCPP_3.2 + FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@@GLIBCPP_3.2 + FUNC:_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@@GLIBCPP_3.2 + FUNC:_ZThn16_NSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZThn16_NSt9strstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSdD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSdD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSiD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSiD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSoD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSoD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt10istrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt10istrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt10ostrstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt10ostrstreamD1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt9strstreamD0Ev@@GLIBCPP_3.2 + FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCPP_3.2 + OBJECT:0:CXXABI_1.2 + OBJECT:0:GLIBCPP_3.2 + OBJECT:112:_ZNSt11__timepunctIcE12_S_timezonesE@@GLIBCPP_3.2 + OBJECT:112:_ZNSt11__timepunctIwE12_S_timezonesE@@GLIBCPP_3.2 + OBJECT:112:_ZTVN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:112:_ZTVN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:112:_ZTVN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:112:_ZTVN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSi@@GLIBCPP_3.2 + OBJECT:112:_ZTVSo@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt10istrstream@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt10ostrstream@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:112:_ZTVSt9type_info@@GLIBCPP_3.2 + OBJECT:128:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE@@GLIBCPP_3.2 + OBJECT:128:_ZTVN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:128:_ZTVN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:128:_ZTVN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:128:_ZTVSt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt8bad_cast@@GLIBCPP_3.2 + OBJECT:12:_ZTSSt8ios_base@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9bad_alloc@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9exception@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9strstream@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9time_base@@GLIBCPP_3.2 + OBJECT:13:_ZTSSt9type_info@@GLIBCPP_3.2 + OBJECT:144:_ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:144:_ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:144:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:144:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:14:_ZTSSt7collateIcE@@GLIBCPP_3.2 + OBJECT:14:_ZTSSt7collateIwE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10bad_typeid@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10ctype_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10istrstream@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10money_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10__num_base@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt10ostrstream@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8messagesIcE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8messagesIwE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:160:_ZTVN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:160:_ZTVN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:160:_ZTVN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:160:_ZTVSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:160:_ZTVSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:160:_ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:160:_ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:160:_ZTVSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:160:_ZTVSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:168:_ZTVSd@@GLIBCPP_3.2 + OBJECT:168:_ZTVSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:168:_ZTVSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:168:_ZTVSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:168:_ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:168:_ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:168:_ZTVSt9strstream@@GLIBCPP_3.2 + OBJECT:16:_ZSt10time_get_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt10time_get_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt10time_put_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt10time_put_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt11money_get_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt11money_get_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt11money_put_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt11money_put_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt9codecvt_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt9codecvt_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt9num_get_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt9num_get_w@@GLIBCPP_3.2 + OBJECT:16:_ZSt9num_put_c@@GLIBCPP_3.2 + OBJECT:16:_ZSt9num_put_w@@GLIBCPP_3.2 + OBJECT:16:_ZTIa@@GLIBCPP_3.2 + OBJECT:16:_ZTIb@@GLIBCPP_3.2 + OBJECT:16:_ZTIc@@GLIBCPP_3.2 + OBJECT:16:_ZTId@@GLIBCPP_3.2 + OBJECT:16:_ZTIe@@GLIBCPP_3.2 + OBJECT:16:_ZTIf@@GLIBCPP_3.2 + OBJECT:16:_ZTIh@@GLIBCPP_3.2 + OBJECT:16:_ZTIi@@GLIBCPP_3.2 + OBJECT:16:_ZTIj@@GLIBCPP_3.2 + OBJECT:16:_ZTIl@@GLIBCPP_3.2 + OBJECT:16:_ZTIm@@GLIBCPP_3.2 + OBJECT:16:_ZTINSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:16:_ZTIs@@GLIBCPP_3.2 + OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt10money_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt12codecvt_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt13messages_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:16:_ZTISt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:16:_ZTISt8ios_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt9exception@@GLIBCPP_3.2 + OBJECT:16:_ZTISt9time_base@@GLIBCPP_3.2 + OBJECT:16:_ZTISt9type_info@@GLIBCPP_3.2 + OBJECT:16:_ZTIt@@GLIBCPP_3.2 + OBJECT:16:_ZTIv@@GLIBCPP_3.2 + OBJECT:16:_ZTIw@@GLIBCPP_3.2 + OBJECT:16:_ZTIx@@GLIBCPP_3.2 + OBJECT:16:_ZTIy@@GLIBCPP_3.2 + OBJECT:16:_ZTSSt11logic_error@@GLIBCPP_3.2 + OBJECT:16:_ZTSSt11range_error@@GLIBCPP_3.2 + OBJECT:16:_ZTTSi@@GLIBCPP_3.2 + OBJECT:16:_ZTTSo@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:16:_ZTTSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:176:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:176:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12codecvt_base@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12domain_error@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12length_error@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12out_of_range@@GLIBCPP_3.2 + OBJECT:17:_ZTSSt12strstreambuf@@GLIBCPP_3.2 + OBJECT:18:_ZTSNSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13bad_exception@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13messages_base@@GLIBCPP_3.2 + OBJECT:18:_ZTSSt13runtime_error@@GLIBCPP_3.2 + OBJECT:192:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:192:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:192:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:192:_ZTVSt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:192:_ZTVSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:192:_ZTVSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:192:_ZTVSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:192:_ZTVSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:19:_ZTSSt14overflow_error@@GLIBCPP_3.2 + OBJECT:1:_ZNSs4_Rep11_S_terminalE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIcLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIcLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIwLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt10moneypunctIwLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIaE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIbE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIcE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIdE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIeE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIfE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIhE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIiE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIjE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIlE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsImE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIsE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsItE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIwE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIxE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt14numeric_limitsIyE9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIcLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIcLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIwLb0EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt17moneypunct_bynameIwLb1EE4intlE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base10is_boundedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base10is_integerE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base12has_infinityE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base13has_quiet_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base14is_specializedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base15has_denorm_lossE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base15tinyness_beforeE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base17has_signaling_NaNE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base5trapsE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base8is_exactE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_iec559E@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCPP_3.2 + OBJECT:1:_ZNSt8ios_base4Init20_S_synced_with_stdioE@@GLIBCPP_3.2 + OBJECT:1:_ZSt7nothrow@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:20:_ZTSSt15underflow_error@@GLIBCPP_3.2 + OBJECT:21:_ZTSSt16invalid_argument@@GLIBCPP_3.2 + OBJECT:224:_ZSt9facet_vec@@GLIBCPP_3.2 + OBJECT:224:_ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:224:_ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:22:_ZTSNSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:22:_ZTSSt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:23:_ZNSt10__num_base8_S_atomsE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:23:_ZTSSt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:240:_ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:240:_ZTVN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt12strstreambuf@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:240:_ZTVSt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:248:_ZSt7buf_cin@@GLIBCPP_3.2 + OBJECT:248:_ZSt8buf_cerr@@GLIBCPP_3.2 + OBJECT:248:_ZSt8buf_cout@@GLIBCPP_3.2 + OBJECT:24:_ZNSt6locale5_Impl13_S_id_collateE@@GLIBCPP_3.2 + OBJECT:24:_ZNSt6locale5_Impl14_S_id_messagesE@@GLIBCPP_3.2 + OBJECT:24:_ZSt7ctype_w@@GLIBCPP_3.2 + OBJECT:24:_ZSt9collate_c@@GLIBCPP_3.2 + OBJECT:24:_ZSt9collate_w@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTINSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt10bad_typeid@@GLIBCPP_3.2 + OBJECT:24:_ZTISt10istrstream@@GLIBCPP_3.2 + OBJECT:24:_ZTISt10ostrstream@@GLIBCPP_3.2 + OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt11range_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12ctype_bynameIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12ctype_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12domain_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12length_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12out_of_range@@GLIBCPP_3.2 + OBJECT:24:_ZTISt12strstreambuf@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13bad_exception@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt13runtime_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt14overflow_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15numpunct_bynameIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15numpunct_bynameIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt15underflow_error@@GLIBCPP_3.2 + OBJECT:24:_ZTISt16invalid_argument@@GLIBCPP_3.2 + OBJECT:24:_ZTISt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt5ctypeIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt5ctypeIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt7collateIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt7collateIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt8bad_cast@@GLIBCPP_3.2 + OBJECT:24:_ZTISt8numpunctIcE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt8numpunctIwE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9bad_alloc@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:24:_ZTISt9strstream@@GLIBCPP_3.2 + OBJECT:256:_ZSt12_S_bit_count@@GLIBCPP_3.2 + OBJECT:256:_ZSt12_S_first_one@@GLIBCPP_3.2 + OBJECT:256:_ZSt8buf_wcin@@GLIBCPP_3.2 + OBJECT:256:_ZSt9buf_wcerr@@GLIBCPP_3.2 + OBJECT:256:_ZSt9buf_wcout@@GLIBCPP_3.2 + OBJECT:256:_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:256:_ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:272:_ZSt4cerr@@GLIBCPP_3.2 + OBJECT:272:_ZSt4clog@@GLIBCPP_3.2 + OBJECT:272:_ZSt4cout@@GLIBCPP_3.2 + OBJECT:272:_ZSt5wcerr@@GLIBCPP_3.2 + OBJECT:272:_ZSt5wclog@@GLIBCPP_3.2 + OBJECT:272:_ZSt5wcout@@GLIBCPP_3.2 + OBJECT:280:_ZSt3cin@@GLIBCPP_3.2 + OBJECT:280:_ZSt4wcin@@GLIBCPP_3.2 + OBJECT:28:_ZTSSt7codecvtIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:28:_ZTSSt7codecvtIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIcLb0EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIcLb1EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIwLb0EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt17moneypunct_bynameIwLb1EE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:29:_ZTSSt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5printE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2 + OBJECT:2:_ZNSt10ctype_base6xdigitE@@GLIBCPP_3.2 + OBJECT:2:_ZTSa@@GLIBCPP_3.2 + OBJECT:2:_ZTSb@@GLIBCPP_3.2 + OBJECT:2:_ZTSc@@GLIBCPP_3.2 + OBJECT:2:_ZTSd@@GLIBCPP_3.2 + OBJECT:2:_ZTSe@@GLIBCPP_3.2 + OBJECT:2:_ZTSf@@GLIBCPP_3.2 + OBJECT:2:_ZTSh@@GLIBCPP_3.2 + OBJECT:2:_ZTSi@@GLIBCPP_3.2 + OBJECT:2:_ZTSj@@GLIBCPP_3.2 + OBJECT:2:_ZTSl@@GLIBCPP_3.2 + OBJECT:2:_ZTSm@@GLIBCPP_3.2 + OBJECT:2:_ZTSs@@GLIBCPP_3.2 + OBJECT:2:_ZTSt@@GLIBCPP_3.2 + OBJECT:2:_ZTSv@@GLIBCPP_3.2 + OBJECT:2:_ZTSw@@GLIBCPP_3.2 + OBJECT:2:_ZTSx@@GLIBCPP_3.2 + OBJECT:2:_ZTSy@@GLIBCPP_3.2 + OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE@@GLIBCPP_3.2 + OBJECT:32:_ZNSs20_S_empty_rep_storageE@@GLIBCPP_3.2 + OBJECT:32:_ZSt10messages_c@@GLIBCPP_3.2 + OBJECT:32:_ZSt10messages_w@@GLIBCPP_3.2 + OBJECT:32:_ZTIPa@@GLIBCPP_3.2 + OBJECT:32:_ZTIPb@@GLIBCPP_3.2 + OBJECT:32:_ZTIPc@@GLIBCPP_3.2 + OBJECT:32:_ZTIPd@@GLIBCPP_3.2 + OBJECT:32:_ZTIPe@@GLIBCPP_3.2 + OBJECT:32:_ZTIPf@@GLIBCPP_3.2 + OBJECT:32:_ZTIPh@@GLIBCPP_3.2 + OBJECT:32:_ZTIPi@@GLIBCPP_3.2 + OBJECT:32:_ZTIPj@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKa@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKb@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKc@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKd@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKe@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKf@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKh@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKi@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKj@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKl@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKm@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKs@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKt@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKv@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKw@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKx@@GLIBCPP_3.2 + OBJECT:32:_ZTIPKy@@GLIBCPP_3.2 + OBJECT:32:_ZTIPl@@GLIBCPP_3.2 + OBJECT:32:_ZTIPm@@GLIBCPP_3.2 + OBJECT:32:_ZTIPs@@GLIBCPP_3.2 + OBJECT:32:_ZTIPt@@GLIBCPP_3.2 + OBJECT:32:_ZTIPv@@GLIBCPP_3.2 + OBJECT:32:_ZTIPw@@GLIBCPP_3.2 + OBJECT:32:_ZTIPx@@GLIBCPP_3.2 + OBJECT:32:_ZTIPy@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt10istrstream@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt10ostrstream@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:32:_ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:33:_ZTSN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__array_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__class_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSN10__cxxabiv117__pbase_type_infoE@@GLIBCPP_3.2 + OBJECT:34:_ZTSSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:34:_ZTSSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:36:_ZTSN10__cxxabiv119__pointer_type_infoE@@GLIBCPP_3.2 + OBJECT:36:_ZTSSt14codecvt_bynameIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:36:_ZTSSt14codecvt_bynameIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:37:_ZTSN10__cxxabiv120__function_type_infoE@@GLIBCPP_3.2 + OBJECT:37:_ZTSN10__cxxabiv120__si_class_type_infoE@@GLIBCPP_3.2 + OBJECT:38:_ZTSN10__cxxabiv121__vmi_class_type_infoE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_filebufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_filebufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:39:_ZTSSt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:3:_ZTSPa@@GLIBCPP_3.2 + OBJECT:3:_ZTSPb@@GLIBCPP_3.2 + OBJECT:3:_ZTSPc@@GLIBCPP_3.2 + OBJECT:3:_ZTSPd@@GLIBCPP_3.2 + OBJECT:3:_ZTSPe@@GLIBCPP_3.2 + OBJECT:3:_ZTSPf@@GLIBCPP_3.2 + OBJECT:3:_ZTSPh@@GLIBCPP_3.2 + OBJECT:3:_ZTSPi@@GLIBCPP_3.2 + OBJECT:3:_ZTSPj@@GLIBCPP_3.2 + OBJECT:3:_ZTSPl@@GLIBCPP_3.2 + OBJECT:3:_ZTSPm@@GLIBCPP_3.2 + OBJECT:3:_ZTSPs@@GLIBCPP_3.2 + OBJECT:3:_ZTSPt@@GLIBCPP_3.2 + OBJECT:3:_ZTSPv@@GLIBCPP_3.2 + OBJECT:3:_ZTSPw@@GLIBCPP_3.2 + OBJECT:3:_ZTSPx@@GLIBCPP_3.2 + OBJECT:3:_ZTSPy@@GLIBCPP_3.2 + OBJECT:3:_ZTSSd@@GLIBCPP_3.2 + OBJECT:3:_ZTSSi@@GLIBCPP_3.2 + OBJECT:3:_ZTSSo@@GLIBCPP_3.2 + OBJECT:408:_ZSt11timepunct_c@@GLIBCPP_3.2 + OBJECT:408:_ZSt11timepunct_w@@GLIBCPP_3.2 + OBJECT:40:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2 + OBJECT:40:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2 + OBJECT:40:_ZSt10numpunct_c@@GLIBCPP_3.2 + OBJECT:40:_ZTSN10__cxxabiv123__fundamental_type_infoE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:40:_ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:45:_ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:45:_ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:46:_ZTSN10__cxxabiv129__pointer_to_member_type_infoE@@GLIBCPP_3.2 + OBJECT:46:_ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:46:_ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:48:_ZSt10numpunct_w@@GLIBCPP_3.2 + OBJECT:48:_ZTVNSt6locale5facetE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt11__timepunctIcE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt11__timepunctIwE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:48:_ZTVSt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:49:_ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt10money_base18_S_default_patternE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIaE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIbE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIcE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIdE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIeE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIfE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIhE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIiE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIjE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIlE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsImE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIsE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsItE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIwE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIxE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt14numeric_limitsIyE8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base10has_denormE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base11round_styleE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base12max_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base12min_exponentE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base14max_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base14min_exponent10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base5radixE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base6digitsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt21__numeric_limits_base8digits10E@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale4timeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale5ctypeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale7collateE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale7numericE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale8messagesE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt6locale8monetaryE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base10floatfieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base10scientificE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base11adjustfieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base18_S_local_word_sizeE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base2inE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3appE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3ateE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3begE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3curE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3decE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3endE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3hexE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3octE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base3outE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base4Init16_S_ios_base_initE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base4leftE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5fixedE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5rightE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base5truncE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6badbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6binaryE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6eofbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base6skipwsE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7failbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7goodbitE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7showposE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base7unitbufE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base8internalE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base8showbaseE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9basefieldE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9boolalphaE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9showpointE@@GLIBCPP_3.2 + OBJECT:4:_ZNSt8ios_base9uppercaseE@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKa@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKb@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKc@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKd@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKe@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKf@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKh@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKi@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKj@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKl@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKm@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKs@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKt@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKv@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKw@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKx@@GLIBCPP_3.2 + OBJECT:4:_ZTSPKy@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:50:_ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZNSt6locale5_Impl10_S_id_timeE@@GLIBCPP_3.2 + OBJECT:56:_ZNSt6locale5_Impl13_S_id_numericE@@GLIBCPP_3.2 + OBJECT:56:_ZNSt6locale5_Impl19_S_facet_categoriesE@@GLIBCPP_3.2 + OBJECT:56:_ZSt7ctype_c@@GLIBCPP_3.2 + OBJECT:56:_ZTISi@@GLIBCPP_3.2 + OBJECT:56:_ZTISo@@GLIBCPP_3.2 + OBJECT:56:_ZTISt13basic_istreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZTISt13basic_ostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZTISt9basic_iosIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:56:_ZTISt9basic_iosIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:56:_ZTTSd@@GLIBCPP_3.2 + OBJECT:56:_ZTTSt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:58:_ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:59:_ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:60:_ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVNSt8ios_base7failureE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt10bad_typeid@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt11logic_error@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt11range_error@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt12domain_error@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt12length_error@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt12out_of_range@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt13bad_exception@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt13runtime_error@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt14overflow_error@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt15underflow_error@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt16invalid_argument@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt8bad_cast@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt9bad_alloc@@GLIBCPP_3.2 + OBJECT:64:_ZTVSt9exception@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:67:_ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZNSt6locale5_Impl14_S_id_monetaryE@@GLIBCPP_3.2 + OBJECT:72:_ZSt13c_locale_impl@@GLIBCPP_3.2 + OBJECT:72:_ZSt13moneypunct_fc@@GLIBCPP_3.2 + OBJECT:72:_ZSt13moneypunct_fw@@GLIBCPP_3.2 + OBJECT:72:_ZSt13moneypunct_tc@@GLIBCPP_3.2 + OBJECT:72:_ZSt13moneypunct_tw@@GLIBCPP_3.2 + OBJECT:72:_ZTISd@@GLIBCPP_3.2 + OBJECT:72:_ZTISt10moneypunctIcLb0EE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt10moneypunctIcLb1EE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt10moneypunctIwLb0EE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt10moneypunctIwLb1EE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt14basic_iostreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt21__ctype_abstract_baseIcE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt21__ctype_abstract_baseIwE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8messagesIcE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8messagesIwE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:72:_ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt13basic_fstreamIcSt11char_traitsIcEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt13basic_fstreamIwSt11char_traitsIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@@GLIBCPP_3.2 + OBJECT:80:_ZTTSt9strstream@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2 + OBJECT:80:_ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt11__timepunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt11__timepunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7collateIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7collateIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8messagesIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8messagesIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8numpunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8numpunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2 + OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2 + OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt10moneypunctIwLb1EE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt5ctypeIcE10table_sizeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt5ctypeIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt5ctypeIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt6locale10_S_classicE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt6locale17_S_num_categoriesE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt6locale5facet11_S_c_localeE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt6locale9_S_globalE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7codecvtIcc11__mbstate_tE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7codecvtIwc11__mbstate_tE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7collateIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7collateIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8messagesIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8messagesIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8numpunctIcE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8numpunctIwE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@@GLIBCPP_3.2 + OBJECT:8:_ZSt8c_locale@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt14collate_bynameIcE@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt14collate_bynameIwE@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt15messages_bynameIcE@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt15messages_bynameIwE@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt7collateIcE@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt7collateIwE@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt8messagesIcE@@GLIBCPP_3.2 + OBJECT:96:_ZTVSt8messagesIwE@@GLIBCPP_3.2 diff -Nrc3pad gcc-3.2/libstdc++-v3/config/cpu/sparc/bits/atomicity.h gcc-3.2.1/libstdc++-v3/config/cpu/sparc/bits/atomicity.h *** gcc-3.2/libstdc++-v3/config/cpu/sparc/bits/atomicity.h Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/cpu/sparc/bits/atomicity.h Fri Sep 6 18:11:56 2002 *************** *** 0 **** --- 1,131 ---- + // Low-level functions for atomic operations: Sparc version -*- C++ -*- + + // Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _BITS_ATOMICITY_H + #define _BITS_ATOMICITY_H 1 + + #ifdef __arch64__ + + typedef long _Atomic_word; + + static inline _Atomic_word + __attribute__ ((__unused__)) + __exchange_and_add (volatile _Atomic_word *__mem, int __val) + { + _Atomic_word __tmp1, __tmp2; + + __asm__ __volatile__("1: ldx [%2], %0\n\t" + " add %0, %3, %1\n\t" + " casx [%2], %0, %1\n\t" + " sub %0, %1, %0\n\t" + " brnz,pn %0, 1b\n\t" + " nop" + : "=&r" (__tmp1), "=&r" (__tmp2) + : "r" (__mem), "r" (__val) + : "memory"); + return __tmp2; + } + + static inline void + __attribute__ ((__unused__)) + __atomic_add (volatile _Atomic_word* __mem, int __val) + { + _Atomic_word __tmp1, __tmp2; + + __asm__ __volatile__("1: ldx [%2], %0\n\t" + " add %0, %3, %1\n\t" + " casx [%2], %0, %1\n\t" + " sub %0, %1, %0\n\t" + " brnz,pn %0, 1b\n\t" + " nop" + : "=&r" (__tmp1), "=&r" (__tmp2) + : "r" (__mem), "r" (__val) + : "memory"); + } + + #else /* __arch32__ */ + + typedef int _Atomic_word; + + template + struct __Atomicity_lock + { + static unsigned char _S_atomicity_lock; + }; + + template + unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0; + + template unsigned char __Atomicity_lock<0>::_S_atomicity_lock; + + static int + __attribute__ ((__unused__)) + __exchange_and_add (volatile _Atomic_word* __mem, int __val) + { + _Atomic_word __result, __tmp; + + __asm__ __volatile__("1: ldstub [%1], %0\n\t" + " cmp %0, 0\n\t" + " bne 1b\n\t" + " nop" + : "=&r" (__tmp) + : "r" (&__Atomicity_lock<0>::_S_atomicity_lock) + : "memory"); + __result = *__mem; + *__mem += __val; + __asm__ __volatile__("stb %%g0, [%0]" + : /* no outputs */ + : "r" (&__Atomicity_lock<0>::_S_atomicity_lock) + : "memory"); + return __result; + } + + static void + __attribute__ ((__unused__)) + __atomic_add (volatile _Atomic_word* __mem, int __val) + { + _Atomic_word __tmp; + + __asm__ __volatile__("1: ldstub [%1], %0\n\t" + " cmp %0, 0\n\t" + " bne 1b\n\t" + " nop" + : "=&r" (__tmp) + : "r" (&__Atomicity_lock<0>::_S_atomicity_lock) + : "memory"); + *__mem += __val; + __asm__ __volatile__("stb %%g0, [%0]" + : /* no outputs */ + : "r" (&__Atomicity_lock<0>::_S_atomicity_lock) + : "memory"); + } + + #endif /* __arch32__ */ + + #endif /* atomicity.h */ diff -Nrc3pad gcc-3.2/libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h gcc-3.2.1/libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h *** gcc-3.2/libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h Tue Dec 11 09:41:40 2001 --- gcc-3.2.1/libstdc++-v3/config/cpu/sparc/sparc32/bits/atomicity.h Thu Jan 1 00:00:00 1970 *************** *** 1,88 **** - // Low-level functions for atomic operations: Sparc32 version -*- C++ -*- - - // Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free - // software; you can redistribute it and/or modify it under the - // terms of the GNU General Public License as published by the - // Free Software Foundation; either version 2, or (at your option) - // any later version. - - // This library is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License along - // with this library; see the file COPYING. If not, write to the Free - // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - // USA. - - // As a special exception, you may use this file as part of a free software - // library without restriction. Specifically, if other files instantiate - // templates or use macros or inline functions from this file, or you compile - // this file and link it with other files to produce an executable, this - // file does not by itself cause the resulting executable to be covered by - // the GNU General Public License. This exception does not however - // invalidate any other reasons why the executable file might be covered by - // the GNU General Public License. - - #ifndef _BITS_ATOMICITY_H - #define _BITS_ATOMICITY_H 1 - - typedef int _Atomic_word; - - template - struct __Atomicity_lock - { - static unsigned char _S_atomicity_lock; - }; - - template - unsigned char __Atomicity_lock<__inst>::_S_atomicity_lock = 0; - - template unsigned char __Atomicity_lock<0>::_S_atomicity_lock; - - static int - __attribute__ ((__unused__)) - __exchange_and_add (volatile _Atomic_word* __mem, int __val) - { - _Atomic_word __result, __tmp; - - __asm__ __volatile__("1: ldstub [%1], %0\n\t" - " cmp %0, 0\n\t" - " bne 1b\n\t" - " nop" - : "=&r" (__tmp) - : "r" (&__Atomicity_lock<0>::_S_atomicity_lock) - : "memory"); - __result = *__mem; - *__mem += __val; - __asm__ __volatile__("stb %%g0, [%0]" - : /* no outputs */ - : "r" (&__Atomicity_lock<0>::_S_atomicity_lock) - : "memory"); - return __result; - } - - static void - __attribute__ ((__unused__)) - __atomic_add (volatile _Atomic_word* __mem, int __val) - { - _Atomic_word __tmp; - - __asm__ __volatile__("1: ldstub [%1], %0\n\t" - " cmp %0, 0\n\t" - " bne 1b\n\t" - " nop" - : "=&r" (__tmp) - : "r" (&__Atomicity_lock<0>::_S_atomicity_lock) - : "memory"); - *__mem += __val; - __asm__ __volatile__("stb %%g0, [%0]" - : /* no outputs */ - : "r" (&__Atomicity_lock<0>::_S_atomicity_lock) - : "memory"); - } - - #endif /* atomicity.h */ --- 0 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h gcc-3.2.1/libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h *** gcc-3.2/libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h Fri Oct 5 18:43:43 2001 --- gcc-3.2.1/libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h Thu Jan 1 00:00:00 1970 *************** *** 1,70 **** - // Low-level functions for atomic operations: Sparc64 version -*- C++ -*- - - // Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free - // software; you can redistribute it and/or modify it under the - // terms of the GNU General Public License as published by the - // Free Software Foundation; either version 2, or (at your option) - // any later version. - - // This library is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License along - // with this library; see the file COPYING. If not, write to the Free - // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - // USA. - - // As a special exception, you may use this file as part of a free software - // library without restriction. Specifically, if other files instantiate - // templates or use macros or inline functions from this file, or you compile - // this file and link it with other files to produce an executable, this - // file does not by itself cause the resulting executable to be covered by - // the GNU General Public License. This exception does not however - // invalidate any other reasons why the executable file might be covered by - // the GNU General Public License. - - #ifndef _BITS_ATOMICITY_H - #define _BITS_ATOMICITY_H 1 - - typedef long _Atomic_word; - - static inline _Atomic_word - __attribute__ ((__unused__)) - __exchange_and_add (volatile _Atomic_word *__mem, int __val) - { - _Atomic_word __tmp1, __tmp2; - - __asm__ __volatile__("1: ldx [%2], %0\n\t" - " add %0, %3, %1\n\t" - " casx [%2], %0, %1\n\t" - " sub %0, %1, %0\n\t" - " brnz,pn %0, 1b\n\t" - " nop" - : "=&r" (__tmp1), "=&r" (__tmp2) - : "r" (__mem), "r" (__val) - : "memory"); - return __tmp2; - } - - static inline void - __attribute__ ((__unused__)) - __atomic_add (volatile _Atomic_word* __mem, int __val) - { - _Atomic_word __tmp1, __tmp2; - - __asm__ __volatile__("1: ldx [%2], %0\n\t" - " add %0, %3, %1\n\t" - " casx [%2], %0, %1\n\t" - " sub %0, %1, %0\n\t" - " brnz,pn %0, 1b\n\t" - " nop" - : "=&r" (__tmp1), "=&r" (__tmp2) - : "r" (__mem), "r" (__val) - : "memory"); - } - - #endif /* atomicity.h */ --- 0 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/config/linker-map.gnu gcc-3.2.1/libstdc++-v3/config/linker-map.gnu *** gcc-3.2/libstdc++-v3/config/linker-map.gnu Thu Aug 1 21:29:14 2002 --- gcc-3.2.1/libstdc++-v3/config/linker-map.gnu Sun Nov 17 05:14:01 2002 *************** *** 20,26 **** ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. - GLIBCPP_3.2 { global: --- 20,25 ---- *************** GLIBCPP_3.2 { *** 29,49 **** # All but the last are terminated with a semicolon. extern "C++" { ! std::[A-Za-z]*; std::__throw_*; std::__basic_file*; std::__num_base*; std::__timepunct*; std::__numeric_limits_base*; std::_S_bit_count; ! std::_S_first_one; ! std::__default_alloc_template*; ! std::__malloc_alloc_template* }; # Names not in an 'extern' block are mangled names. _ZSt9has_facet*; # operator new(unsigned) _Znwj; # operator new(unsigned, std::nothrow_t const&) --- 28,147 ---- # All but the last are terminated with a semicolon. extern "C++" { ! std::[A-Za]*; ! std::ba[a-r]*; ! std::basic_[a-r]*; ! std::basic_streambuf*; ! std::basic_stringbuf*; ! std::basic_stringstream*; ! std::basic_[t-z]*; ! std::ba[t-z]*; ! std::b[b-z]*; ! std::c[a-n]*; ! std::co[a-c]*; ! std::codecvt_byname*; ! std::codecvt::[A-Za-b]*; ! std::codecvt::[A-Zd-z]*; ! std::codecvt_c; ! std::codecvt_w; ! std::co[e-z]*; ! std::c[p-z]*; ! std::c_[a-z]*; ! std::[A-Zd-k]*; ! std::length_error*; ! std::logic_error*; ! std::locale::[A-Za-z]*; ! std::locale::_[A-Ra-z]*; ! std::locale::_S_classic; ! std::locale::_S_global; ! std::locale::_S_num_categories; ! std::locale::_S_normalize_category*; ! std::locale::_[T-Za-z]*; ! std::[A-Zm-z]*; std::__throw_*; std::__basic_file*; std::__num_base*; std::__timepunct*; std::__numeric_limits_base*; std::_S_bit_count; ! std::_S_first_one }; # Names not in an 'extern' block are mangled names. + + # std::string minus binary operator plus + _ZNKSs*; + _ZNKSb*; + _ZNSs[A-Za-z]*; + _ZNSs[0-9][A-Za-z]*; + _ZNSs[0-9][0-9][A-Za-z]*; + _ZNSs[0-9]_[A-Ra-z]*; + _ZNSs[0-9][0-9]_[A-Ra-z]*; + _ZNSs12_S_empty_repEv; + _ZNSs20_S_empty_rep_storageE; + _ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE; + _ZNSs12_S_constructE*; + _ZNSs13_S_copy_charsE*; + _ZNSbIwSt11char_traitsIwESaIwEE[A-Ra-z]*; + _ZNSbIwSt11char_traitsIwESaIwEE[0-9][A-Ra-z]*; + _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9][A-Ra-z]*; + _ZNSbIwSt11char_traitsIwESaIwEE[0-9]_[A-Ra-z]*; + _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9]_[A-Ra-z]*; + _ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_chars*; + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructE[jm]wRKS1_; + _ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv; + _ZSt24__uninitialized_copy_auxIN9*; + _ZSt26__uninitialized_fill_n_aux*; + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_; + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_; + _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_; + _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_; + + # std::locale destructors + _ZNSt6localeD*; + + # std::codecvt members. + _ZNKSt7codecvtIcc11__mbstate_tE*; + # std::codecvt::~codecvt + _ZNSt7codecvtIcc11__mbstate_tED*; + # std::codecvt::codecvt(size_t), where size_t variable. + _ZNSt7codecvtIcc11__mbstate_tEC[12]E[jm]; + # std::codecvt::id + _ZNSt7codecvtIcc11__mbstate_tE2idE; + + # std::codecvt members. + _ZNKSt7codecvtIwc11__mbstate_tE*; + # std::codecvt::~codecvt + _ZNSt7codecvtIwc11__mbstate_tED*; + # std::codecvt::codecvt(size_t), where size_t variable. + _ZNSt7codecvtIwc11__mbstate_tEC[12]E[jm]; + # std::codecvt::id + _ZNSt7codecvtIwc11__mbstate_tE2idE; + + # std::use_facet + _ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale; + _ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale; + + # std::has_facet* _ZSt9has_facet*; + # std::__default_alloc_template + _ZNSt24__default_alloc_templateILb1ELi0EE10deallocate*; + _ZNSt24__default_alloc_templateILb1ELi0EE8allocate*; + _ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE; + _ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE; + _ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillE*; + + # std::__default_alloc_template to be removed in the future + _ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPv*; + _ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upE*; + _ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocE*; + _ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexE*; + _ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE; + _ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE; + _ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE; + _ZNSt24__default_alloc_templateILb1ELi0EE5_Lock*; + # operator new(unsigned) _Znwj; # operator new(unsigned, std::nothrow_t const&) *************** GLIBCPP_3.2 { *** 72,79 **** # operator delete[](void*, std::nothrow_t const&) _ZdaPvRKSt9nothrow_t; ! # vtable ! _ZTV*; _ZTT*; # typeinfo --- 170,177 ---- # operator delete[](void*, std::nothrow_t const&) _ZdaPvRKSt9nothrow_t; ! # vtable ! _ZTV*; _ZTT*; # typeinfo *************** GLIBCPP_3.2 { *** 95,100 **** --- 193,246 ---- *; }; + # Symbols added after GLIBCPP_3.2 + GLIBCPP_3.2.1 { + + _ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj; + _ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj; + _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj; + _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj; + + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_; + _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_; + + _ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE; + + # stub functions from libmath + sinf; + sinl; + sinhf; + sinhl; + cosf; + cosl; + coshf; + coshl; + tanf; + tanl; + tanhf; + tanhl; + atan2f; + atan2l; + expf; + expl; + hypotf; + hypotl; + hypot; + logf; + logl; + log10f; + log10l; + powf; + powl; + sqrtf; + sqrtl; + copysignf; + nan; + __signbit; + __signbitf; + __signbitl; + + } GLIBCPP_3.2; # Symbols in the support library (libsupc++) have their own tag. CXXABI_1.2 { diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/generic/c++locale_internal.h gcc-3.2.1/libstdc++-v3/config/locale/generic/c++locale_internal.h *** gcc-3.2/libstdc++-v3/config/locale/generic/c++locale_internal.h Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/locale/generic/c++locale_internal.h Thu Sep 5 07:45:10 2002 *************** *** 0 **** --- 1,30 ---- + // Locale internal implementation header -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // The generic locale code doesn't need to do anything here (yet) diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/generic/c_locale.cc gcc-3.2.1/libstdc++-v3/config/locale/generic/c_locale.cc *** gcc-3.2/libstdc++-v3/config/locale/generic/c_locale.cc Sat May 18 22:00:12 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/generic/c_locale.cc Thu Oct 17 02:04:13 2002 *************** namespace std *** 223,226 **** --- 223,237 ---- __c_locale locale::facet::_S_clone_c_locale(__c_locale&) { return __c_locale(); } + + const char* locale::_S_categories[_S_categories_size + + _S_extra_categories_size] = + { + "LC_CTYPE", + "LC_NUMERIC", + "LC_COLLATE", + "LC_TIME", + "LC_MONETARY", + "LC_MESSAGES" + }; } // namespace std diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/generic/c_locale.h gcc-3.2.1/libstdc++-v3/config/locale/generic/c_locale.h *** gcc-3.2/libstdc++-v3/config/locale/generic/c_locale.h Mon Mar 11 21:12:52 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/generic/c_locale.h Thu Oct 17 02:04:14 2002 *************** *** 1,6 **** // Wrapper for underlying C-language localization -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Wrapper for underlying C-language localization -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 35,41 **** --- 35,71 ---- #include + #define _GLIBCPP_NUM_CATEGORIES 0 + namespace std { typedef int* __c_locale; + + template + int + __convert_from_v(char* __out, const int __size, const char* __fmt, + _Tv __v, const __c_locale&, int __prec = -1) + { + char* __old = setlocale(LC_ALL, NULL); + char* __sav = static_cast(malloc(strlen(__old) + 1)); + if (__sav) + strcpy(__sav, __old); + setlocale(LC_ALL, "C"); + + int __ret; + #ifdef _GLIBCPP_USE_C99 + if (__prec >= 0) + __ret = snprintf(__out, __size, __fmt, __prec, __v); + else + __ret = snprintf(__out, __size, __fmt, __v); + #else + if (__prec >= 0) + __ret = sprintf(__out, __fmt, __prec, __v); + else + __ret = sprintf(__out, __fmt, __v); + #endif + setlocale(LC_ALL, __sav); + free(__sav); + return __ret; + } } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/generic/codecvt_members.cc gcc-3.2.1/libstdc++-v3/config/locale/generic/codecvt_members.cc *** gcc-3.2/libstdc++-v3/config/locale/generic/codecvt_members.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/locale/generic/codecvt_members.cc Fri Sep 13 01:21:41 2002 *************** *** 0 **** --- 1,101 ---- + // std::codecvt implementation details, generic version -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.2.1.5 - Template class codecvt + // + + // Written by Benjamin Kosnik + + #include + #include "c++locale_internal.h" + + namespace std + { + // Specializations. + #ifdef _GLIBCPP_USE_WCHAR_T + codecvt_base::result + codecvt:: + do_out(state_type& __state, const intern_type* __from, + const intern_type* __from_end, const intern_type*& __from_next, + extern_type* __to, extern_type* __to_end, + extern_type*& __to_next) const + { + result __ret = error; + size_t __len = min(__from_end - __from, __to_end - __to); + size_t __conv = wcsrtombs(__to, &__from, __len, &__state); + + if (__conv == __len) + { + __from_next = __from; + __to_next = __to + __conv; + __ret = ok; + } + else if (__conv > 0 && __conv < __len) + { + __from_next = __from; + __to_next = __to + __conv; + __ret = partial; + } + else + __ret = error; + + return __ret; + } + + codecvt_base::result + codecvt:: + do_in(state_type& __state, const extern_type* __from, + const extern_type* __from_end, const extern_type*& __from_next, + intern_type* __to, intern_type* __to_end, + intern_type*& __to_next) const + { + result __ret = error; + size_t __len = min(__from_end - __from, __to_end - __to); + size_t __conv = mbsrtowcs(__to, &__from, __len, &__state); + + if (__conv == __len) + { + __from_next = __from; + __to_next = __to + __conv; + __ret = ok; + } + else if (__conv > 0 && __conv < __len) + { + __from_next = __from; + __to_next = __to + __conv; + __ret = partial; + } + else + __ret = error; + + return __ret; + } + #endif + } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/generic/messages_members.cc gcc-3.2.1/libstdc++-v3/config/locale/generic/messages_members.cc *** gcc-3.2/libstdc++-v3/config/locale/generic/messages_members.cc Mon Mar 11 21:12:52 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/generic/messages_members.cc Sat Sep 7 19:02:21 2002 *************** namespace std *** 42,45 **** --- 42,52 ---- string messages::do_get(catalog, int, int, const string& __dfault) const { return __dfault; } + + #ifdef _GLIBCPP_USE_WCHAR_T + template<> + wstring + messages::do_get(catalog, int, int, const wstring& __dfault) const + { return __dfault; } + #endif } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/generic/time_members.cc gcc-3.2.1/libstdc++-v3/config/locale/generic/time_members.cc *** gcc-3.2/libstdc++-v3/config/locale/generic/time_members.cc Sat May 18 22:00:12 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/generic/time_members.cc Thu Oct 17 02:04:14 2002 *************** *** 39,51 **** namespace std { template<> - __timepunct::~__timepunct() - { - if (_M_c_locale_timepunct != _S_c_locale) - _S_destroy_c_locale(_M_c_locale_timepunct); - } - - template<> void __timepunct:: _M_put(char* __s, size_t __maxlen, const char* __format, --- 39,44 ---- *************** namespace std *** 122,134 **** #ifdef _GLIBCPP_USE_WCHAR_T template<> - __timepunct::~__timepunct() - { - if (_M_c_locale_timepunct != _S_c_locale) - _S_destroy_c_locale(_M_c_locale_timepunct); - } - - template<> void __timepunct:: _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, --- 115,120 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/c++locale_internal.h gcc-3.2.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h *** gcc-3.2/libstdc++-v3/config/locale/gnu/c++locale_internal.h Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/c++locale_internal.h Thu Sep 5 07:45:11 2002 *************** *** 0 **** --- 1,59 ---- + // Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // Written by Jakub Jelinek + + #include + + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + + extern "C" __typeof(iswctype_l) __iswctype_l; + extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; + extern "C" __typeof(strcoll_l) __strcoll_l; + extern "C" __typeof(strftime_l) __strftime_l; + extern "C" __typeof(strtod_l) __strtod_l; + extern "C" __typeof(strtof_l) __strtof_l; + extern "C" __typeof(strtold_l) __strtold_l; + extern "C" __typeof(strtol_l) __strtol_l; + extern "C" __typeof(strtoll_l) __strtoll_l; + extern "C" __typeof(strtoul_l) __strtoul_l; + extern "C" __typeof(strtoull_l) __strtoull_l; + extern "C" __typeof(strxfrm_l) __strxfrm_l; + extern "C" __typeof(towlower_l) __towlower_l; + extern "C" __typeof(towupper_l) __towupper_l; + extern "C" __typeof(wcscoll_l) __wcscoll_l; + extern "C" __typeof(wcsftime_l) __wcsftime_l; + extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; + extern "C" __typeof(wctype_l) __wctype_l; + extern "C" __typeof(newlocale) __newlocale; + extern "C" __typeof(freelocale) __freelocale; + extern "C" __typeof(duplocale) __duplocale; + extern "C" __typeof(uselocale) __uselocale; + + #endif // GLIBC 2.3 and later diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/c_locale.cc gcc-3.2.1/libstdc++-v3/config/locale/gnu/c_locale.cc *** gcc-3.2/libstdc++-v3/config/locale/gnu/c_locale.cc Fri Apr 19 07:59:03 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/c_locale.cc Thu Oct 17 02:04:14 2002 *************** *** 36,41 **** --- 36,42 ---- #include #include #include + #include "c++locale_internal.h" namespace std { *************** namespace std *** 177,185 **** void locale::facet::_S_destroy_c_locale(__c_locale& __cloc) ! { __freelocale(__cloc); } __c_locale locale::facet::_S_clone_c_locale(__c_locale& __cloc) { return __duplocale(__cloc); } } // namespace std --- 178,206 ---- void locale::facet::_S_destroy_c_locale(__c_locale& __cloc) ! { ! if (_S_c_locale != __cloc) ! __freelocale(__cloc); ! } __c_locale locale::facet::_S_clone_c_locale(__c_locale& __cloc) { return __duplocale(__cloc); } + + const char* locale::_S_categories[_S_categories_size + + _S_extra_categories_size] = + { + "LC_CTYPE", + "LC_NUMERIC", + "LC_COLLATE", + "LC_TIME", + "LC_MONETARY", + "LC_MESSAGES", + "LC_PAPER", + "LC_NAME", + "LC_ADDRESS", + "LC_TELEPHONE", + "LC_MEASUREMENT", + "LC_IDENTIFICATION" + }; } // namespace std diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/c_locale.h gcc-3.2.1/libstdc++-v3/config/locale/gnu/c_locale.h *** gcc-3.2/libstdc++-v3/config/locale/gnu/c_locale.h Mon Mar 11 21:12:54 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/c_locale.h Thu Oct 17 02:04:14 2002 *************** *** 1,6 **** // Wrapper for underlying C-language localization -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Wrapper for underlying C-language localization -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 40,46 **** --- 40,94 ---- #define _GLIBCPP_C_LOCALE_GNU 1 + #define _GLIBCPP_NUM_CATEGORIES 6 + + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + namespace __gnu_cxx + { + extern "C" __typeof(uselocale) __uselocale; + } + #endif + namespace std { typedef __locale_t __c_locale; + + template + int + __convert_from_v(char* __out, const int __size, const char* __fmt, + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + _Tv __v, const __c_locale& __cloc, int __prec = -1) + { + __c_locale __old = __gnu_cxx::__uselocale(__cloc); + #else + _Tv __v, const __c_locale&, int __prec = -1) + { + char* __old = setlocale(LC_ALL, NULL); + char* __sav = static_cast(malloc(strlen(__old) + 1)); + if (__sav) + strcpy(__sav, __old); + setlocale(LC_ALL, "C"); + #endif + + int __ret; + #ifdef _GLIBCPP_USE_C99 + if (__prec >= 0) + __ret = snprintf(__out, __size, __fmt, __prec, __v); + else + __ret = snprintf(__out, __size, __fmt, __v); + #else + if (__prec >= 0) + __ret = sprintf(__out, __fmt, __prec, __v); + else + __ret = sprintf(__out, __fmt, __v); + #endif + + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __gnu_cxx::__uselocale(__old); + #else + setlocale(LC_ALL, __sav); + free(__sav); + #endif + return __ret; + } } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/codecvt_members.cc gcc-3.2.1/libstdc++-v3/config/locale/gnu/codecvt_members.cc *** gcc-3.2/libstdc++-v3/config/locale/gnu/codecvt_members.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/codecvt_members.cc Tue Sep 17 00:51:50 2002 *************** *** 0 **** --- 1,113 ---- + // std::codecvt implementation details, GNU version -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.2.1.5 - Template class codecvt + // + + // Written by Benjamin Kosnik + + #include + #include "c++locale_internal.h" + + namespace std + { + // Specializations. + #ifdef _GLIBCPP_USE_WCHAR_T + codecvt_base::result + codecvt:: + do_out(state_type& __state, const intern_type* __from, + const intern_type* __from_end, const intern_type*& __from_next, + extern_type* __to, extern_type* __to_end, + extern_type*& __to_next) const + { + result __ret = error; + size_t __len = min(__from_end - __from, __to_end - __to); + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __c_locale __old = __uselocale(_S_c_locale); + #endif + size_t __conv = wcsrtombs(__to, &__from, __len, &__state); + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __uselocale(__old); + #endif + + if (__conv == __len) + { + __from_next = __from; + __to_next = __to + __conv; + __ret = ok; + } + else if (__conv > 0 && __conv < __len) + { + __from_next = __from; + __to_next = __to + __conv; + __ret = partial; + } + else + __ret = error; + + return __ret; + } + + codecvt_base::result + codecvt:: + do_in(state_type& __state, const extern_type* __from, + const extern_type* __from_end, const extern_type*& __from_next, + intern_type* __to, intern_type* __to_end, + intern_type*& __to_next) const + { + result __ret = error; + size_t __len = min(__from_end - __from, __to_end - __to); + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __c_locale __old = __uselocale(_S_c_locale); + #endif + size_t __conv = mbsrtowcs(__to, &__from, __len, &__state); + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __uselocale(__old); + #endif + + if (__conv == __len) + { + __from_next = __from; + __to_next = __to + __conv; + __ret = ok; + } + else if (__conv > 0 && __conv < __len) + { + __from_next = __from; + __to_next = __to + __conv; + __ret = partial; + } + else + __ret = error; + + return __ret; + } + #endif + } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/collate_members.cc gcc-3.2.1/libstdc++-v3/config/locale/gnu/collate_members.cc *** gcc-3.2/libstdc++-v3/config/locale/gnu/collate_members.cc Fri Apr 19 07:59:03 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/collate_members.cc Thu Sep 5 07:45:11 2002 *************** *** 1,6 **** // std::collate implementation details, GNU version -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // std::collate implementation details, GNU version -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 34,39 **** --- 34,40 ---- // Written by Benjamin Kosnik #include + #include "c++locale_internal.h" namespace std { diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc gcc-3.2.1/libstdc++-v3/config/locale/gnu/ctype_members.cc *** gcc-3.2/libstdc++-v3/config/locale/gnu/ctype_members.cc Fri May 24 16:15:25 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/ctype_members.cc Thu Oct 17 02:04:14 2002 *************** *** 34,39 **** --- 34,40 ---- // Written by Benjamin Kosnik #include + #include "c++locale_internal.h" namespace std { *************** namespace std *** 43,50 **** ctype_byname::ctype_byname(const char* __s, size_t __refs) : ctype(0, false, __refs) { ! if (_M_c_locale_ctype != _S_c_locale) ! _S_destroy_c_locale(_M_c_locale_ctype); _S_create_c_locale(_M_c_locale_ctype, __s); _M_toupper = _M_c_locale_ctype->__ctype_toupper; _M_tolower = _M_c_locale_ctype->__ctype_tolower; --- 44,50 ---- ctype_byname::ctype_byname(const char* __s, size_t __refs) : ctype(0, false, __refs) { ! _S_destroy_c_locale(_M_c_locale_ctype); _S_create_c_locale(_M_c_locale_ctype, __s); _M_toupper = _M_c_locale_ctype->__ctype_toupper; _M_tolower = _M_c_locale_ctype->__ctype_tolower; *************** namespace std *** 165,179 **** wchar_t ctype:: do_widen(char __c) const ! { return btowc(__c); } ! const char* ctype:: do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const { mbstate_t __state; memset(static_cast(&__state), 0, sizeof(mbstate_t)); mbsrtowcs(__dest, &__lo, __hi - __lo, &__state); return __hi; } --- 165,194 ---- wchar_t ctype:: do_widen(char __c) const ! { ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __c_locale __old = __uselocale(_M_c_locale_ctype); ! #endif ! wchar_t __ret = btowc(__c); ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __uselocale(__old); ! #endif ! return __ret; ! } ! const char* ctype:: do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const { + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __c_locale __old = __uselocale(_M_c_locale_ctype); + #endif mbstate_t __state; memset(static_cast(&__state), 0, sizeof(mbstate_t)); mbsrtowcs(__dest, &__lo, __hi - __lo, &__state); + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __uselocale(__old); + #endif return __hi; } *************** namespace std *** 181,187 **** --- 196,208 ---- ctype:: do_narrow(wchar_t __wc, char __dfault) const { + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __c_locale __old = __uselocale(_M_c_locale_ctype); + #endif int __c = wctob(__wc); + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __uselocale(__old); + #endif return (__c == EOF ? __dfault : static_cast(__c)); } *************** namespace std *** 190,195 **** --- 211,219 ---- do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __c_locale __old = __uselocale(_M_c_locale_ctype); + #endif size_t __offset = 0; while (true) { *************** namespace std *** 207,212 **** --- 231,239 ---- else break; } + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __uselocale(__old); + #endif return __hi; } #endif // _GLIBCPP_USE_WCHAR_T diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/messages_members.cc gcc-3.2.1/libstdc++-v3/config/locale/gnu/messages_members.cc *** gcc-3.2/libstdc++-v3/config/locale/gnu/messages_members.cc Sat May 18 22:00:14 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/messages_members.cc Thu Sep 5 07:45:11 2002 *************** *** 34,39 **** --- 34,40 ---- // Written by Benjamin Kosnik #include + #include "c++locale_internal.h" namespace std { *************** namespace std *** 56,59 **** --- 57,81 ---- return string(__msg); #endif } + + #ifdef _GLIBCPP_USE_WCHAR_T + template<> + wstring + messages::do_get(catalog, int, int, const wstring& __dfault) const + { + # if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + __c_locale __old = __uselocale(_M_c_locale_messages); + char* __msg = gettext(_M_convert_to_char(__dfault)); + __uselocale(__old); + return _M_convert_from_char(__msg); + # else + char* __old = strdup(setlocale(LC_ALL, NULL)); + setlocale(LC_ALL, _M_name_messages); + char* __msg = gettext(_M_convert_to_char(__dfault)); + setlocale(LC_ALL, __old); + free(__old); + return _M_convert_from_char(__msg); + # endif + } + #endif } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/messages_members.h gcc-3.2.1/libstdc++-v3/config/locale/gnu/messages_members.h *** gcc-3.2/libstdc++-v3/config/locale/gnu/messages_members.h Sat May 18 22:00:14 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/messages_members.h Thu Sep 5 07:45:11 2002 *************** *** 55,80 **** } template - typename messages<_CharT>::string_type - messages<_CharT>::do_get(catalog, int, int, - const string_type& __dfault) const - { - #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) - __c_locale __old = __uselocale(_M_c_locale_messages); - char* __msg = gettext(_M_convert_to_char(__dfault)); - __uselocale(__old); - return _M_convert_from_char(__msg); - #else - char* __old = strdup(setlocale(LC_ALL, NULL)); - setlocale(LC_ALL, _M_name_messages); - char* __msg = gettext(_M_convert_to_char(__dfault)); - setlocale(LC_ALL, __old); - free(__old); - return _M_convert_from_char(__msg); - #endif - } - - template void messages<_CharT>::do_close(catalog) const { } --- 55,60 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/monetary_members.cc gcc-3.2.1/libstdc++-v3/config/locale/gnu/monetary_members.cc *** gcc-3.2/libstdc++-v3/config/locale/gnu/monetary_members.cc Fri Jul 26 23:23:42 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/monetary_members.cc Thu Oct 17 02:04:14 2002 *************** *** 34,39 **** --- 34,40 ---- // Written by Benjamin Kosnik #include + #include "c++locale_internal.h" namespace std { *************** namespace std *** 219,225 **** moneypunct::_M_initialize_moneypunct(__c_locale __cloc, const char*) { ! if (__cloc == _S_c_locale) { // "C" locale _M_decimal_point = '.'; --- 220,226 ---- moneypunct::_M_initialize_moneypunct(__c_locale __cloc, const char*) { ! if (!__cloc) { // "C" locale _M_decimal_point = '.'; *************** namespace std *** 264,270 **** moneypunct::_M_initialize_moneypunct(__c_locale __cloc, const char*) { ! if (__cloc == _S_c_locale) { // "C" locale _M_decimal_point = '.'; --- 265,271 ---- moneypunct::_M_initialize_moneypunct(__c_locale __cloc, const char*) { ! if (!__cloc) { // "C" locale _M_decimal_point = '.'; *************** namespace std *** 318,324 **** moneypunct::_M_initialize_moneypunct(__c_locale __cloc, const char* __name) { ! if (__cloc == _S_c_locale) { // "C" locale _M_decimal_point = L'.'; --- 319,325 ---- moneypunct::_M_initialize_moneypunct(__c_locale __cloc, const char* __name) { ! if (!__cloc) { // "C" locale _M_decimal_point = L'.'; *************** namespace std *** 334,356 **** else { // Named locale. ! // XXX Fix me. Switch to named locale so that mbsrtowcs will work. char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, __name); _M_decimal_point = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); _M_thousands_sep = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); - mbstate_t __state; - size_t __len; const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); ! // NB: Should swich to __cloc's ctype info first. ! __len = strlen(__cpossign); if (__len) { ++__len; --- 335,359 ---- else { // Named locale. ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __c_locale __old = __uselocale(__cloc); ! #else ! // Switch to named locale so that mbsrtowcs will work. char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, __name); + #endif _M_decimal_point = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); _M_thousands_sep = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); ! mbstate_t __state; ! size_t __len = strlen(__cpossign); if (__len) { ++__len; *************** namespace std *** 399,407 **** char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn); ! // XXX setlocale(LC_ALL, __old); free(__old); } } --- 402,413 ---- char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn); ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __uselocale(__old); ! #else setlocale(LC_ALL, __old); free(__old); + #endif } } *************** namespace std *** 410,416 **** moneypunct::_M_initialize_moneypunct(__c_locale __cloc, const char* __name) { ! if (__cloc == _S_c_locale) { // "C" locale _M_decimal_point = L'.'; --- 416,422 ---- moneypunct::_M_initialize_moneypunct(__c_locale __cloc, const char* __name) { ! if (!__cloc) { // "C" locale _M_decimal_point = L'.'; *************** namespace std *** 426,446 **** else { // Named locale. ! // XXX Fix me. Switch to named locale so that mbsrtowcs will work. char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, __name); _M_decimal_point = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); _M_thousands_sep = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); - mbstate_t __state; - size_t __len; const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); ! // NB: Should swich to __cloc's ctype info first. __len = strlen(__cpossign); if (__len) { --- 432,455 ---- else { // Named locale. ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __c_locale __old = __uselocale(__cloc); ! #else ! // Switch to named locale so that mbsrtowcs will work. char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, __name); + #endif _M_decimal_point = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); _M_thousands_sep = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); _M_grouping = __nl_langinfo_l(GROUPING, __cloc); const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); ! mbstate_t __state; ! size_t __len; __len = strlen(__cpossign); if (__len) { *************** namespace std *** 490,498 **** char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn); ! // XXX setlocale(LC_ALL, __old); free(__old); } } --- 499,510 ---- char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn); ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __uselocale(__old); ! #else setlocale(LC_ALL, __old); free(__old); + #endif } } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/numeric_members.cc gcc-3.2.1/libstdc++-v3/config/locale/gnu/numeric_members.cc *** gcc-3.2/libstdc++-v3/config/locale/gnu/numeric_members.cc Fri Apr 19 07:59:03 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/numeric_members.cc Thu Oct 17 02:04:14 2002 *************** *** 34,39 **** --- 34,40 ---- // Written by Benjamin Kosnik #include + #include "c++locale_internal.h" namespace std { *************** namespace std *** 41,47 **** void numpunct::_M_initialize_numpunct(__c_locale __cloc) { ! if (__cloc == _S_c_locale) { // "C" locale _M_decimal_point = '.'; --- 42,48 ---- void numpunct::_M_initialize_numpunct(__c_locale __cloc) { ! if (!__cloc) { // "C" locale _M_decimal_point = '.'; *************** namespace std *** 75,81 **** void numpunct::_M_initialize_numpunct(__c_locale __cloc) { ! if (__cloc == _S_c_locale) { // "C" locale _M_decimal_point = L'.'; --- 76,82 ---- void numpunct::_M_initialize_numpunct(__c_locale __cloc) { ! if (!__cloc) { // "C" locale _M_decimal_point = L'.'; diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/gnu/time_members.cc gcc-3.2.1/libstdc++-v3/config/locale/gnu/time_members.cc *** gcc-3.2/libstdc++-v3/config/locale/gnu/time_members.cc Sat May 18 22:00:14 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/gnu/time_members.cc Thu Oct 17 02:04:14 2002 *************** *** 35,58 **** // Written by Benjamin Kosnik #include namespace std { template<> - __timepunct::~__timepunct() - { - if (_M_c_locale_timepunct != _S_c_locale) - _S_destroy_c_locale(_M_c_locale_timepunct); - } - - template<> void __timepunct:: _M_put(char* __s, size_t __maxlen, const char* __format, const tm* __tm) const { #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __strftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, _M_name_timepunct); --- 35,52 ---- // Written by Benjamin Kosnik #include + #include "c++locale_internal.h" namespace std { template<> void __timepunct:: _M_put(char* __s, size_t __maxlen, const char* __format, const tm* __tm) const { #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __strftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); #else char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, _M_name_timepunct); *************** namespace std *** 66,74 **** void __timepunct::_M_initialize_timepunct(__c_locale __cloc) { ! if (__cloc == _S_c_locale) { // "C" locale _M_date_format = "%m/%d/%y"; _M_date_era_format = "%m/%d/%y"; _M_time_format = "%H:%M:%S"; --- 60,70 ---- void __timepunct::_M_initialize_timepunct(__c_locale __cloc) { ! if (!__cloc) { // "C" locale + _M_c_locale_timepunct = _S_c_locale; + _M_date_format = "%m/%d/%y"; _M_date_era_format = "%m/%d/%y"; _M_time_format = "%H:%M:%S"; *************** namespace std *** 189,208 **** #ifdef _GLIBCPP_USE_WCHAR_T template<> - __timepunct::~__timepunct() - { - if (_M_c_locale_timepunct != _S_c_locale) - _S_destroy_c_locale(_M_c_locale_timepunct); - } - - template<> void __timepunct:: _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, const tm* __tm) const { #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __wcsftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, _M_name_timepunct); --- 185,197 ---- #ifdef _GLIBCPP_USE_WCHAR_T template<> void __timepunct:: _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, const tm* __tm) const { #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); #else char* __old = strdup(setlocale(LC_ALL, NULL)); setlocale(LC_ALL, _M_name_timepunct); *************** namespace std *** 216,224 **** void __timepunct::_M_initialize_timepunct(__c_locale __cloc) { ! if (__cloc == _S_c_locale) { // "C" locale _M_date_format = L"%m/%d/%y"; _M_date_era_format = L"%m/%d/%y"; _M_time_format = L"%H:%M:%S"; --- 205,215 ---- void __timepunct::_M_initialize_timepunct(__c_locale __cloc) { ! if (!__cloc) { // "C" locale + _M_c_locale_timepunct = _S_c_locale; + _M_date_format = L"%m/%d/%y"; _M_date_era_format = L"%m/%d/%y"; _M_time_format = L"%H:%M:%S"; diff -Nrc3pad gcc-3.2/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc gcc-3.2.1/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc *** gcc-3.2/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc Mon Mar 11 21:12:57 2002 --- gcc-3.2.1/libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc Sat Sep 7 19:02:21 2002 *************** namespace std *** 46,49 **** --- 46,61 ---- nl_catd __nlc = reinterpret_cast(__c); return string(catgets(__nlc, __setid, __msgid, __dfault.c_str())); } + + #ifdef _GLIBCPP_USE_WCHAR_T + template<> + wstring + messages::do_get(catalog, int, int, const wstring& __dfault) const + { + nl_catd __nlc = reinterpret_cast(__c); + char* __msg = catgets(__nlc, __setid, __msgid, + _M_convert_to_char(__dfault)); + return _M_convert_from_char(__msg); + } + #endif } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h gcc-3.2.1/libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h *** gcc-3.2/libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h Wed Jan 16 19:57:27 2002 --- gcc-3.2.1/libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h Mon Sep 9 20:58:40 2002 *************** *** 1,6 **** // Locale support -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Locale support -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 33,52 **** // Information as gleaned from /usr/include/ctype.h - #if _GLIBCPP_USE_SHADOW_HEADERS - using _C_legacy::_ISspace; - using _C_legacy::_ISprint; - using _C_legacy::_IScntrl; - using _C_legacy::_ISupper; - using _C_legacy::_ISlower; - using _C_legacy::_ISalpha; - using _C_legacy::_ISdigit; - using _C_legacy::_ISpunct; - using _C_legacy::_ISxdigit; - using _C_legacy::_ISalnum; - using _C_legacy::_ISgraph; - #endif - struct ctype_base { // Non-standard typedefs. --- 33,38 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h gcc-3.2.1/libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h *** gcc-3.2/libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h Fri Apr 19 07:59:07 2002 --- gcc-3.2.1/libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h Thu Oct 17 02:04:15 2002 *************** *** 34,49 **** // Information as gleaned from /usr/include/ctype.h ! #if _GLIBCPP_USE_SHADOW_HEADERS ! using _C_legacy::__ctype_toupper; ! using _C_legacy::__ctype_tolower; ! using _C_legacy::__ctype_b; ! #endif ! const ctype_base::mask* ctype::classic_table() throw() ! { return __ctype_b; } ! #if _GLIBCPP_C_LOCALE_GNU ctype::ctype(__c_locale __cloc, const mask* __table, bool __del, size_t __refs) --- 34,64 ---- // Information as gleaned from /usr/include/ctype.h ! #if _GLIBCPP_C_LOCALE_GNU const ctype_base::mask* ctype::classic_table() throw() ! { ! locale::classic(); ! return _S_c_locale->__ctype_b; ! } ! #else ! const ctype_base::mask* ! ctype::classic_table() throw() ! { ! const ctype_base::mask* __ret; ! char* __old = strdup(setlocale(LC_CTYPE, NULL)); ! setlocale(LC_CTYPE, "C"); ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! __ret = *__ctype_b_loc(); ! #else ! __ret = __ctype_b; ! #endif ! setlocale(LC_CTYPE, __old); ! free(__old); ! return __ret; ! } ! #endif ! #if _GLIBCPP_C_LOCALE_GNU ctype::ctype(__c_locale __cloc, const mask* __table, bool __del, size_t __refs) *************** *** 57,73 **** #else ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) ! : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), ! _M_toupper(__ctype_toupper), _M_tolower(__ctype_tolower), ! _M_table(__table ? __table : classic_table()) ! { _M_c_locale_ctype = _S_c_locale; } #endif ctype::ctype(const mask* __table, bool __del, size_t __refs) : ! __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), ! _M_toupper(__ctype_toupper), _M_tolower(__ctype_tolower), ! _M_table(__table ? __table : classic_table()) ! { _M_c_locale_ctype = _S_c_locale; } char ctype::do_toupper(char __c) const --- 72,125 ---- #else ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) ! : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del) ! { ! char* __old=strdup(setlocale(LC_CTYPE, NULL)); ! setlocale(LC_CTYPE, "C"); ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! _M_toupper = *__ctype_toupper_loc(); ! _M_tolower = *__ctype_tolower_loc(); ! _M_table = __table ? __table : *__ctype_b_loc(); ! #else ! _M_toupper = __ctype_toupper; ! _M_tolower = __ctype_tolower; ! _M_table = __table ? __table : __ctype_b; ! #endif ! setlocale(LC_CTYPE, __old); ! free(__old); ! _M_c_locale_ctype = _S_c_locale; ! } #endif + #if _GLIBCPP_C_LOCALE_GNU ctype::ctype(const mask* __table, bool __del, size_t __refs) : ! __ctype_abstract_base(__refs), _M_del(__table != 0 && __del) ! { ! _M_c_locale_ctype = _S_c_locale; ! _M_toupper = _M_c_locale_ctype->__ctype_toupper; ! _M_tolower = _M_c_locale_ctype->__ctype_tolower; ! _M_table = __table ? __table : _M_c_locale_ctype->__ctype_b; ! } ! #else ! ctype::ctype(const mask* __table, bool __del, size_t __refs) : ! __ctype_abstract_base(__refs), _M_del(__table != 0 && __del) ! { ! char* __old=strdup(setlocale(LC_CTYPE, NULL)); ! setlocale(LC_CTYPE, "C"); ! #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) ! _M_toupper = *__ctype_toupper_loc(); ! _M_tolower = *__ctype_tolower_loc(); ! _M_table = __table ? __table : *__ctype_b_loc(); ! #else ! _M_toupper = __ctype_toupper; ! _M_tolower = __ctype_tolower; ! _M_table = __table ? __table : __ctype_b; ! #endif ! setlocale(LC_CTYPE, __old); ! free(__old); ! _M_c_locale_ctype = _S_c_locale; ! } ! #endif char ctype::do_toupper(char __c) const diff -Nrc3pad gcc-3.2/libstdc++-v3/config/os/newlib/bits/ctype_inline.h gcc-3.2.1/libstdc++-v3/config/os/newlib/bits/ctype_inline.h *** gcc-3.2/libstdc++-v3/config/os/newlib/bits/ctype_inline.h Tue Dec 19 19:48:59 2000 --- gcc-3.2.1/libstdc++-v3/config/os/newlib/bits/ctype_inline.h Thu Aug 15 22:25:09 2002 *************** *** 1,6 **** // Locale support -*- C++ -*- ! // Copyright (C) 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Locale support -*- C++ -*- ! // Copyright (C) 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 37,50 **** bool ctype:: is(mask __m, char __c) const ! { return (_M_table + 1)[(unsigned char)(__c)] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) ! *__vec++ = (_M_table + 1)[(unsigned char) (*__low++)]; return __high; } --- 37,50 ---- bool ctype:: is(mask __m, char __c) const ! { return _M_table[static_cast(__c)] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) ! *__vec++ = _M_table[static_cast(*__low++)]; return __high; } *************** *** 52,58 **** ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && !((_M_table + 1)[(unsigned char)(*__low)] & __m)) ++__low; return __low; } --- 52,58 ---- ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && !this->is(__m, *__low)) ++__low; return __low; } *************** *** 61,73 **** ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high ! && ((_M_table + 1)[(unsigned char)(*__low)] & __m) != 0) ++__low; return __low; } - - - - - --- 61,67 ---- ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && this->is(__m, *__low) != 0) ++__low; return __low; } diff -Nrc3pad gcc-3.2/libstdc++-v3/config/os/newlib/bits/ctype_noninline.h gcc-3.2.1/libstdc++-v3/config/os/newlib/bits/ctype_noninline.h *** gcc-3.2/libstdc++-v3/config/os/newlib/bits/ctype_noninline.h Mon Mar 25 23:39:17 2002 --- gcc-3.2.1/libstdc++-v3/config/os/newlib/bits/ctype_noninline.h Thu Aug 15 22:25:09 2002 *************** *** 35,41 **** const ctype_base::mask* ctype::classic_table() throw() ! { return _ctype_; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) --- 35,41 ---- const ctype_base::mask* ctype::classic_table() throw() ! { return _ctype_ + 1; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) diff -Nrc3pad gcc-3.2/libstdc++-v3/config.h.in gcc-3.2.1/libstdc++-v3/config.h.in *** gcc-3.2/libstdc++-v3/config.h.in Mon May 27 15:01:29 2002 --- gcc-3.2.1/libstdc++-v3/config.h.in Thu Oct 17 02:03:18 2002 *************** *** 24,29 **** --- 24,43 ---- // Define to use concept checking code from the boost libraries. #undef _GLIBCPP_CONCEPT_CHECKS + // Define to use symbol versioning in the shared library. + #undef _GLIBCPP_SYMVER + + // Define symbol versioning in assember directives. If symbol + // versioning is beigng used, and the assembler supports this kind of + // thing, then use it. + // NB: _GLIBCPP_AT_AT is a hack to work around quoting issues in m4. + #if _GLIBCPP_SYMVER + #define _GLIBCPP_ASM_SYMVER(cur, old, version) \ + asm (".symver " #cur "," #old _GLIBCPP_AT_AT #version); + #else + #define _GLIBCPP_ASM_SYMVER(cur, old, version) + #endif + // Define if mbstate_t exists in wchar.h. #undef HAVE_MBSTATE_T diff -Nrc3pad gcc-3.2/libstdc++-v3/configure gcc-3.2.1/libstdc++-v3/configure *** gcc-3.2/libstdc++-v3/configure Fri Jul 26 23:23:04 2002 --- gcc-3.2.1/libstdc++-v3/configure Mon Oct 21 19:34:40 2002 *************** program_suffix=NONE *** 85,91 **** program_transform_name=s,x,x, silent= site= - sitefile= srcdir= target=NONE verbose= --- 85,90 ---- *************** Configuration: *** 200,206 **** --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 --- 199,204 ---- *************** EOF *** 371,381 **** -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=*) --- 369,374 ---- *************** fi *** 541,556 **** 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 --- 534,545 ---- 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 *************** ORIGINAL_LD_FOR_MULTILIBS=$LD *** 599,605 **** PACKAGE=libstdc++ # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=5:0:0 --- 588,594 ---- PACKAGE=libstdc++ # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=5:1:0 *************** else { echo "configure: error: can not r *** 688,694 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:692: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 677,683 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:681: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** host_os=`echo $host | sed 's/^\([^-]*\)- *** 709,715 **** echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:713: checking target system type" >&5 target_alias=$target case "$target_alias" in --- 698,704 ---- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:702: checking target system type" >&5 target_alias=$target case "$target_alias" in *************** target_os=`echo $target | sed 's/^\([^-] *** 727,733 **** echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:731: checking build system type" >&5 build_alias=$build case "$build_alias" in --- 716,722 ---- echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:720: checking build system type" >&5 build_alias=$build case "$build_alias" in *************** else *** 762,773 **** fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ! echo "configure:766: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:755: 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 --- 767,773 ---- return __CYGWIN__; ; return 0; } EOF ! if { (eval echo configure:771: \"$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 *** 795,813 **** CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:799: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else --- 784,802 ---- CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:788: 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 *************** do *** 846,852 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:850: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 835,841 ---- # 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:839: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** done *** 880,886 **** # force a particular method. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:884: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 869,875 ---- # force a particular method. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:873: 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 *** 937,943 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:941: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 926,932 ---- # 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:930: 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 *** 967,973 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:971: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 956,962 ---- # 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:960: 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 *** 1016,1022 **** fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1020: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1005,1011 ---- fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1009: 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 *** 1025,1031 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 1014,1020 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** echo "$ac_t""$ac_cv_prog_gcc" 1>&6 *** 1040,1046 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1044: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1029,1035 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1033: 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 *** 1083,1089 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1087: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_glibcpp_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1072,1078 ---- # 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:1076: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_glibcpp_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test -n "$glibcpp_CXX" || glibcpp_CXX="g *** 1118,1124 **** test -z "$glibcpp_CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:1122: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1107,1113 ---- 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:1111: 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 *** 1127,1133 **** yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1131: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no --- 1116,1122 ---- yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1120: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no *************** echo "$ac_t""$ac_cv_prog_gxx" 1>&6 *** 1142,1148 **** ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1146: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1131,1137 ---- ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1135: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 *** 1172,1208 **** # For directory versioning (e.g., headers) and other variables. echo $ac_n "checking for GCC version number""... $ac_c" 1>&6 ! echo "configure:1176: checking for GCC version number" >&5 gcc_version=`$glibcpp_CXX -dumpversion` echo "$ac_t""$gcc_version" 1>&6 # For some reason, gettext needs this. ! echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 ! echo "configure:1182: checking for POSIXized ISC" >&5 ! if test -d /etc/conf/kconfig.d && ! grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 ! then ! echo "$ac_t""yes" 1>&6 ! ISC=yes # If later tests want to check for ISC. ! cat >> confdefs.h <<\EOF ! #define _POSIX_SOURCE 1 EOF ! if test "$GCC" = yes; then ! CC="$CC -posix" ! else ! CC="$CC -Xp" ! fi else echo "$ac_t""no" 1>&6 - ISC= fi # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1206: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1161,1219 ---- # For directory versioning (e.g., headers) and other variables. echo $ac_n "checking for GCC version number""... $ac_c" 1>&6 ! echo "configure:1165: checking for GCC version number" >&5 gcc_version=`$glibcpp_CXX -dumpversion` echo "$ac_t""$gcc_version" 1>&6 # For some reason, gettext needs this. ! ! echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 ! echo "configure:1172: checking for strerror in -lcposix" >&5 ! ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` ! if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_save_LIBS="$LIBS" ! LIBS="-lcposix $LIBS" ! cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" + fi + rm -f conftest* + LIBS="$ac_save_LIBS" ! fi ! if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! LIBS="$LIBS -lcposix" else echo "$ac_t""no" 1>&6 fi + + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1217: 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 *** 1234,1240 **** # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1238: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1245,1251 ---- # 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:1249: 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 *** 1266,1272 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1270: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1277,1283 ---- # 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:1281: 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 *** 1298,1304 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1302: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1309,1315 ---- # 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:1313: 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 *** 1342,1348 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1346: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1353,1359 ---- # 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:1357: 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= *** 1396,1402 **** echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:1400: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" --- 1407,1413 ---- echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:1411: 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 *** 1434,1440 **** echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1438: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1445,1451 ---- echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1449: 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 *** 1444,1453 **** rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in ! *.c | *.o | *.obj | *.ilk | *.pdb) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done --- 1455,1464 ---- rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in ! *.$ac_ext | *.c | *.o | *.obj) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done *************** ac_exeext=$EXEEXT *** 1481,1487 **** echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 ! echo "configure:1485: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile --- 1492,1498 ---- echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 ! echo "configure:1496: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile *************** test "$program_suffix" != NONE && *** 1538,1544 **** test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:1542: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1549,1555 ---- 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:1553: 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 *************** EOF *** 1584,1590 **** missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 ! echo "configure:1588: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. --- 1595,1601 ---- missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 ! echo "configure:1599: 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 *** 1597,1603 **** fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ! echo "configure:1601: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. --- 1608,1614 ---- fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ! echo "configure:1612: 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 *** 1610,1616 **** fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 ! echo "configure:1614: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. --- 1621,1627 ---- fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 ! echo "configure:1625: 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 *** 1623,1629 **** fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ! echo "configure:1627: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. --- 1634,1640 ---- fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ! echo "configure:1638: 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 *** 1636,1642 **** fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ! echo "configure:1640: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. --- 1647,1653 ---- fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ! echo "configure:1651: 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. *************** ac_prog=ld *** 1735,1741 **** if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1739: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw --- 1746,1752 ---- 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:1750: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw *************** echo "configure:1739: checking for ld us *** 1765,1774 **** esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1769: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1772: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1776,1785 ---- esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1780: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1783: 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 *** 1803,1809 **** fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1807: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1814,1820 ---- 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:1818: 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 *** 1820,1826 **** echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1824: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1831,1837 ---- echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1835: 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 *** 1832,1838 **** test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1836: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1843,1849 ---- test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1847: 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" *** 1870,1876 **** echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1874: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1881,1887 ---- echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1885: 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 *** 2034,2046 **** deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2038: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:2044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; --- 2045,2057 ---- deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2049: 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:2055: \"$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 *** 2064,2070 **** file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:2068: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2075,2081 ---- 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:2079: 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 *** 2126,2132 **** if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:2130: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2137,2143 ---- 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:2141: 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 *** 2197,2203 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2201: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2208,2214 ---- # 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:2212: 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 *** 2229,2235 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2233: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2240,2246 ---- # 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:2244: 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 *** 2264,2270 **** # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2268: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2275,2281 ---- # 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:2279: 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 *** 2296,2302 **** # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2300: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2307,2313 ---- # 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:2311: 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 *** 2363,2370 **** case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2367 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2368: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" --- 2374,2381 ---- case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2378 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2379: \"$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 *** 2385,2391 **** SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2389: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2396,2402 ---- SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2400: 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 *** 2398,2411 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else --- 2409,2422 ---- 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 *** 2435,2441 **** esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2439: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2446,2452 ---- esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2450: 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 *** 2448,2459 **** cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2457: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2459,2470 ---- 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:2468: \"$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 *** 2591,2597 **** # Check for c++ or library specific bits that don't require linking. #GLIBCPP_CHECK_COMPILER_VERSION echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2595: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2602,2608 ---- # Check for c++ or library specific bits that don't require linking. #GLIBCPP_CHECK_COMPILER_VERSION echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2606: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 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" *************** fi *** 2918,2924 **** case x${target_os} in xlinux* | xgnu*) cat > conftest.$ac_ext < --- 2929,2935 ---- case x${target_os} in xlinux* | xgnu*) cat > conftest.$ac_ext < *************** rm -f conftest* *** 2944,2954 **** enable_clocale_flag=generic else cat > conftest.$ac_ext < int main() { const char __one[] = "Äuglein Augmen"; --- 2955,2971 ---- enable_clocale_flag=generic else cat > conftest.$ac_ext < + #include + #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) + extern __typeof(newlocale) __newlocale; + extern __typeof(duplocale) __duplocale; + extern __typeof(strcoll_l) __strcoll_l; + #endif int main() { const char __one[] = "Äuglein Augmen"; *************** else *** 2965,2971 **** } EOF ! if { (eval echo configure:2969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then enable_clocale_flag=gnu else --- 2982,2988 ---- } EOF ! if { (eval echo configure:2986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then enable_clocale_flag=gnu else *************** fi *** 3004,3009 **** --- 3021,3027 ---- CLOCALE_H=config/locale/generic/c_locale.h CLOCALE_CC=config/locale/generic/c_locale.cc CCODECVT_H=config/locale/generic/codecvt_specializations.h + CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/generic/ctype_members.cc CMESSAGES_H=config/locale/generic/messages_members.h *************** fi *** 3011,3016 **** --- 3029,3035 ---- CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_CC=config/locale/generic/time_members.cc + CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; xgnu) echo "$ac_t""gnu" 1>&6 *************** fi *** 3024,3030 **** # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3028: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3043,3049 ---- # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3047: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3065,3070 **** --- 3084,3090 ---- CLOCALE_H=config/locale/gnu/c_locale.h CLOCALE_CC=config/locale/gnu/c_locale.cc CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h + CCODECVT_CC=config/locale/gnu/codecvt_members.cc CCOLLATE_CC=config/locale/gnu/collate_members.cc CCTYPE_CC=config/locale/gnu/ctype_members.cc CMESSAGES_H=config/locale/gnu/messages_members.h *************** fi *** 3072,3077 **** --- 3092,3098 ---- CMONEY_CC=config/locale/gnu/monetary_members.cc CNUMERIC_CC=config/locale/gnu/numeric_members.cc CTIME_CC=config/locale/gnu/time_members.cc + CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h ;; xieee_1003.1-2001) echo "$ac_t""generic" 1>&6 *************** fi *** 3079,3084 **** --- 3100,3106 ---- CLOCALE_H=config/locale/ieee_1003.1-2001/c_locale.h CLOCALE_CC=config/locale/ieee_1003.1-2001/c_locale.cc CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h + CCODECVT_CC=config/locale/generic/codecvt_members.cc CCOLLATE_CC=config/locale/generic/collate_members.cc CCTYPE_CC=config/locale/generic/ctype_members.cc CMESSAGES_H=config/locale/ieee_1003.1-2001/messages_members.h *************** fi *** 3086,3091 **** --- 3108,3114 ---- CMONEY_CC=config/locale/generic/monetary_members.cc CNUMERIC_CC=config/locale/generic/numeric_members.cc CTIME_CC=config/locale/generic/time_members.cc + CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h ;; *) echo "$enable_clocale is an unknown locale package" 1>&2 *************** fi *** 3098,3109 **** --- 3121,3138 ---- glibcpp_localedir=${glibcpp_builddir}/po/share/locale + # For the time being, transform ctype_noninline.h to ctype_members_char.cc + # CCTYPE_CHAR_CC=config/${os_include_dir}/ctype_noninline.h + + + # AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc) + *************** cross_compiling=$ac_cv_prog_cxx_cross *** 3147,3162 **** # Check for the existence of functions used if C99 is enabled. ac_c99_math=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3151: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:3160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3176,3191 ---- # 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:3180: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:3189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3166,3179 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3195,3208 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3183,3196 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3212,3225 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3200,3213 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3229,3242 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3240: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3217,3230 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3246,3259 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; 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 *************** else *** 3234,3247 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3263,3276 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3274: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3251,3264 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3280,3293 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3268,3281 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3297,3310 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3308: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3285,3298 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3296: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3314,3327 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3325: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3302,3315 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3331,3344 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3319,3332 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3348,3361 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3336,3349 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3365,3378 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3357,3372 **** # Check for the existence in of vscanf, et. al. ac_c99_stdio=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3361: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3386,3401 ---- # 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:3390: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3376,3382 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3405,3411 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3387,3393 **** ; return 0; } EOF ! if { (eval echo configure:3391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3416,3422 ---- ; return 0; } EOF ! if { (eval echo configure:3420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3397,3403 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3426,3432 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3408,3414 **** ; return 0; } EOF ! if { (eval echo configure:3412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3437,3443 ---- ; return 0; } EOF ! if { (eval echo configure:3441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3418,3424 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3447,3453 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3429,3435 **** ; return 0; } EOF ! if { (eval echo configure:3433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3458,3464 ---- ; return 0; } EOF ! if { (eval echo configure:3462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3439,3445 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3468,3474 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3450,3456 **** ; return 0; } EOF ! if { (eval echo configure:3454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3479,3485 ---- ; return 0; } EOF ! if { (eval echo configure:3483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3464,3483 **** # Check for the existence in of lldiv_t, et. al. ac_c99_stdlib=yes; echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6 ! echo "configure:3468: checking for lldiv_t declaration" >&5 if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { lldiv_t mydivt; ; return 0; } EOF ! if { (eval echo configure:3481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else --- 3493,3512 ---- # 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:3497: 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:3510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else *************** fi *** 3493,3508 **** echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3497: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { char* tmp; strtof("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3522,3537 ---- echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3526: 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:3535: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3512,3525 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3541,3554 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3529,3542 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3558,3571 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3546,3559 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3575,3588 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3563,3576 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3592,3605 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3580,3593 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3609,3622 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3605,3620 **** # XXX the wchar.h checks should be rolled into the general C99 bits. ac_c99_wchar=yes; echo $ac_n "checking for additional ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3609: checking for additional ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { wcstold(L"10.0", NULL); ; return 0; } EOF ! if { (eval echo configure:3618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3634,3649 ---- # 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:3638: 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:3647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3624,3637 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3653,3666 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3641,3654 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3670,3683 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3681: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3660,3666 **** echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3664: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || --- 3689,3695 ---- echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3693: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || *************** cross_compiling=$ac_cv_prog_cxx_cross *** 3708,3724 **** echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3712: checking for enabled long long I/O support" >&5 # iostreams require strtoll, strtoull to compile cat > conftest.$ac_ext < int main() { char* tmp; strtoll("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3737,3753 ---- echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3741: 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:3751: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3728,3741 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3757,3770 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** cross_compiling=$ac_cv_prog_cc_cross *** 3763,3769 **** echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3767: checking for c header strategy to use" >&5 # Check whether --enable-cheaders or --disable-cheaders was given. if test "${enable_cheaders+set}" = set; then enableval="$enable_cheaders" --- 3792,3798 ---- echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3796: 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 *** 3830,3836 **** echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3834: checking for thread model used by GCC" >&5 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$target_thread_file" 1>&6 --- 3859,3865 ---- echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3863: 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" *** 3883,3889 **** echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3887: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 3912,3918 ---- echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3916: 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}" *** 3898,3904 **** : else cat > conftest.$ac_ext << EOF ! #line 3902 "configure" struct S { ~S(); }; void bar(); void foo() --- 3927,3933 ---- : else cat > conftest.$ac_ext << EOF ! #line 3931 "configure" struct S { ~S(); }; void bar(); void foo() *************** void foo() *** 3909,3915 **** EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-S -fexceptions" ! if { (eval echo configure:3913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then --- 3938,3944 ---- EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-S -fexceptions" ! if { (eval echo configure:3942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then *************** cross_compiling=$ac_cv_prog_cc_cross *** 3942,3948 **** echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6 ! echo "configure:3946: checking for use of libunwind" >&5 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given. if test "${enable_libunwind_exceptions+set}" = set; then enableval="$enable_libunwind_exceptions" --- 3971,3977 ---- echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6 ! echo "configure:3975: checking for use of libunwind" >&5 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given. if test "${enable_libunwind_exceptions+set}" = set; then enableval="$enable_libunwind_exceptions" *************** for ac_hdr in string.h stdlib.h *** 3983,3999 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:3987: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3997: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4012,4028 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4016: 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:4026: \"$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 -n "$with_cross_host" || test x" *** 4051,4057 **** # GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT # GLIBCPP_CHECK_MATH_SUPPORT ! case "$target_alias" in *-linux*) # Check for available headers. for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \ --- 4080,4086 ---- # GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT # GLIBCPP_CHECK_MATH_SUPPORT ! case "$target" in *-linux*) # Check for available headers. for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \ *************** if test -n "$with_cross_host" || test x" *** 4060,4076 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4064: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4074: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4089,4105 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4093: 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:4103: \"$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 *** 4148,4159 **** # 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:4152: 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:4181: 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 --- 4193,4199 ---- } EOF ! if { (eval echo configure:4197: \"$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 *** 4198,4204 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4202: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4227,4233 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4231: 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 *** 4206,4219 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4235,4248 ---- 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 *** 4243,4254 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4247: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4276: checking for $ac_func" >&5 if 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 --- 4300,4306 ---- ; return 0; } EOF ! if { (eval echo configure:4304: \"$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 *** 4300,4311 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4304: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4333: checking for $ac_func" >&5 if 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 --- 4357,4363 ---- ; return 0; } EOF ! if { (eval echo configure:4361: \"$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 *** 4356,4367 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4360: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4389: checking for $ac_func" >&5 if 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 --- 4413,4419 ---- ; return 0; } EOF ! if { (eval echo configure:4417: \"$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 *** 4414,4425 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4418: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4447: checking for $ac_func" >&5 if 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 --- 4471,4477 ---- ; return 0; } EOF ! if { (eval echo configure:4475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4474,4489 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4478: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 4503,4518 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4507: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 4505,4521 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4509: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4534,4550 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4538: 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:4548: \"$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 *** 4546,4562 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4550: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4560: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4575,4591 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4579: 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:4589: \"$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 *** 4589,4604 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4593: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:4602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 4618,4633 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4622: 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:4631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 4611,4619 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4615: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 4640,4648 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4644: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 4622,4628 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 4651,4657 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 4638,4649 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4642: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4671: checking for $ac_func" >&5 if 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 --- 4695,4701 ---- ; return 0; } EOF ! if { (eval echo configure:4699: \"$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 *** 4701,4712 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4705: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4734: checking for $ac_func" >&5 if 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 --- 4758,4764 ---- ; return 0; } EOF ! if { (eval echo configure:4762: \"$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 *** 4757,4763 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4761: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 4786,4792 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4790: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:4761: checking for ISO C *** 4769,4785 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4773: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4798,4814 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4802: 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:4812: \"$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 *** 4803,4819 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4807: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4832,4848 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4836: 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:4846: \"$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 *** 4837,4843 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4841: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4866,4872 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4870: 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 *** 4845,4851 **** 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 --- 4885,4891 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:4889: \"$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 *** 4882,4893 **** 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:4886: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4915: checking for $ac_func" >&5 if 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 --- 4939,4945 ---- ; return 0; } EOF ! if { (eval echo configure:4943: \"$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 *** 4940,4946 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4944: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 4969,4975 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4973: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:4944: checking for XPG2 *** 4951,4957 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:4955: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 4980,4986 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:4984: 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 *** 5010,5026 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5014: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5039,5055 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5043: 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:5053: \"$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 *** 5098,5109 **** # 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:5102: 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:5131: 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 --- 5143,5149 ---- } EOF ! if { (eval echo configure:5147: \"$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 *** 5148,5154 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:5152: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5177,5183 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:5181: 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 *** 5156,5169 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5185,5198 ---- 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 *** 5193,5204 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5197: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5226: checking for $ac_func" >&5 if 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 --- 5250,5256 ---- ; return 0; } EOF ! if { (eval echo configure:5254: \"$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 *** 5250,5261 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5254: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5283: checking for $ac_func" >&5 if 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 --- 5307,5313 ---- ; return 0; } EOF ! if { (eval echo configure:5311: \"$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 *** 5306,5317 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5310: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5339: checking for $ac_func" >&5 if 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 --- 5363,5369 ---- ; return 0; } EOF ! if { (eval echo configure:5367: \"$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 *** 5364,5375 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5368: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5397: checking for $ac_func" >&5 if 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 --- 5421,5427 ---- ; 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* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5424,5439 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:5428: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:5437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 5453,5468 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:5457: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:5466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 5455,5471 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5459: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5484,5500 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5488: 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:5498: \"$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 *** 5496,5512 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5500: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5525,5541 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5529: 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:5539: \"$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 *** 5539,5554 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:5543: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:5552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 5568,5583 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:5572: 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:5581: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 5561,5569 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:5565: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 5590,5598 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:5594: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 5572,5578 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:5576: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 5601,5607 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:5605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 5588,5599 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5592: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5621: checking for $ac_func" >&5 if 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 --- 5645,5651 ---- ; return 0; } EOF ! if { (eval echo configure:5649: \"$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 *** 5651,5662 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5655: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5684: checking for $ac_func" >&5 if 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 --- 5708,5714 ---- ; return 0; } EOF ! if { (eval echo configure:5712: \"$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 *** 5707,5713 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5711: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 5736,5742 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5740: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:5711: checking for ISO C *** 5719,5735 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:5723: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5748,5764 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:5752: 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:5762: \"$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 *** 5753,5769 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:5757: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5767: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5782,5798 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:5786: 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:5796: \"$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 *** 5787,5793 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:5791: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5816,5822 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:5820: 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 *** 5795,5801 **** 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 --- 5835,5841 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:5839: \"$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 *** 5832,5843 **** 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:5836: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5865: checking for $ac_func" >&5 if 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 --- 5889,5895 ---- ; return 0; } EOF ! if { (eval echo configure:5893: \"$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 *** 5890,5896 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5894: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 5919,5925 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5923: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:5894: checking for XPG2 *** 5901,5907 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5905: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 5930,5936 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5934: 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 *** 5954,5970 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5958: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5983,5999 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5987: 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:5997: \"$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 *** 6042,6053 **** # 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:6046: 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:6075: 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 --- 6087,6093 ---- } EOF ! if { (eval echo configure:6091: \"$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 *** 6092,6098 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:6096: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6121,6127 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:6125: 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 *** 6100,6113 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 6129,6142 ---- 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 *** 6137,6148 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6141: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6170: checking for $ac_func" >&5 if 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 --- 6194,6200 ---- ; return 0; } EOF ! if { (eval echo configure:6198: \"$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 *** 6194,6205 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6198: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6227: checking for $ac_func" >&5 if 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 --- 6251,6257 ---- ; return 0; } EOF ! if { (eval echo configure:6255: \"$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 *** 6250,6261 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6254: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6283: checking for $ac_func" >&5 if 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 --- 6307,6313 ---- ; return 0; } EOF ! if { (eval echo configure:6311: \"$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 *** 6308,6319 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6312: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6341: checking for $ac_func" >&5 if 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 --- 6365,6371 ---- ; return 0; } EOF ! if { (eval echo configure:6369: \"$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 *** 6368,6383 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:6372: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:6381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 6397,6412 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:6401: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:6410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 6399,6415 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6403: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6428,6444 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6432: 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:6442: \"$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 *** 6440,6456 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6444: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6469,6485 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6473: 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:6483: \"$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 *** 6483,6498 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:6487: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:6496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 6512,6527 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:6516: 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:6525: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 6505,6513 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:6509: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 6534,6542 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:6538: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 6516,6522 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:6520: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 6545,6551 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:6549: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 6532,6543 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6536: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6565: checking for $ac_func" >&5 if 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 --- 6589,6595 ---- ; return 0; } EOF ! if { (eval echo configure:6593: \"$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 *** 6595,6606 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6599: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6628: checking for $ac_func" >&5 if 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 --- 6652,6658 ---- ; return 0; } EOF ! if { (eval echo configure:6656: \"$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 *** 6651,6657 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6655: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 6680,6686 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6684: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:6655: checking for ISO C *** 6663,6679 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:6667: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6677: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6692,6708 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:6696: 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:6706: \"$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 *** 6697,6713 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:6701: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6726,6742 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:6730: 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:6740: \"$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 *** 6731,6737 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:6735: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6760,6766 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:6764: 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 *** 6739,6745 **** 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 --- 6779,6785 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:6783: \"$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 *** 6776,6787 **** 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:6780: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6809: checking for $ac_func" >&5 if 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 --- 6833,6839 ---- ; return 0; } EOF ! if { (eval echo configure:6837: \"$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 *** 6834,6840 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6838: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 6863,6869 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6867: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:6838: checking for XPG2 *** 6845,6851 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:6849: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 6874,6880 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:6878: 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 *** 6887,6903 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6891: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6901: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6916,6932 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6920: 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:6930: \"$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 *** 6973,6984 **** # 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:6977: 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:7006: 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 --- 7018,7024 ---- } EOF ! if { (eval echo configure:7022: \"$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 *** 7023,7029 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7027: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7052,7058 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7056: 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 *** 7031,7044 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7060,7073 ---- 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 *** 7068,7079 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7072: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7101: checking for $ac_func" >&5 if 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 --- 7125,7131 ---- ; return 0; } EOF ! if { (eval echo configure:7129: \"$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 *** 7125,7136 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7129: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7158: checking for $ac_func" >&5 if 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 --- 7182,7188 ---- ; return 0; } EOF ! if { (eval echo configure:7186: \"$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 *** 7181,7192 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7185: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7214: checking for $ac_func" >&5 if 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 --- 7238,7244 ---- ; return 0; } EOF ! if { (eval echo configure:7242: \"$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 *** 7239,7250 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7243: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7272: checking for $ac_func" >&5 if 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 --- 7296,7302 ---- ; return 0; } EOF ! if { (eval echo configure:7300: \"$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 *** 7299,7314 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:7303: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:7312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 7328,7343 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:7332: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:7341: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 7330,7346 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7334: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7344: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7359,7375 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7363: 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:7373: \"$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 *** 7371,7387 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7375: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7400,7416 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7404: 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:7414: \"$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 *** 7414,7429 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:7418: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:7427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 7443,7458 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:7447: 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:7456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 7436,7444 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:7440: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 7465,7473 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:7469: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 7447,7453 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:7451: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 7476,7482 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:7480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 7463,7474 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7467: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7496: checking for $ac_func" >&5 if 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 --- 7520,7526 ---- ; return 0; } EOF ! if { (eval echo configure:7524: \"$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 *** 7526,7537 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7530: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7559: checking for $ac_func" >&5 if 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 --- 7583,7589 ---- ; return 0; } EOF ! if { (eval echo configure:7587: \"$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 *** 7582,7588 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7586: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 7611,7617 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7615: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:7586: checking for ISO C *** 7594,7610 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:7598: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7623,7639 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:7627: 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:7637: \"$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 *** 7628,7644 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:7632: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7657,7673 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:7661: 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:7671: \"$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 *** 7662,7668 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:7666: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7691,7697 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:7695: 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 *** 7670,7676 **** 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 --- 7710,7716 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:7714: \"$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 *** 7707,7718 **** 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:7711: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7740: checking for $ac_func" >&5 if 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 --- 7764,7770 ---- ; return 0; } EOF ! if { (eval echo configure:7768: \"$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 *** 7765,7771 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7769: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 7794,7800 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7798: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:7769: checking for XPG2 *** 7776,7782 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:7780: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 7805,7811 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:7809: 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 *** 7846,7857 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:7850: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:7879: 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 --- 7891,7897 ---- } EOF ! if { (eval echo configure:7895: \"$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 *** 7896,7902 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7900: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7925,7931 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7929: 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 *** 7904,7917 **** 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 --- 7933,7946 ---- 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 *** 7941,7952 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7945: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7974: checking for $ac_func" >&5 if 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 --- 7998,8004 ---- ; return 0; } EOF ! if { (eval echo configure:8002: \"$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 *** 7998,8009 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8002: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&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 *** 8054,8065 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8058: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8087: checking for $ac_func" >&5 if 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 --- 8111,8117 ---- ; return 0; } EOF ! if { (eval echo configure:8115: \"$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 *** 8112,8123 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8116: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8145: checking for $ac_func" >&5 if 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 --- 8169,8175 ---- ; return 0; } EOF ! if { (eval echo configure:8173: \"$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 *** 8172,8187 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:8176: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:8185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 8201,8216 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:8205: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:8214: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 8203,8219 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8207: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8232,8248 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8236: 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:8246: \"$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 *** 8244,8260 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8248: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8258: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8273,8289 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8277: 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:8287: \"$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 *** 8287,8302 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:8291: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:8300: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 8316,8331 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:8320: 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:8329: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 8309,8317 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:8313: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 8338,8346 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:8342: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 8320,8326 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:8324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 8349,8355 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:8353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 8336,8347 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8340: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8369: checking for $ac_func" >&5 if 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 --- 8393,8399 ---- ; return 0; } EOF ! if { (eval echo configure:8397: \"$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 *** 8399,8410 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8403: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8432: checking for $ac_func" >&5 if 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 --- 8456,8462 ---- ; return 0; } EOF ! if { (eval echo configure:8460: \"$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 *** 8455,8461 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:8459: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 8484,8490 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:8488: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:8459: checking for ISO C *** 8467,8483 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:8471: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8481: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8496,8512 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:8500: 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:8510: \"$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 *** 8501,8517 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:8505: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8530,8546 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:8534: 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:8544: \"$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 *** 8535,8541 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:8539: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 8564,8570 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:8568: 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 *** 8543,8549 **** 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 --- 8583,8589 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:8587: \"$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 *** 8580,8591 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:8584: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:8613: checking for $ac_func" >&5 if 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 --- 8637,8643 ---- ; return 0; } EOF ! if { (eval echo configure:8641: \"$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 *** 8638,8644 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:8642: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 8667,8673 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:8671: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:8642: checking for XPG2 *** 8649,8655 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:8653: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 8678,8684 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:8682: 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 *** 8723,8729 **** ;; esac ! case "$target_alias" in *-mingw32*) ;; *) --- 8752,8758 ---- ;; esac ! case "$target" in *-mingw32*) ;; *) *************** else *** 8992,9008 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8996: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:9006: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 9021,9037 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:9025: 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:9035: \"$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 *** 9053,9062 **** # Check for -ffunction-sections -fdata-sections echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6 ! echo "configure:9057: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <&6 ! echo "configure:9086: 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 --- 9093,9099 ---- ; return 0; } EOF ! if { (eval echo configure:9097: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else *************** cross_compiling=$ac_cv_prog_cc_cross *** 9146,9157 **** # 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:9150: 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:9179: 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 --- 9191,9197 ---- } EOF ! if { (eval echo configure:9195: \"$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 *** 9197,9203 **** echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:9201: checking for __builtin_abs declaration" >&5 if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9226,9232 ---- echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:9230: 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 *** 9212,9225 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else --- 9241,9254 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9252: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else *************** fi *** 9243,9263 **** echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6 if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6 ! echo "configure:9247: checking for __builtin_abs linkage" >&5 if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_abs_link=yes else --- 9272,9292 ---- 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:9276: 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:9290: \"$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 *** 9283,9289 **** echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:9287: checking for __builtin_fabsf declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9312,9318 ---- echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:9316: 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 *** 9298,9311 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9309: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else --- 9327,9340 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else *************** fi *** 9329,9349 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6 ! echo "configure:9333: checking for __builtin_fabsf linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_link=yes else --- 9358,9378 ---- 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:9362: 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:9376: \"$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 *** 9369,9375 **** echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:9373: checking for __builtin_fabs declaration" >&5 if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9398,9404 ---- echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:9402: 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 *** 9384,9397 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else --- 9413,9426 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else *************** fi *** 9415,9435 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6 ! echo "configure:9419: checking for __builtin_fabs linkage" >&5 if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_link=yes else --- 9444,9464 ---- 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:9448: 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:9462: \"$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 *** 9455,9461 **** echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:9459: checking for __builtin_fabsl declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9484,9490 ---- echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:9488: 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 *** 9470,9483 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else --- 9499,9512 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else *************** fi *** 9501,9521 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6 ! echo "configure:9505: checking for __builtin_fabsl linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_link=yes else --- 9530,9550 ---- 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:9534: 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:9548: \"$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 *** 9541,9547 **** echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:9545: checking for __builtin_labs declaration" >&5 if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9570,9576 ---- echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:9574: 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 *** 9556,9569 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else --- 9585,9598 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else *************** fi *** 9587,9607 **** echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6 if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6 ! echo "configure:9591: checking for __builtin_labs linkage" >&5 if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_labs_link=yes else --- 9616,9636 ---- 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:9620: 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:9634: \"$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 *** 9628,9634 **** echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:9632: checking for __builtin_sqrtf declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9657,9663 ---- echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:9661: 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 *** 9643,9656 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else --- 9672,9685 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else *************** fi *** 9674,9694 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6 ! echo "configure:9678: checking for __builtin_sqrtf linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_link=yes else --- 9703,9723 ---- 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:9707: 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:9721: \"$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 *** 9714,9720 **** echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6 ! echo "configure:9718: checking for __builtin_sqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9743,9749 ---- echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6 ! echo "configure:9747: checking for __builtin_sqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9729,9742 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9740: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_use=yes else --- 9758,9771 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9769: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_use=yes else *************** fi *** 9760,9780 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6 ! echo "configure:9764: checking for __builtin_sqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_link=yes else --- 9789,9809 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6 ! echo "configure:9793: checking for __builtin_sqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_link=yes else *************** EOF *** 9800,9806 **** echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:9804: checking for __builtin_sqrtl declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9829,9835 ---- echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:9833: 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 *** 9815,9828 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else --- 9844,9857 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else *************** fi *** 9846,9866 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6 ! echo "configure:9850: checking for __builtin_sqrtl linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_link=yes else --- 9875,9895 ---- 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:9879: 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:9893: \"$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 *** 9887,9893 **** echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:9891: checking for __builtin_sinf declaration" >&5 if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9916,9922 ---- echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:9920: 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 *** 9902,9915 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else --- 9931,9944 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else *************** fi *** 9933,9953 **** echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6 ! echo "configure:9937: checking for __builtin_sinf linkage" >&5 if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_link=yes else --- 9962,9982 ---- 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:9966: 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:9980: \"$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 *** 9973,9979 **** echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:9977: checking for __builtin_sin declaration" >&5 if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10002,10008 ---- echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:10006: 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 *** 9988,10001 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:9999: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else --- 10017,10030 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:10028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else *************** fi *** 10019,10039 **** echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6 if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6 ! echo "configure:10023: checking for __builtin_sin linkage" >&5 if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:10037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sin_link=yes else --- 10048,10068 ---- 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:10052: 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:10066: \"$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 *** 10059,10065 **** echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:10063: checking for __builtin_sinl declaration" >&5 if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10088,10094 ---- echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:10092: 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 *** 10074,10087 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else --- 10103,10116 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else *************** fi *** 10105,10125 **** echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6 ! echo "configure:10109: checking for __builtin_sinl linkage" >&5 if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_link=yes else --- 10134,10154 ---- 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:10138: 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:10152: \"$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 *** 10146,10152 **** echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:10150: checking for __builtin_cosf declaration" >&5 if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10175,10181 ---- echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:10179: 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 *** 10161,10174 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else --- 10190,10203 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else *************** fi *** 10192,10212 **** echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6 ! echo "configure:10196: checking for __builtin_cosf linkage" >&5 if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_link=yes else --- 10221,10241 ---- 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:10225: 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:10239: \"$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 *** 10232,10238 **** echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:10236: checking for __builtin_cos declaration" >&5 if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10261,10267 ---- echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:10265: 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 *** 10247,10260 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else --- 10276,10289 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else *************** fi *** 10278,10298 **** echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6 if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6 ! echo "configure:10282: checking for __builtin_cos linkage" >&5 if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cos_link=yes else --- 10307,10327 ---- 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:10311: 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:10325: \"$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 *** 10318,10324 **** echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:10322: checking for __builtin_cosl declaration" >&5 if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10347,10353 ---- echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:10351: 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 *** 10333,10346 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else --- 10362,10375 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else *************** fi *** 10364,10384 **** echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6 ! echo "configure:10368: checking for __builtin_cosl linkage" >&5 if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_link=yes else --- 10393,10413 ---- 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:10397: 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:10411: \"$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 *** 10469,10475 **** CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:10473: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10498,10504 ---- CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:10502: 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 *** 10477,10483 **** 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 --- 10517,10523 ---- sin() ; return 0; } EOF ! if { (eval echo configure:10521: \"$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 *** 10514,10520 **** echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:10518: checking for isinf declaration" >&5 if test x${glibcpp_cv_func_isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10543,10549 ---- echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:10547: 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 *** 10529,10535 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10558,10564 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10540,10546 **** isinf(0); ; return 0; } EOF ! if { (eval echo configure:10544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else --- 10569,10575 ---- isinf(0); ; return 0; } EOF ! if { (eval echo configure:10573: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else *************** fi *** 10567,10578 **** for ac_func in isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10571: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10600: checking for $ac_func" >&5 if 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 --- 10624,10630 ---- ; return 0; } EOF ! if { (eval echo configure:10628: \"$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 *** 10622,10628 **** else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:10626: checking for _isinf declaration" >&5 if test x${glibcpp_cv_func__isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10651,10657 ---- else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:10655: 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 *** 10637,10643 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10666,10672 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10648,10654 **** _isinf(0); ; return 0; } EOF ! if { (eval echo configure:10652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else --- 10677,10683 ---- _isinf(0); ; return 0; } EOF ! if { (eval echo configure:10681: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else *************** fi *** 10675,10686 **** for ac_func in _isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10679: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10708: checking for $ac_func" >&5 if 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 --- 10732,10738 ---- ; return 0; } EOF ! if { (eval echo configure:10736: \"$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 *** 10733,10739 **** echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:10737: checking for isnan declaration" >&5 if test x${glibcpp_cv_func_isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10762,10768 ---- echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:10766: 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 *** 10748,10754 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10777,10783 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10759,10765 **** isnan(0); ; return 0; } EOF ! if { (eval echo configure:10763: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else --- 10788,10794 ---- isnan(0); ; return 0; } EOF ! if { (eval echo configure:10792: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else *************** fi *** 10786,10797 **** for ac_func in isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10790: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10819: checking for $ac_func" >&5 if 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 --- 10843,10849 ---- ; return 0; } EOF ! if { (eval echo configure:10847: \"$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 **** else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:10845: checking for _isnan declaration" >&5 if test x${glibcpp_cv_func__isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10870,10876 ---- else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:10874: 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 *** 10856,10862 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10885,10891 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10867,10873 **** _isnan(0); ; return 0; } EOF ! if { (eval echo configure:10871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else --- 10896,10902 ---- _isnan(0); ; return 0; } EOF ! if { (eval echo configure:10900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else *************** fi *** 10894,10905 **** for ac_func in _isnan 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:10927: checking for $ac_func" >&5 if 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 --- 10951,10957 ---- ; return 0; } EOF ! if { (eval echo configure:10955: \"$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 *** 10952,10958 **** echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:10956: checking for finite declaration" >&5 if test x${glibcpp_cv_func_finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10981,10987 ---- echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:10985: 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 *** 10967,10973 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10996,11002 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10978,10984 **** finite(0); ; return 0; } EOF ! if { (eval echo configure:10982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else --- 11007,11013 ---- finite(0); ; return 0; } EOF ! if { (eval echo configure:11011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else *************** fi *** 11005,11016 **** for ac_func in finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11009: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11038: checking for $ac_func" >&5 if 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 --- 11062,11068 ---- ; return 0; } EOF ! if { (eval echo configure:11066: \"$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 **** else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:11064: checking for _finite declaration" >&5 if test x${glibcpp_cv_func__finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11089,11095 ---- else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:11093: 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 *** 11075,11081 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11104,11110 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11086,11092 **** _finite(0); ; return 0; } EOF ! if { (eval echo configure:11090: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else --- 11115,11121 ---- _finite(0); ; return 0; } EOF ! if { (eval echo configure:11119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else *************** fi *** 11113,11124 **** for ac_func in _finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11117: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11146: checking for $ac_func" >&5 if 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 --- 11170,11176 ---- ; return 0; } EOF ! if { (eval echo configure:11174: \"$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 *** 11171,11177 **** echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:11175: checking for copysign declaration" >&5 if test x${glibcpp_cv_func_copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11200,11206 ---- echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:11204: 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 *** 11186,11199 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11197: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else --- 11215,11228 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11226: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else *************** fi *** 11220,11231 **** for ac_func in copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11224: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11253: checking for $ac_func" >&5 if 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 --- 11277,11283 ---- ; return 0; } EOF ! if { (eval echo configure:11281: \"$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 *** 11275,11281 **** else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:11279: checking for _copysign declaration" >&5 if test x${glibcpp_cv_func__copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11304,11310 ---- else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:11308: 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 *** 11290,11303 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else --- 11319,11332 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else *************** fi *** 11324,11335 **** for ac_func in _copysign 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:11357: checking for $ac_func" >&5 if 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 --- 11381,11387 ---- ; return 0; } EOF ! if { (eval echo configure:11385: \"$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 *** 11382,11388 **** echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:11386: checking for sincos declaration" >&5 if test x${glibcpp_cv_func_sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11411,11417 ---- echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:11415: 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 *** 11397,11410 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else --- 11426,11439 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else *************** fi *** 11431,11442 **** for ac_func in sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11435: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11464: checking for $ac_func" >&5 if 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 --- 11488,11494 ---- ; return 0; } EOF ! if { (eval echo configure:11492: \"$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 *** 11486,11492 **** else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:11490: checking for _sincos declaration" >&5 if test x${glibcpp_cv_func__sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11515,11521 ---- else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:11519: 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 *** 11501,11514 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else --- 11530,11543 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else *************** fi *** 11535,11546 **** for ac_func in _sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11539: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11568: checking for $ac_func" >&5 if 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 --- 11592,11598 ---- ; return 0; } EOF ! if { (eval echo configure:11596: \"$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 *** 11593,11599 **** echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11597: checking for fpclass declaration" >&5 if test x${glibcpp_cv_func_fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11622,11628 ---- echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11626: 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 *** 11608,11614 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11637,11643 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11619,11625 **** fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else --- 11648,11654 ---- fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else *************** fi *** 11646,11657 **** for ac_func in fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11650: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11679: checking for $ac_func" >&5 if 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 --- 11703,11709 ---- ; return 0; } EOF ! if { (eval echo configure:11707: \"$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 *** 11701,11707 **** else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11705: checking for _fpclass declaration" >&5 if test x${glibcpp_cv_func__fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11730,11736 ---- else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11734: 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 *** 11716,11722 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11745,11751 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11727,11733 **** _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else --- 11756,11762 ---- _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else *************** fi *** 11754,11765 **** for ac_func in _fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11758: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11787: checking for $ac_func" >&5 if 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 --- 11811,11817 ---- ; return 0; } EOF ! if { (eval echo configure:11815: \"$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 *** 11812,11818 **** echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11816: checking for qfpclass declaration" >&5 if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11841,11847 ---- echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11845: 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 *** 11827,11833 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11856,11862 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11838,11844 **** qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else --- 11867,11873 ---- qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else *************** fi *** 11865,11876 **** for ac_func in qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11869: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11898: checking for $ac_func" >&5 if 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 --- 11922,11928 ---- ; return 0; } EOF ! if { (eval echo configure:11926: \"$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 *** 11920,11926 **** else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11924: checking for _qfpclass declaration" >&5 if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11949,11955 ---- else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11953: 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 *** 11935,11941 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11964,11970 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11946,11952 **** _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11950: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else --- 11975,11981 ---- _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11979: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else *************** fi *** 11973,11984 **** for ac_func in _qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11977: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12006: checking for $ac_func" >&5 if 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 --- 12030,12036 ---- ; return 0; } EOF ! if { (eval echo configure:12034: \"$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 *** 12031,12037 **** echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:12035: checking for hypot declaration" >&5 if test x${glibcpp_cv_func_hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12060,12066 ---- echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:12064: 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 *** 12046,12059 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else --- 12075,12088 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else *************** fi *** 12080,12091 **** for ac_func in hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12084: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12113: checking for $ac_func" >&5 if 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 --- 12137,12143 ---- ; return 0; } EOF ! if { (eval echo configure:12141: \"$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 **** else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:12139: checking for _hypot declaration" >&5 if test x${glibcpp_cv_func__hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12164,12170 ---- else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:12168: 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 *** 12150,12163 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else --- 12179,12192 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12190: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else *************** fi *** 12184,12195 **** for ac_func in _hypot 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:12217: checking for $ac_func" >&5 if 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 --- 12241,12247 ---- ; return 0; } EOF ! if { (eval echo configure:12245: \"$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 *** 12242,12248 **** echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:12246: checking for float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 12271,12277 ---- echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:12275: 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 *** 12256,12262 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 12285,12291 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 12265,12271 **** coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else --- 12294,12300 ---- coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12298: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else *************** fi *** 12291,12302 **** coshf sinhf tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12295: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12324: checking for $ac_func" >&5 if 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 --- 12348,12354 ---- ; return 0; } EOF ! if { (eval echo configure:12352: \"$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 *** 12347,12353 **** echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:12351: checking for float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 12376,12382 ---- echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:12380: 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 *** 12361,12374 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceilf floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else --- 12390,12403 ---- 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:12401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else *************** fi *** 12392,12403 **** for ac_func in ceilf floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12396: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12425: checking for $ac_func" >&5 if 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 --- 12449,12455 ---- ; return 0; } EOF ! if { (eval echo configure:12453: \"$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 *** 12449,12455 **** echo $ac_n "checking for expf declaration""... $ac_c" 1>&6 ! echo "configure:12453: checking for expf declaration" >&5 if test x${glibcpp_cv_func_expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12478,12484 ---- echo $ac_n "checking for expf declaration""... $ac_c" 1>&6 ! echo "configure:12482: checking for expf declaration" >&5 if test x${glibcpp_cv_func_expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12464,12470 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12493,12499 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12475,12481 **** expf(0); ; return 0; } EOF ! if { (eval echo configure:12479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expf_use=yes else --- 12504,12510 ---- expf(0); ; return 0; } EOF ! if { (eval echo configure:12508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expf_use=yes else *************** fi *** 12502,12513 **** for ac_func in expf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12506: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12535: checking for $ac_func" >&5 if 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 --- 12559,12565 ---- ; return 0; } EOF ! if { (eval echo configure:12563: \"$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 **** else echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6 ! echo "configure:12561: checking for _expf declaration" >&5 if test x${glibcpp_cv_func__expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12586,12592 ---- else echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6 ! echo "configure:12590: checking for _expf declaration" >&5 if test x${glibcpp_cv_func__expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12572,12578 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12601,12607 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12583,12589 **** _expf(0); ; return 0; } EOF ! if { (eval echo configure:12587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expf_use=yes else --- 12612,12618 ---- _expf(0); ; return 0; } EOF ! if { (eval echo configure:12616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expf_use=yes else *************** fi *** 12610,12621 **** for ac_func in _expf 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:12643: checking for $ac_func" >&5 if 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 --- 12667,12673 ---- ; return 0; } EOF ! if { (eval echo configure:12671: \"$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 *** 12668,12674 **** echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12672: checking for isnanf declaration" >&5 if test x${glibcpp_cv_func_isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12697,12703 ---- echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12701: 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 *** 12683,12689 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12712,12718 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12694,12700 **** isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else --- 12723,12729 ---- isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else *************** fi *** 12721,12732 **** for ac_func in isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12725: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12754: checking for $ac_func" >&5 if 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 --- 12778,12784 ---- ; return 0; } EOF ! if { (eval echo configure:12782: \"$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 **** else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12780: checking for _isnanf declaration" >&5 if test x${glibcpp_cv_func__isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12805,12811 ---- else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12809: 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 *** 12791,12797 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12820,12826 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12802,12808 **** _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else --- 12831,12837 ---- _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else *************** fi *** 12829,12840 **** for ac_func in _isnanf 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:12862: checking for $ac_func" >&5 if 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 --- 12886,12892 ---- ; return 0; } EOF ! if { (eval echo configure:12890: \"$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 *** 12887,12893 **** echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:12891: checking for isinff declaration" >&5 if test x${glibcpp_cv_func_isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12916,12922 ---- echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:12920: 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 *** 12902,12908 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12931,12937 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12913,12919 **** isinff(0); ; return 0; } EOF ! if { (eval echo configure:12917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else --- 12942,12948 ---- isinff(0); ; return 0; } EOF ! if { (eval echo configure:12946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else *************** fi *** 12940,12951 **** for ac_func in isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12944: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12973: checking for $ac_func" >&5 if 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 --- 12997,13003 ---- ; return 0; } EOF ! if { (eval echo configure:13001: \"$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 **** else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:12999: checking for _isinff declaration" >&5 if test x${glibcpp_cv_func__isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13024,13030 ---- else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:13028: 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 *** 13010,13016 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13039,13045 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13021,13027 **** _isinff(0); ; return 0; } EOF ! if { (eval echo configure:13025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else --- 13050,13056 ---- _isinff(0); ; return 0; } EOF ! if { (eval echo configure:13054: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else *************** fi *** 13048,13059 **** for ac_func in _isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13052: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13081: checking for $ac_func" >&5 if 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 --- 13105,13111 ---- ; return 0; } EOF ! if { (eval echo configure:13109: \"$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 *** 13106,13112 **** echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13110: checking for atan2f declaration" >&5 if test x${glibcpp_cv_func_atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13135,13141 ---- echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13139: 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 *** 13121,13134 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else --- 13150,13163 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else *************** fi *** 13155,13166 **** for ac_func in atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13159: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13188: checking for $ac_func" >&5 if 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 --- 13212,13218 ---- ; return 0; } EOF ! if { (eval echo configure:13216: \"$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 *** 13210,13216 **** else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13214: checking for _atan2f declaration" >&5 if test x${glibcpp_cv_func__atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13239,13245 ---- else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13243: 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 *** 13225,13238 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else --- 13254,13267 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else *************** fi *** 13259,13270 **** for ac_func in _atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13263: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13292: checking for $ac_func" >&5 if 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 --- 13316,13322 ---- ; return 0; } EOF ! if { (eval echo configure:13320: \"$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 *** 13317,13323 **** echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13321: checking for fabsf declaration" >&5 if test x${glibcpp_cv_func_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13346,13352 ---- echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13350: 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 *** 13332,13338 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13361,13367 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13343,13349 **** fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else --- 13372,13378 ---- fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else *************** fi *** 13370,13381 **** for ac_func in fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13374: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13403: checking for $ac_func" >&5 if 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 --- 13427,13433 ---- ; return 0; } EOF ! if { (eval echo configure:13431: \"$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 *** 13425,13431 **** else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13429: checking for _fabsf declaration" >&5 if test x${glibcpp_cv_func__fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13454,13460 ---- else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13458: 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 *** 13440,13446 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13469,13475 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13451,13457 **** _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else --- 13480,13486 ---- _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else *************** fi *** 13478,13489 **** for ac_func in _fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13482: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13511: checking for $ac_func" >&5 if 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 --- 13535,13541 ---- ; return 0; } EOF ! if { (eval echo configure:13539: \"$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 *** 13536,13542 **** echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13540: checking for fmodf declaration" >&5 if test x${glibcpp_cv_func_fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13565,13571 ---- echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13569: 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 *** 13551,13564 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13562: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else --- 13580,13593 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else *************** fi *** 13585,13596 **** for ac_func in fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13589: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13618: checking for $ac_func" >&5 if 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 --- 13642,13648 ---- ; return 0; } EOF ! if { (eval echo configure:13646: \"$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 *** 13640,13646 **** else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13644: checking for _fmodf declaration" >&5 if test x${glibcpp_cv_func__fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13669,13675 ---- else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13673: 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 *** 13655,13668 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else --- 13684,13697 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else *************** fi *** 13689,13700 **** for ac_func in _fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13693: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13722: checking for $ac_func" >&5 if 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 --- 13746,13752 ---- ; return 0; } EOF ! if { (eval echo configure:13750: \"$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 *** 13747,13753 **** echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13751: checking for frexpf declaration" >&5 if test x${glibcpp_cv_func_frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13776,13782 ---- echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13780: 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 *** 13762,13775 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else --- 13791,13804 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13802: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else *************** fi *** 13796,13807 **** for ac_func in frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13800: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13829: checking for $ac_func" >&5 if 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 --- 13853,13859 ---- ; return 0; } EOF ! if { (eval echo configure:13857: \"$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 *** 13851,13857 **** else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13855: checking for _frexpf declaration" >&5 if test x${glibcpp_cv_func__frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13880,13886 ---- else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13884: 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 *** 13866,13879 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else --- 13895,13908 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13906: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else *************** fi *** 13900,13911 **** for ac_func in _frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13904: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13933: checking for $ac_func" >&5 if 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 --- 13957,13963 ---- ; return 0; } EOF ! if { (eval echo configure:13961: \"$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 *** 13958,13964 **** echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13962: checking for hypotf declaration" >&5 if test x${glibcpp_cv_func_hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13987,13993 ---- echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13991: 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 *** 13973,13986 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else --- 14002,14015 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else *************** fi *** 14007,14018 **** for ac_func in hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14011: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14040: checking for $ac_func" >&5 if 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 --- 14064,14070 ---- ; return 0; } EOF ! if { (eval echo configure:14068: \"$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 *** 14062,14068 **** else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:14066: checking for _hypotf declaration" >&5 if test x${glibcpp_cv_func__hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14091,14097 ---- else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:14095: 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 *** 14077,14090 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else --- 14106,14119 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else *************** fi *** 14111,14122 **** for ac_func in _hypotf 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:14144: checking for $ac_func" >&5 if 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 --- 14168,14174 ---- ; return 0; } EOF ! if { (eval echo configure:14172: \"$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 *** 14169,14175 **** echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14173: checking for ldexpf declaration" >&5 if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14198,14204 ---- echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14202: 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 *** 14184,14197 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else --- 14213,14226 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else *************** fi *** 14218,14229 **** for ac_func in ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14222: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14251: checking for $ac_func" >&5 if 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 --- 14275,14281 ---- ; return 0; } EOF ! if { (eval echo configure:14279: \"$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 *** 14273,14279 **** else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14277: checking for _ldexpf declaration" >&5 if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14302,14308 ---- else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14306: 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 *** 14288,14301 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else --- 14317,14330 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else *************** fi *** 14322,14333 **** for ac_func in _ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14326: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14355: checking for $ac_func" >&5 if 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 --- 14379,14385 ---- ; return 0; } EOF ! if { (eval echo configure:14383: \"$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 *** 14380,14386 **** echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:14384: checking for logf declaration" >&5 if test x${glibcpp_cv_func_logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14409,14415 ---- echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:14413: 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 *** 14395,14401 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14424,14430 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14406,14412 **** logf(0); ; return 0; } EOF ! if { (eval echo configure:14410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else --- 14435,14441 ---- logf(0); ; return 0; } EOF ! if { (eval echo configure:14439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else *************** fi *** 14433,14444 **** for ac_func in logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14437: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14466: checking for $ac_func" >&5 if 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 --- 14490,14496 ---- ; return 0; } EOF ! if { (eval echo configure:14494: \"$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 **** else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:14492: checking for _logf declaration" >&5 if test x${glibcpp_cv_func__logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14517,14523 ---- else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:14521: 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 *** 14503,14509 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14532,14538 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14514,14520 **** _logf(0); ; return 0; } EOF ! if { (eval echo configure:14518: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else --- 14543,14549 ---- _logf(0); ; return 0; } EOF ! if { (eval echo configure:14547: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else *************** fi *** 14541,14552 **** for ac_func in _logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14545: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14574: checking for $ac_func" >&5 if 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 --- 14598,14604 ---- ; return 0; } EOF ! if { (eval echo configure:14602: \"$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 *** 14599,14605 **** echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:14603: checking for log10f declaration" >&5 if test x${glibcpp_cv_func_log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14628,14634 ---- echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:14632: 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 *** 14614,14620 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14643,14649 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14625,14631 **** log10f(0); ; return 0; } EOF ! if { (eval echo configure:14629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else --- 14654,14660 ---- log10f(0); ; return 0; } EOF ! if { (eval echo configure:14658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else *************** fi *** 14652,14663 **** for ac_func in log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14656: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14685: checking for $ac_func" >&5 if 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 --- 14709,14715 ---- ; return 0; } EOF ! if { (eval echo configure:14713: \"$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 *** 14707,14713 **** else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:14711: checking for _log10f declaration" >&5 if test x${glibcpp_cv_func__log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14736,14742 ---- else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:14740: 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 *** 14722,14728 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14751,14757 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14733,14739 **** _log10f(0); ; return 0; } EOF ! if { (eval echo configure:14737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else --- 14762,14768 ---- _log10f(0); ; return 0; } EOF ! if { (eval echo configure:14766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else *************** fi *** 14760,14771 **** for ac_func in _log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14764: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14793: checking for $ac_func" >&5 if 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 --- 14817,14823 ---- ; return 0; } EOF ! if { (eval echo configure:14821: \"$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 *** 14818,14824 **** echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:14822: checking for modff declaration" >&5 if test x${glibcpp_cv_func_modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14847,14853 ---- echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:14851: 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 *** 14833,14846 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14844: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else --- 14862,14875 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else *************** fi *** 14867,14878 **** for ac_func in modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14871: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14900: checking for $ac_func" >&5 if 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 --- 14924,14930 ---- ; return 0; } EOF ! if { (eval echo configure:14928: \"$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 *** 14922,14928 **** else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:14926: checking for _modff declaration" >&5 if test x${glibcpp_cv_func__modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14951,14957 ---- else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:14955: 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 *** 14937,14950 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14948: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else --- 14966,14979 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else *************** fi *** 14971,14982 **** for ac_func in _modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14975: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15004: checking for $ac_func" >&5 if 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 --- 15028,15034 ---- ; return 0; } EOF ! if { (eval echo configure:15032: \"$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 *** 15029,15035 **** echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:15033: checking for powf declaration" >&5 if test x${glibcpp_cv_func_powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15058,15064 ---- echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:15062: 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 *** 15044,15057 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else --- 15073,15086 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else *************** fi *** 15078,15089 **** for ac_func in powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15082: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15111: checking for $ac_func" >&5 if 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 --- 15135,15141 ---- ; return 0; } EOF ! if { (eval echo configure:15139: \"$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 *** 15133,15139 **** else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:15137: checking for _powf declaration" >&5 if test x${glibcpp_cv_func__powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15162,15168 ---- else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:15166: 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 *** 15148,15161 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else --- 15177,15190 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else *************** fi *** 15182,15193 **** for ac_func in _powf 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:15215: checking for $ac_func" >&5 if 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 --- 15239,15245 ---- ; return 0; } EOF ! if { (eval echo configure:15243: \"$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 *** 15240,15246 **** echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15244: checking for sqrtf declaration" >&5 if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15269,15275 ---- echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15273: 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 *** 15255,15261 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15284,15290 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15266,15272 **** sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else --- 15295,15301 ---- sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else *************** fi *** 15293,15304 **** for ac_func in sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15297: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15326: checking for $ac_func" >&5 if 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 --- 15350,15356 ---- ; return 0; } EOF ! if { (eval echo configure:15354: \"$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 *** 15348,15354 **** else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15352: checking for _sqrtf declaration" >&5 if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15377,15383 ---- else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15381: 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 *** 15363,15369 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15392,15398 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15374,15380 **** _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else --- 15403,15409 ---- _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else *************** fi *** 15401,15412 **** for ac_func in _sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15405: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15434: checking for $ac_func" >&5 if 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 --- 15458,15464 ---- ; return 0; } EOF ! if { (eval echo configure:15462: \"$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 *** 15459,15465 **** echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15463: checking for sincosf declaration" >&5 if test x${glibcpp_cv_func_sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15488,15494 ---- echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15492: 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 *** 15474,15487 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else --- 15503,15516 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else *************** fi *** 15508,15519 **** for ac_func in sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15512: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15541: checking for $ac_func" >&5 if 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 --- 15565,15571 ---- ; return 0; } EOF ! if { (eval echo configure:15569: \"$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 *** 15563,15569 **** else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15567: checking for _sincosf declaration" >&5 if test x${glibcpp_cv_func__sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15592,15598 ---- else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15596: 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 *** 15578,15591 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else --- 15607,15620 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else *************** fi *** 15612,15623 **** for ac_func in _sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15616: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15645: checking for $ac_func" >&5 if 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 --- 15669,15675 ---- ; return 0; } EOF ! if { (eval echo configure:15673: \"$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 *** 15670,15676 **** echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:15674: checking for finitef declaration" >&5 if test x${glibcpp_cv_func_finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15699,15705 ---- echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:15703: 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 *** 15685,15691 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15714,15720 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15696,15702 **** finitef(0); ; return 0; } EOF ! if { (eval echo configure:15700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else --- 15725,15731 ---- finitef(0); ; return 0; } EOF ! if { (eval echo configure:15729: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else *************** fi *** 15723,15734 **** for ac_func in finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15727: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15756: checking for $ac_func" >&5 if 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 --- 15780,15786 ---- ; return 0; } EOF ! if { (eval echo configure:15784: \"$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 *** 15778,15784 **** else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:15782: checking for _finitef declaration" >&5 if test x${glibcpp_cv_func__finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15807,15813 ---- else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:15811: 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 *** 15793,15799 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15822,15828 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15804,15810 **** _finitef(0); ; return 0; } EOF ! if { (eval echo configure:15808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else --- 15833,15839 ---- _finitef(0); ; return 0; } EOF ! if { (eval echo configure:15837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else *************** fi *** 15831,15842 **** for ac_func in _finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15835: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15864: checking for $ac_func" >&5 if 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 --- 15888,15894 ---- ; return 0; } EOF ! if { (eval echo configure:15892: \"$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 *** 15889,15895 **** echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:15893: checking for long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 15918,15924 ---- echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:15922: 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 *** 15903,15909 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 15932,15938 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 15912,15918 **** coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15916: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else --- 15941,15947 ---- coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else *************** fi *** 15938,15949 **** coshl sinhl tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15942: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15971: checking for $ac_func" >&5 if 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 --- 15995,16001 ---- ; return 0; } EOF ! if { (eval echo configure:15999: \"$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 *** 15994,16000 **** echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:15998: checking for long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 16023,16029 ---- echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:16027: 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 *** 16008,16021 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceill floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:16019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else --- 16037,16050 ---- 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:16048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else *************** fi *** 16039,16050 **** for ac_func in ceill floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16043: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16072: checking for $ac_func" >&5 if 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 --- 16096,16102 ---- ; return 0; } EOF ! if { (eval echo configure:16100: \"$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 *** 16096,16102 **** echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16100: checking for isnanl declaration" >&5 if test x${glibcpp_cv_func_isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16125,16131 ---- echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16129: 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 *** 16111,16117 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16140,16146 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16122,16128 **** isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else --- 16151,16157 ---- isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else *************** fi *** 16149,16160 **** for ac_func in isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16153: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16182: checking for $ac_func" >&5 if 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 --- 16206,16212 ---- ; return 0; } EOF ! if { (eval echo configure:16210: \"$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 *** 16204,16210 **** else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16208: checking for _isnanl declaration" >&5 if test x${glibcpp_cv_func__isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16233,16239 ---- else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16237: 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 *** 16219,16225 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16248,16254 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16230,16236 **** _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16234: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else --- 16259,16265 ---- _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16263: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else *************** fi *** 16257,16268 **** for ac_func in _isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16261: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16290: checking for $ac_func" >&5 if 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 --- 16314,16320 ---- ; return 0; } EOF ! if { (eval echo configure:16318: \"$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 *** 16315,16321 **** echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16319: checking for isinfl declaration" >&5 if test x${glibcpp_cv_func_isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16344,16350 ---- echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16348: 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 *** 16330,16336 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16359,16365 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16341,16347 **** isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else --- 16370,16376 ---- isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else *************** fi *** 16368,16379 **** for ac_func in isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16372: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16401: checking for $ac_func" >&5 if 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 --- 16425,16431 ---- ; return 0; } EOF ! if { (eval echo configure:16429: \"$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 *** 16423,16429 **** else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16427: checking for _isinfl declaration" >&5 if test x${glibcpp_cv_func__isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16452,16458 ---- else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16456: 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 *** 16438,16444 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16467,16473 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16449,16455 **** _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else --- 16478,16484 ---- _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else *************** fi *** 16476,16487 **** for ac_func in _isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16480: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16509: checking for $ac_func" >&5 if 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 --- 16533,16539 ---- ; return 0; } EOF ! if { (eval echo configure:16537: \"$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 *** 16534,16540 **** echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16538: checking for copysignl declaration" >&5 if test x${glibcpp_cv_func_copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16563,16569 ---- echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16567: 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 *** 16549,16562 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else --- 16578,16591 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else *************** fi *** 16583,16594 **** for ac_func in copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16587: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16616: checking for $ac_func" >&5 if 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 --- 16640,16646 ---- ; return 0; } EOF ! if { (eval echo configure:16644: \"$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 *** 16638,16644 **** else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16642: checking for _copysignl declaration" >&5 if test x${glibcpp_cv_func__copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16667,16673 ---- else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16671: 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 *** 16653,16666 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else --- 16682,16695 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16693: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else *************** fi *** 16687,16698 **** for ac_func in _copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16691: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16720: checking for $ac_func" >&5 if 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 --- 16744,16750 ---- ; return 0; } EOF ! if { (eval echo configure:16748: \"$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 *** 16745,16751 **** echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16749: checking for atan2l declaration" >&5 if test x${glibcpp_cv_func_atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16774,16780 ---- echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16778: 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 *** 16760,16773 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else --- 16789,16802 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else *************** fi *** 16794,16805 **** for ac_func in atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16798: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16827: checking for $ac_func" >&5 if 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 --- 16851,16857 ---- ; return 0; } EOF ! if { (eval echo configure:16855: \"$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 *** 16849,16855 **** else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16853: checking for _atan2l declaration" >&5 if test x${glibcpp_cv_func__atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16878,16884 ---- else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16882: 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 *** 16864,16877 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16875: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else --- 16893,16906 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else *************** fi *** 16898,16909 **** for ac_func in _atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16902: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16931: checking for $ac_func" >&5 if 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 --- 16955,16961 ---- ; return 0; } EOF ! if { (eval echo configure:16959: \"$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 *** 16956,16962 **** echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:16960: checking for expl declaration" >&5 if test x${glibcpp_cv_func_expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16985,16991 ---- echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:16989: 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 *** 16971,16977 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17000,17006 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16982,16988 **** expl(0); ; return 0; } EOF ! if { (eval echo configure:16986: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else --- 17011,17017 ---- expl(0); ; return 0; } EOF ! if { (eval echo configure:17015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else *************** fi *** 17009,17020 **** for ac_func in expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17013: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17042: checking for $ac_func" >&5 if 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 --- 17066,17072 ---- ; return 0; } EOF ! if { (eval echo configure:17070: \"$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 *** 17064,17070 **** else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:17068: checking for _expl declaration" >&5 if test x${glibcpp_cv_func__expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17093,17099 ---- else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:17097: 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 *** 17079,17085 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17108,17114 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17090,17096 **** _expl(0); ; return 0; } EOF ! if { (eval echo configure:17094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else --- 17119,17125 ---- _expl(0); ; return 0; } EOF ! if { (eval echo configure:17123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else *************** fi *** 17117,17128 **** for ac_func in _expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17121: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17150: checking for $ac_func" >&5 if 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 --- 17174,17180 ---- ; return 0; } EOF ! if { (eval echo configure:17178: \"$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 *** 17175,17181 **** echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17179: checking for fabsl declaration" >&5 if test x${glibcpp_cv_func_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17204,17210 ---- echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17208: 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 *** 17190,17196 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17219,17225 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17201,17207 **** fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else --- 17230,17236 ---- fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17234: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else *************** fi *** 17228,17239 **** for ac_func in fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17232: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17261: checking for $ac_func" >&5 if 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 --- 17285,17291 ---- ; return 0; } EOF ! if { (eval echo configure:17289: \"$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 *** 17283,17289 **** else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17287: checking for _fabsl declaration" >&5 if test x${glibcpp_cv_func__fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17312,17318 ---- else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17316: 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 *** 17298,17304 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17327,17333 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17309,17315 **** _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else --- 17338,17344 ---- _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else *************** fi *** 17336,17347 **** for ac_func in _fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17340: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17369: checking for $ac_func" >&5 if 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 --- 17393,17399 ---- ; return 0; } EOF ! if { (eval echo configure:17397: \"$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 *** 17394,17400 **** echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17398: checking for fmodl declaration" >&5 if test x${glibcpp_cv_func_fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17423,17429 ---- echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17427: 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 *** 17409,17422 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else --- 17438,17451 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17449: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else *************** fi *** 17443,17454 **** for ac_func in fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17447: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17476: checking for $ac_func" >&5 if 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 --- 17500,17506 ---- ; return 0; } EOF ! if { (eval echo configure:17504: \"$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 *** 17498,17504 **** else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17502: checking for _fmodl declaration" >&5 if test x${glibcpp_cv_func__fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17527,17533 ---- else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17531: 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 *** 17513,17526 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else --- 17542,17555 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17553: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else *************** fi *** 17547,17558 **** for ac_func in _fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17551: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17580: checking for $ac_func" >&5 if 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 --- 17604,17610 ---- ; return 0; } EOF ! if { (eval echo configure:17608: \"$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 *** 17605,17611 **** echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17609: checking for frexpl declaration" >&5 if test x${glibcpp_cv_func_frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17634,17640 ---- echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17638: 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 *** 17620,17633 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else --- 17649,17662 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else *************** fi *** 17654,17665 **** for ac_func in frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17658: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17687: checking for $ac_func" >&5 if 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 --- 17711,17717 ---- ; return 0; } EOF ! if { (eval echo configure:17715: \"$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 *** 17709,17715 **** else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17713: checking for _frexpl declaration" >&5 if test x${glibcpp_cv_func__frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17738,17744 ---- else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17742: 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 *** 17724,17737 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17735: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else --- 17753,17766 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else *************** fi *** 17758,17769 **** for ac_func in _frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17762: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17791: checking for $ac_func" >&5 if 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 --- 17815,17821 ---- ; return 0; } EOF ! if { (eval echo configure:17819: \"$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 *** 17816,17822 **** echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17820: checking for hypotl declaration" >&5 if test x${glibcpp_cv_func_hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17845,17851 ---- echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17849: 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 *** 17831,17844 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else --- 17860,17873 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else *************** fi *** 17865,17876 **** for ac_func in hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17869: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17898: checking for $ac_func" >&5 if 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 --- 17922,17928 ---- ; return 0; } EOF ! if { (eval echo configure:17926: \"$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 *** 17920,17926 **** else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17924: checking for _hypotl declaration" >&5 if test x${glibcpp_cv_func__hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17949,17955 ---- else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17953: 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 *** 17935,17948 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else --- 17964,17977 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else *************** fi *** 17969,17980 **** for ac_func in _hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17973: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18002: checking for $ac_func" >&5 if 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 --- 18026,18032 ---- ; return 0; } EOF ! if { (eval echo configure:18030: \"$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 *** 18027,18033 **** echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18031: checking for ldexpl declaration" >&5 if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18056,18062 ---- echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18060: 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 *** 18042,18055 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else --- 18071,18084 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else *************** fi *** 18076,18087 **** for ac_func in ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18080: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18109: checking for $ac_func" >&5 if 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 --- 18133,18139 ---- ; return 0; } EOF ! if { (eval echo configure:18137: \"$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 *** 18131,18137 **** else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18135: checking for _ldexpl declaration" >&5 if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18160,18166 ---- else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18164: 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 *** 18146,18159 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else --- 18175,18188 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18186: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else *************** fi *** 18180,18191 **** for ac_func in _ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18184: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18213: checking for $ac_func" >&5 if 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 --- 18237,18243 ---- ; return 0; } EOF ! if { (eval echo configure:18241: \"$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 *** 18238,18244 **** echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:18242: checking for logl declaration" >&5 if test x${glibcpp_cv_func_logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18267,18273 ---- echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:18271: 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 *** 18253,18259 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18282,18288 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18264,18270 **** logl(0); ; return 0; } EOF ! if { (eval echo configure:18268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else --- 18293,18299 ---- logl(0); ; return 0; } EOF ! if { (eval echo configure:18297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else *************** fi *** 18291,18302 **** for ac_func in logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18295: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18324: checking for $ac_func" >&5 if 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 --- 18348,18354 ---- ; return 0; } EOF ! if { (eval echo configure:18352: \"$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 *** 18346,18352 **** else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:18350: checking for _logl declaration" >&5 if test x${glibcpp_cv_func__logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18375,18381 ---- else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:18379: 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 *** 18361,18367 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18390,18396 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18372,18378 **** _logl(0); ; return 0; } EOF ! if { (eval echo configure:18376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else --- 18401,18407 ---- _logl(0); ; return 0; } EOF ! if { (eval echo configure:18405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else *************** fi *** 18399,18410 **** for ac_func in _logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18403: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18432: checking for $ac_func" >&5 if 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 --- 18456,18462 ---- ; return 0; } EOF ! if { (eval echo configure:18460: \"$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 *** 18457,18463 **** echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:18461: checking for log10l declaration" >&5 if test x${glibcpp_cv_func_log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18486,18492 ---- echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:18490: 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 *** 18472,18478 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18501,18507 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18483,18489 **** log10l(0); ; return 0; } EOF ! if { (eval echo configure:18487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else --- 18512,18518 ---- log10l(0); ; return 0; } EOF ! if { (eval echo configure:18516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else *************** fi *** 18510,18521 **** for ac_func in log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18514: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18543: checking for $ac_func" >&5 if 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 --- 18567,18573 ---- ; return 0; } EOF ! if { (eval echo configure:18571: \"$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 *** 18565,18571 **** else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:18569: checking for _log10l declaration" >&5 if test x${glibcpp_cv_func__log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18594,18600 ---- else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:18598: 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 *** 18580,18586 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18609,18615 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18591,18597 **** _log10l(0); ; return 0; } EOF ! if { (eval echo configure:18595: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else --- 18620,18626 ---- _log10l(0); ; return 0; } EOF ! if { (eval echo configure:18624: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else *************** fi *** 18618,18629 **** for ac_func in _log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18622: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18651: checking for $ac_func" >&5 if 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 --- 18675,18681 ---- ; return 0; } EOF ! if { (eval echo configure:18679: \"$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 *** 18676,18682 **** echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:18680: checking for modfl declaration" >&5 if test x${glibcpp_cv_func_modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18705,18711 ---- echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:18709: 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 *** 18691,18704 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else --- 18720,18733 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else *************** fi *** 18725,18736 **** for ac_func in modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18729: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18758: checking for $ac_func" >&5 if 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 --- 18782,18788 ---- ; return 0; } EOF ! if { (eval echo configure:18786: \"$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 *** 18780,18786 **** else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:18784: checking for _modfl declaration" >&5 if test x${glibcpp_cv_func__modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18809,18815 ---- else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:18813: 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 *** 18795,18808 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else --- 18824,18837 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else *************** fi *** 18829,18840 **** for ac_func in _modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18833: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18862: checking for $ac_func" >&5 if 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 --- 18886,18892 ---- ; return 0; } EOF ! if { (eval echo configure:18890: \"$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 *** 18887,18893 **** echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:18891: checking for powl declaration" >&5 if test x${glibcpp_cv_func_powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18916,18922 ---- echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:18920: 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 *** 18902,18915 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else --- 18931,18944 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else *************** fi *** 18936,18947 **** for ac_func in powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18940: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18969: checking for $ac_func" >&5 if 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 --- 18993,18999 ---- ; return 0; } EOF ! if { (eval echo configure:18997: \"$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 *** 18991,18997 **** else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:18995: checking for _powl declaration" >&5 if test x${glibcpp_cv_func__powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19020,19026 ---- else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:19024: 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 *** 19006,19019 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:19017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else --- 19035,19048 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:19046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else *************** fi *** 19040,19051 **** for ac_func in _powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19044: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19073: checking for $ac_func" >&5 if 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 --- 19097,19103 ---- ; return 0; } EOF ! if { (eval echo configure:19101: \"$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 *** 19098,19104 **** echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19102: checking for sqrtl declaration" >&5 if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19127,19133 ---- echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19131: 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 *** 19113,19119 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19142,19148 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 19124,19130 **** sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else --- 19153,19159 ---- sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else *************** fi *** 19151,19162 **** for ac_func in sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19155: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19184: checking for $ac_func" >&5 if 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 --- 19208,19214 ---- ; return 0; } EOF ! if { (eval echo configure:19212: \"$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 *** 19206,19212 **** else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19210: checking for _sqrtl declaration" >&5 if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19235,19241 ---- else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19239: 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 *** 19221,19227 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19250,19256 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 19232,19238 **** _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else --- 19261,19267 ---- _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else *************** fi *** 19259,19270 **** for ac_func in _sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19263: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19292: checking for $ac_func" >&5 if 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 --- 19316,19322 ---- ; return 0; } EOF ! if { (eval echo configure:19320: \"$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 *** 19317,19323 **** echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19321: checking for sincosl declaration" >&5 if test x${glibcpp_cv_func_sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19346,19352 ---- echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19350: 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 *** 19332,19345 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else --- 19361,19374 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else *************** fi *** 19366,19377 **** for ac_func in sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19370: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19399: checking for $ac_func" >&5 if 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 --- 19423,19429 ---- ; return 0; } EOF ! if { (eval echo configure:19427: \"$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 *** 19421,19427 **** else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19425: checking for _sincosl declaration" >&5 if test x${glibcpp_cv_func__sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19450,19456 ---- else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19454: 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 *** 19436,19449 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else --- 19465,19478 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else *************** fi *** 19470,19481 **** for ac_func in _sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19474: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19503: checking for $ac_func" >&5 if 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 --- 19527,19533 ---- ; return 0; } EOF ! if { (eval echo configure:19531: \"$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 *** 19528,19534 **** echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:19532: checking for finitel declaration" >&5 if test x${glibcpp_cv_func_finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19557,19563 ---- echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:19561: 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 *** 19543,19549 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19572,19578 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 19554,19560 **** finitel(0); ; return 0; } EOF ! if { (eval echo configure:19558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else --- 19583,19589 ---- finitel(0); ; return 0; } EOF ! if { (eval echo configure:19587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else *************** fi *** 19581,19592 **** for ac_func in finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19585: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19614: checking for $ac_func" >&5 if 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 --- 19638,19644 ---- ; return 0; } EOF ! if { (eval echo configure:19642: \"$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 *** 19636,19642 **** else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:19640: checking for _finitel declaration" >&5 if test x${glibcpp_cv_func__finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19665,19671 ---- else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:19669: 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 *** 19651,19657 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19680,19686 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 19662,19668 **** _finitel(0); ; return 0; } EOF ! if { (eval echo configure:19666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else --- 19691,19697 ---- _finitel(0); ; return 0; } EOF ! if { (eval echo configure:19695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else *************** fi *** 19689,19700 **** for ac_func in _finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19693: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19722: checking for $ac_func" >&5 if 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 --- 19746,19752 ---- ; return 0; } EOF ! if { (eval echo configure:19750: \"$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 *** 19748,19754 **** echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:19752: checking for _float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19777,19783 ---- echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:19781: 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 *** 19762,19768 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 19791,19797 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 19771,19777 **** _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else --- 19800,19806 ---- _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else *************** fi *** 19797,19808 **** _coshf _sinhf _tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19801: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19830: checking for $ac_func" >&5 if 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 --- 19854,19860 ---- ; return 0; } EOF ! if { (eval echo configure:19858: \"$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 *** 19853,19859 **** echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:19857: checking for _float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19882,19888 ---- echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:19886: 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 *** 19867,19880 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceilf _floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else --- 19896,19909 ---- 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:19907: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else *************** fi *** 19898,19909 **** for ac_func in _ceilf _floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19902: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19931: checking for $ac_func" >&5 if 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 --- 19955,19961 ---- ; return 0; } EOF ! if { (eval echo configure:19959: \"$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 *** 19955,19961 **** echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:19959: checking for _long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19984,19990 ---- echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:19988: 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 *** 19969,19975 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 19998,20004 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 19978,19984 **** _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else --- 20007,20013 ---- _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:20011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else *************** fi *** 20004,20015 **** _coshl _sinhl _tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20008: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20037: checking for $ac_func" >&5 if 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 --- 20061,20067 ---- ; return 0; } EOF ! if { (eval echo configure:20065: \"$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 *** 20060,20066 **** echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:20064: checking for _long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 20089,20095 ---- echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:20093: 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 *** 20074,20087 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceill _floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:20085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else --- 20103,20116 ---- 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:20114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else *************** fi *** 20105,20116 **** for ac_func in _ceill _floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20109: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20138: checking for $ac_func" >&5 if 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 --- 20162,20168 ---- ; return 0; } EOF ! if { (eval echo configure:20166: \"$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 *** 20165,20171 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:20169: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20194,20200 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:20198: 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 *** 20173,20186 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 20202,20215 ---- 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 *** 20210,20221 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20214: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20243: checking for $ac_func" >&5 if 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 --- 20267,20273 ---- ; return 0; } EOF ! if { (eval echo configure:20271: \"$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 *** 20267,20278 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20271: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20300: checking for $ac_func" >&5 if 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 --- 20324,20330 ---- ; return 0; } EOF ! if { (eval echo configure:20328: \"$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 *** 20323,20334 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20327: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20356: checking for $ac_func" >&5 if 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 --- 20380,20386 ---- ; return 0; } EOF ! if { (eval echo configure:20384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20381,20392 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20385: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20414: checking for $ac_func" >&5 if 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 --- 20438,20444 ---- ; return 0; } EOF ! if { (eval echo configure:20442: \"$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 *** 20441,20456 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:20445: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:20454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 20470,20485 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:20474: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:20483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 20472,20488 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20476: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20501,20517 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20505: 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:20515: \"$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 *** 20513,20529 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20517: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20542,20558 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20546: 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:20556: \"$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 *** 20556,20571 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:20560: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:20569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 20585,20600 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:20589: 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:20598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 20578,20586 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:20582: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 20607,20615 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:20611: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 20589,20595 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:20593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 20618,20624 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:20622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 20605,20616 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20609: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20638: checking for $ac_func" >&5 if 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 --- 20662,20668 ---- ; return 0; } EOF ! if { (eval echo configure:20666: \"$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 *** 20668,20679 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20672: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20701: checking for $ac_func" >&5 if 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 --- 20725,20731 ---- ; return 0; } EOF ! if { (eval echo configure:20729: \"$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 *** 20724,20730 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20728: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 20753,20759 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20757: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:20728: checking for ISO *** 20736,20752 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:20740: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20765,20781 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:20769: 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:20779: \"$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 *** 20770,20786 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:20774: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20799,20815 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:20803: 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:20813: \"$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 *** 20804,20810 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:20808: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20833,20839 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:20837: 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 *** 20812,20818 **** 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 --- 20852,20858 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:20856: \"$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 *** 20849,20860 **** 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:20853: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20882: checking for $ac_func" >&5 if 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 --- 20906,20912 ---- ; return 0; } EOF ! if { (eval echo configure:20910: \"$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 *** 20907,20913 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20911: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 20936,20942 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20940: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:20911: checking for XPG2 *** 20918,20924 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:20922: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 20947,20953 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:20951: 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 *** 20940,20946 **** echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:20944: checking for strtold declaration" >&5 if test x${glibcpp_cv_func_strtold_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20969,20975 ---- echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:20973: 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 *** 20955,20968 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:20966: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else --- 20984,20997 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:20995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else *************** fi *** 20988,20999 **** for ac_func in strtold do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20992: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21021: checking for $ac_func" >&5 if 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 --- 21045,21051 ---- ; return 0; } EOF ! if { (eval echo configure:21049: \"$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 *** 21044,21050 **** echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6 ! echo "configure:21048: checking for strtof declaration" >&5 if test x${glibcpp_cv_func_strtof_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 21073,21079 ---- echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6 ! echo "configure:21077: checking for strtof declaration" >&5 if test x${glibcpp_cv_func_strtof_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 21059,21072 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtof(0, 0); ; return 0; } EOF ! if { (eval echo configure:21070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtof_use=yes else --- 21088,21101 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtof(0, 0); ; return 0; } EOF ! if { (eval echo configure:21099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtof_use=yes else *************** fi *** 21092,21103 **** for ac_func in strtof do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21096: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21125: checking for $ac_func" >&5 if 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 --- 21149,21155 ---- ; return 0; } EOF ! if { (eval echo configure:21153: \"$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 *** 21149,21160 **** for ac_func in drand48 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21153: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21182: checking for $ac_func" >&5 if 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 --- 21206,21212 ---- ; return 0; } EOF ! if { (eval echo configure:21210: \"$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 *** 21207,21223 **** ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:21211: checking for locale.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21236,21252 ---- ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:21240: 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:21250: \"$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 *** 21235,21253 **** echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:21239: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:21251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else --- 21264,21282 ---- echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:21268: 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:21280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else *************** fi *** 21274,21280 **** cat > conftest.$ac_ext < --- 21303,21309 ---- cat > conftest.$ac_ext < *************** int main() { *** 21283,21289 **** sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:21287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 --- 21312,21318 ---- sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:21316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 *************** rm -f conftest* *** 21300,21316 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21304: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21314: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21329,21345 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21333: 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:21343: \"$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 *** 21339,21350 **** for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21343: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21372: checking for $ac_func" >&5 if 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 --- 21396,21402 ---- ; return 0; } EOF ! if { (eval echo configure:21400: \"$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 *** 21392,21398 **** done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:21396: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 21421,21427 ---- done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:21425: 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 *** 21400,21406 **** 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 --- 21569,21575 ---- } EOF ! if { (eval echo configure:21573: \"$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 *** 21571,21587 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21575: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21585: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21600,21616 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21604: 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:21614: \"$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 *** 21614,21620 **** # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include --- 21643,21649 ---- # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include *************** int main() { *** 21623,21629 **** int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:21627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21652,21658 ---- int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:21656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 21640,21646 **** cat > conftest.$ac_ext < #include --- 21669,21675 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 21649,21655 **** int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:21653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21678,21684 ---- int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:21682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 21666,21672 **** cat > conftest.$ac_ext < #include --- 21695,21701 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 21675,21681 **** int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:21679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21704,21710 ---- int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:21708: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 21692,21698 **** cat > conftest.$ac_ext < #include --- 21721,21727 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 21701,21707 **** int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:21705: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21730,21736 ---- int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:21734: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 21723,21729 **** else cat > conftest.$ac_ext < #include --- 21752,21758 ---- else cat > conftest.$ac_ext < #include *************** int main() { *** 21732,21738 **** struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:21736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else --- 21761,21767 ---- struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:21765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else *************** fi *** 21748,21754 **** fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:21752: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF --- 21777,21783 ---- fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:21781: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF *************** EOF *** 21764,21770 **** # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 ! echo "configure:21768: checking for setenv declaration" >&5 if test x${glibcpp_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 21793,21799 ---- # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 ! echo "configure:21797: checking for setenv declaration" >&5 if test x${glibcpp_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 21779,21792 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { setenv(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:21790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_setenv_use=yes else --- 21808,21821 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { setenv(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:21819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_setenv_use=yes else *************** fi *** 21812,21823 **** for ac_func in setenv do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:21816: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21845: checking for $ac_func" >&5 if 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 --- 21869,21875 ---- ; return 0; } EOF ! if { (eval echo configure:21873: \"$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 *** 21867,21872 **** --- 21896,21916 ---- fi + # Export file names for ABI checking. + baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt" + + + # Don't do ABI checking unless native. + + + if test x"$build" = x"$host" && test -z "$with_cross_host"; then + GLIBCPP_BUILD_ABI_CHECK_TRUE= + GLIBCPP_BUILD_ABI_CHECK_FALSE='#' + else + GLIBCPP_BUILD_ABI_CHECK_TRUE='#' + GLIBCPP_BUILD_ABI_CHECK_FALSE= + fi + fi # This depends on the possibly-skipped linker test above. *************** fi *** 21895,21912 **** # Check to see if libgcc_s exists, indicating that shared libgcc is possible. echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 ! echo "configure:21899: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_shared_libgcc=yes else --- 21939,21956 ---- # Check to see if libgcc_s exists, indicating that shared libgcc is possible. echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 ! echo "configure:21943: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_shared_libgcc=yes else *************** if test $enable_symvers = yes ; then *** 21940,21953 **** echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else --- 21984,21997 ---- echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else *************** case $enable_symvers in *** 21975,21980 **** --- 22019,22028 ---- ;; gnu) LINKER_MAP=config/linker-map.gnu + cat >> confdefs.h <<\EOF + #define _GLIBCPP_SYMVER 1 + EOF + ;; esac *************** else *** 21989,21995 **** GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 ! echo "configure:21993: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 --- 22037,22043 ---- GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 ! echo "configure:22041: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 *************** glibcpp_prefixdir=${prefix} *** 22077,22083 **** # Process the option --with-gxx-include-dir= echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 ! echo "configure:22081: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" --- 22125,22131 ---- # Process the option --with-gxx-include-dir= echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 ! echo "configure:22129: 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 *** 22101,22107 **** # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:22105: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" --- 22149,22155 ---- # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:22153: 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"; *** 22147,22153 **** fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:22151: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 --- 22195,22201 ---- fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:22199: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 *************** s%@SECTION_LDFLAGS@%$SECTION_LDFLAGS%g *** 22426,22431 **** --- 22474,22482 ---- s%@OPT_LDFLAGS@%$OPT_LDFLAGS%g s%@LIBMATHOBJS@%$LIBMATHOBJS%g s%@WERROR@%$WERROR%g + s%@baseline_file@%$baseline_file%g + s%@GLIBCPP_BUILD_ABI_CHECK_TRUE@%$GLIBCPP_BUILD_ABI_CHECK_TRUE%g + s%@GLIBCPP_BUILD_ABI_CHECK_FALSE@%$GLIBCPP_BUILD_ABI_CHECK_FALSE%g s%@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@%$GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE%g s%@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@%$GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE%g s%@OS_INC_SRCDIR@%$OS_INC_SRCDIR%g *************** fi; done *** 22659,22666 **** EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF --- 22710,22717 ---- EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF diff -Nrc3pad gcc-3.2/libstdc++-v3/configure.in gcc-3.2.1/libstdc++-v3/configure.in *** gcc-3.2/libstdc++-v3/configure.in Fri Jul 26 23:23:04 2002 --- gcc-3.2.1/libstdc++-v3/configure.in Mon Oct 21 19:35:41 2002 *************** ORIGINAL_LD_FOR_MULTILIBS=$LD *** 13,19 **** PACKAGE=libstdc++ AC_SUBST(PACKAGE) # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=5:0:0 AC_SUBST(libtool_VERSION) GLIBCPP_TOPREL_CONFIGURE --- 13,19 ---- PACKAGE=libstdc++ AC_SUBST(PACKAGE) # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=5:1:0 AC_SUBST(libtool_VERSION) GLIBCPP_TOPREL_CONFIGURE *************** if test -n "$with_cross_host" || test x" *** 91,97 **** # GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT # GLIBCPP_CHECK_MATH_SUPPORT ! case "$target_alias" in *-linux*) # Check for available headers. AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ --- 91,97 ---- # GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT # GLIBCPP_CHECK_MATH_SUPPORT ! case "$target" in *-linux*) # Check for available headers. AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ *************** changequote([,])dnl *** 185,191 **** ;; esac ! case "$target_alias" in *-mingw32*) ;; *) --- 185,191 ---- ;; esac ! case "$target" in *-mingw32*) ;; *) diff -Nrc3pad gcc-3.2/libstdc++-v3/configure.target gcc-3.2.1/libstdc++-v3/configure.target *** gcc-3.2/libstdc++-v3/configure.target Fri Jun 28 08:22:31 2002 --- gcc-3.2.1/libstdc++-v3/configure.target Fri Sep 6 18:32:08 2002 *************** *** 27,32 **** --- 27,33 ---- # DEFAULTS c_model=c_std c_compatibility=no + abi_baseline_triplet=${target} # TARGET-SPECIFIC OVERRIDES *************** case "${target_cpu}" in *** 60,70 **** s390 | s390x) cpu_include_dir="config/cpu/s390" ;; ! sparc64 | ultrasparc) ! cpu_include_dir="config/cpu/sparc/sparc64" ! ;; ! sparc*) ! cpu_include_dir="config/cpu/sparc/sparc32" ;; x86_64*) cpu_include_dir="config/cpu/x86-64" --- 61,68 ---- s390 | s390x) cpu_include_dir="config/cpu/s390" ;; ! sparc* | ultrasparc) ! cpu_include_dir="config/cpu/sparc" ;; x86_64*) cpu_include_dir="config/cpu/x86-64" diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/doxygen/run_doxygen gcc-3.2.1/libstdc++-v3/docs/doxygen/run_doxygen *** gcc-3.2/libstdc++-v3/docs/doxygen/run_doxygen Sat Jul 20 06:34:50 2002 --- gcc-3.2.1/libstdc++-v3/docs/doxygen/run_doxygen Wed Sep 25 17:52:15 2002 *************** rm stdheader *** 219,225 **** # implementations of man(1), e.g., Linux's. We need to have another top-level # *roff tag to /stop/ the .SH NAME entry. #problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3` ! problematic='Containers.3 Sequences.3 Assoc_containers.3 Allocators.3' for f in $problematic; do sed '/^\.SH NAME/{ n --- 219,226 ---- # implementations of man(1), e.g., Linux's. We need to have another top-level # *roff tag to /stop/ the .SH NAME entry. #problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3` ! problematic='Containers.3 Sequences.3 Assoc_containers.3 Allocators.3 ! Iterator_types.3' for f in $problematic; do sed '/^\.SH NAME/{ n diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/17_intro/C++STYLE gcc-3.2.1/libstdc++-v3/docs/html/17_intro/C++STYLE *** gcc-3.2/libstdc++-v3/docs/html/17_intro/C++STYLE Fri Nov 23 16:29:00 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/17_intro/C++STYLE Wed Sep 25 17:52:17 2002 *************** Notable areas of divergence from what ma *** 173,179 **** int foo; 13. Spacing WRT return statements. ! no extra spacing before returns ie } --- 173,179 ---- int foo; 13. Spacing WRT return statements. ! no extra spacing before returns, no parenthesis ie } *************** Notable areas of divergence from what ma *** 184,189 **** --- 184,195 ---- return __ret; + -NOT- + + } + return (__ret); + + 14. Location of global variables. All global variables of class type, whether in the "user visable" space (e.g., cin) or the implementation namespace, must be defined *************** namespace std *** 264,270 **** int two_lines(const char* arg) ! { return strchr(arg, 'a'); } inline int three_lines(); // inline, but defined below. --- 270,276 ---- int two_lines(const char* arg) ! { return strchr(arg, 'a'); } inline int three_lines(); // inline, but defined below. *************** namespace std *** 360,366 **** } } // namespace std - - - - --- 366,368 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES gcc-3.2.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES *** gcc-3.2/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES Sat May 18 14:47:57 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES Wed Sep 25 17:52:17 2002 *************** Obtain the library snapshot via ftp (inc *** 64,70 **** ftp://gcc.gnu.org/pub/libstdc++/ The library is maintained by Benjamin Kosnik, Gabriel ! Dos Reis, Phil Edwards, and Ulrich Drepper. Development tools: --- 64,71 ---- ftp://gcc.gnu.org/pub/libstdc++/ The library is maintained by Benjamin Kosnik, Gabriel ! Dos Reis, Phil Edwards, Ulrich Drepper, Loren James Rittle, ! and Paolo Carlini. Development tools: diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/17_intro/TODO gcc-3.2.1/libstdc++-v3/docs/html/17_intro/TODO *** gcc-3.2/libstdc++-v3/docs/html/17_intro/TODO Mon Mar 25 21:07:14 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/17_intro/TODO Thu Aug 15 22:51:01 2002 *************** executable speed. *** 17,23 **** - benchmarking addition to the testsuite that does the above. ! - implement symbol versioning for ELF targets. - exception specifications need to be reviewed for all parts of the library support and utility areas, particularly . --- 17,32 ---- - benchmarking addition to the testsuite that does the above. ! - implement testing for symbol versioning for ELF targets. ! ! - review streambuf, filebuf, stringbuf to optimize data member ! placement. Do pback bits need to be in streambuf? How about ! _M_set_indeterminate, etc? ! ! - Think about naming all member data and member functions consistently ! as per ! funtions: _M_verb_adverb ! data: _M_noun_adjective - exception specifications need to be reviewed for all parts of the library support and utility areas, particularly . diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/17_intro/contribute.html gcc-3.2.1/libstdc++-v3/docs/html/17_intro/contribute.html *** gcc-3.2/libstdc++-v3/docs/html/17_intro/contribute.html Sun Dec 10 04:03:09 2000 --- gcc-3.2.1/libstdc++-v3/docs/html/17_intro/contribute.html Wed Sep 25 17:52:17 2002 *************** *** 1,19 **** - How to contribute !

    How to contribute

    The Standard C++ Library v3, or libstc++-2.90.x, follows an open development model. Active contributors are assigned maintainer-ship responsibility, and given write access to the CVS repository. First time submitors and all other potential contributors should follow this procedure: !

    !


    ONE : read the documentation

    -

    -

    • Get and read the relevant sections of the C++ language specification. Copies of the full ISO 14882 standard are available on --- 1,18 ---- How to contribute ! ! !

      How to contribute

      The Standard C++ Library v3, or libstc++-2.90.x, follows an open development model. Active contributors are assigned maintainer-ship responsibility, and given write access to the CVS repository. First time submitors and all other potential contributors should follow this procedure: +

      !

      ONE : read the documentation

      • Get and read the relevant sections of the C++ language specification. Copies of the full ISO 14882 standard are available on *************** and their web-site is right *** 27,51 **** here. (And if you've already registered with them, clicking this link will take you to directly to the place where you can buy the standard on-line.)
      • The library working group bugs, and known defects, can be obtained at these web sites: http://www.dkuug.dk/jtc1/sc22/wg21 and http://www.comeaucomputing.com/iso/
      • The newsgroup dedicated to standardization issues is comp.std.c++: this FAQ for this group is quite useful and can be found here .
      • Peruse the GNU Coding Standards, and chuckle when you hit the part about "Using Languages Other Than C."
      • Be familiar with the extensions that preceded these general GNU rules. These style issues for libstdc++ can be found in the file C++STYLE, located in the root level of the distribution, or here.
      • And last but certainly not least, read the library-specific information found here.
      !

      !


      TWO : copyright assignment

      Small changes can be accepted without a copyright assignment form on --- 26,55 ---- here. (And if you've already registered with them, clicking this link will take you to directly to the place where you can buy the standard on-line.) +

    • The library working group bugs, and known defects, can be obtained at these web sites: http://www.dkuug.dk/jtc1/sc22/wg21 and http://www.comeaucomputing.com/iso/ +
    • The newsgroup dedicated to standardization issues is comp.std.c++: this FAQ for this group is quite useful and can be found here . +
    • Peruse the GNU Coding Standards, and chuckle when you hit the part about "Using Languages Other Than C." +
    • Be familiar with the extensions that preceded these general GNU rules. These style issues for libstdc++ can be found in the file C++STYLE, located in the root level of the distribution, or here. +
    • And last but certainly not least, read the library-specific information found here. +
    !

    TWO : copyright assignment

    Small changes can be accepted without a copyright assignment form on *************** to fill out appropriate disclaimer forms *** 56,95 **** Please contact Benjamin Kosnik if you are confused about the assignment or have general licensing questions. !

    !


    THREE : submitting patches

    -

    Every patch must have several pieces of information before it can be properly evaluated. Ideally (and to ensure the fastest possible response from the maintainers) it would have all of these pieces: !

    • A description of the bug and how your patch fixes this bug. For ! new features a description of the feature and your implementation.
    • A ChangeLog entry as plaintext; see the various ChangeLog files for format and content. If using you are using emacs as your editor, simply position the insertion point at the beginning of your change and hit CX-4a to bring up the appropriate ChangeLog ! entry. See--magic! Similar functionality also exists for vi.
    • A testsuite submission or sample program that will easily and ! simply show the existing error or test new functionality.
    • The patch itself. If you are accessing the CVS repository at Cygnus, use "cvs update; cvs diff -c3p NEW"; else, use "diff -c3p OLD NEW" ... If your version of diff does not support these options, then ! get the latest version of GNU diff.
    • When you have all these pieces, bundle them up in a mail message and send it to libstdc++@gcc.gnu.org. All patches and related ! discussion should be sent to the libstdc++ mailinglist.
    --- 60,102 ---- Please contact Benjamin Kosnik if you are confused about the assignment or have general licensing questions. +

    !

    THREE : submitting patches

    +

    Every patch must have several pieces of information before it can be properly evaluated. Ideally (and to ensure the fastest possible response from the maintainers) it would have all of these pieces: !

    !
    • A description of the bug and how your patch fixes this bug. For ! new features a description of the feature and your implementation.
    • A ChangeLog entry as plaintext; see the various ChangeLog files for format and content. If using you are using emacs as your editor, simply position the insertion point at the beginning of your change and hit CX-4a to bring up the appropriate ChangeLog ! entry. See--magic! Similar functionality also exists for vi.
    • A testsuite submission or sample program that will easily and ! simply show the existing error or test new functionality.
    • The patch itself. If you are accessing the CVS repository at Cygnus, use "cvs update; cvs diff -c3p NEW"; else, use "diff -c3p OLD NEW" ... If your version of diff does not support these options, then ! get the latest version of GNU diff.
    • When you have all these pieces, bundle them up in a mail message and send it to libstdc++@gcc.gnu.org. All patches and related ! discussion should be sent to the libstdc++ mailinglist.
    + + diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/17_intro/howto.html gcc-3.2.1/libstdc++-v3/docs/html/17_intro/howto.html *** gcc-3.2/libstdc++-v3/docs/html/17_intro/howto.html Tue Apr 2 02:07:50 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/17_intro/howto.html Wed Sep 25 17:52:17 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 17 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 17 ! *************** *** 21,38 **** !

    Contents

    !
    --- 20,37 ---- !

    Contents

    !
    *************** *** 51,57 **** all compile and run.

    !

    The Standard C++ library and multithreading

    This section discusses issues surrounding the proper compilation of multithreaded applications which use the Standard C++ --- 50,56 ---- all compile and run.

    !

    The Standard C++ library and multithreading

    This section discusses issues surrounding the proper compilation of multithreaded applications which use the Standard C++ *************** *** 129,144 **** 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.

    • Our threading expert Loren gives a breakdown of the ! six situations involving threads for the 3.0 release series.
    • 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.) --- 128,144 ---- 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. +

    • Our threading expert Loren gives a breakdown of the ! six situations involving threads for the 3.0 release series.
    • 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.) *************** *** 150,156 **** to the FAQ.

    !

    <foo> vs <foo.h>

    The new-style headers are fully supported in libstdc++-v3. The compiler itself fully supports namespaces, including std::. --- 150,156 ---- to the FAQ.

    !

    <foo> vs <foo.h>

    The new-style headers are fully supported in libstdc++-v3. The compiler itself fully supports namespaces, including std::. *************** *** 158,179 ****

    For those of you new to ISO C++98, no, that isn't a typo, the headers really have new names. Marshall Cline's C++ FAQ Lite has a good explanation in ! item [25.4].

    Return to top of page or to the FAQ.

    !

    Behavior specific to libstdc++-v3

    The ISO standard defines the following phrase:

    !
    [1.3.5] implementation-defined behavior
    behavior, for a well-formed program construct and correct data, that depends on the implementation and that each implementation shall document.
    ! We do so here, for the C++ library only. Behavior of the compiler, linker, runtime loader, and other elements of "the implementation" are documented elsewhere. Everything listed in Annex B, Implemenation Qualities, are also part of the compiler, not --- 158,181 ----

    For those of you new to ISO C++98, no, that isn't a typo, the headers really have new names. Marshall Cline's C++ FAQ Lite has a good explanation in ! item [26.4].

    Return to top of page or to the FAQ.

    !

    Behavior specific to libstdc++-v3

    The ISO standard defines the following phrase: +

    !
    [1.3.5] implementation-defined behavior
    behavior, for a well-formed program construct and correct data, that depends on the implementation and that each implementation shall document. +
    !

    We do so here, for the C++ library only. Behavior of the compiler, linker, runtime loader, and other elements of "the implementation" are documented elsewhere. Everything listed in Annex B, Implemenation Qualities, are also part of the compiler, not *************** *** 196,205 **** sections, libstdc++-v3 has zero control over what the cleanup code hands back to the runtime loader. Talk to the compiler people. :-)

    !

    [18.4.2.1]/5 (bad_alloc),
    ! [18.5.2]/5 (bad_cast),
    ! [18.5.3]/5 (bad_typeid),
    ! [18.6.1]/8 (exception),
    [18.6.2.1]/5 (bad_exception): The what() member function of class std::exception, and these other classes publicly derived from it, simply returns the name of the --- 198,207 ---- sections, libstdc++-v3 has zero control over what the cleanup code hands back to the runtime loader. Talk to the compiler people. :-)

    !

    [18.4.2.1]/5 (bad_alloc),
    ! [18.5.2]/5 (bad_cast),
    ! [18.5.3]/5 (bad_typeid),
    ! [18.6.1]/8 (exception),
    [18.6.2.1]/5 (bad_exception): The what() member function of class std::exception, and these other classes publicly derived from it, simply returns the name of the *************** *** 225,234 **** have any allocators which compare non-equal, so we can't describe how they behave.

    !

    [21.1.3.1]/3,4,
    ! [21.1.3.2]/2,
    ! [23.*]'s foo::iterator,
    ! [27.*]'s foo::*_type,
    others... Nope, these types are called implementation-defined because you shouldn't be taking advantage of their underlying types. Listing them --- 227,236 ---- have any allocators which compare non-equal, so we can't describe how they behave.

    !

    [21.1.3.1]/3,4,
    ! [21.1.3.2]/2,
    ! [23.*]'s foo::iterator,
    ! [27.*]'s foo::*_type,
    others... Nope, these types are called implementation-defined because you shouldn't be taking advantage of their underlying types. Listing them *************** *** 257,263 **** than the minimum required. I don't think we're currently taking advantage of this yet.

    !

    [27.7.1.3]/16,
    [27.8.1.4]/10 The effects of pubsetbuf/setbuf are described in this chapter. --- 259,265 ---- than the minimum required. I don't think we're currently taking advantage of this yet.

    !

    [27.7.1.3]/16,
    [27.8.1.4]/10 The effects of pubsetbuf/setbuf are described in this chapter. *************** *** 269,275 **** to the FAQ.

    !

    Preprocessor macros controlling the library

    Some of the semantics of the libstdc++-v3 implementation are controlled by preprocessor macros, both during build/installation and --- 271,277 ---- to the FAQ.

    !

    Preprocessor macros controlling the library

    Some of the semantics of the libstdc++-v3 implementation are controlled by preprocessor macros, both during build/installation and *************** *** 297,302 **** --- 299,305 ---- The default state of the symbol is listed. "Configurable" (or "Not configurable") means that the symbol is initially chosen (or not) based on --enable/--disable options at configure time. +

    _GLIBCPP_DEPRECATED
    Undefined by default. Not configurable. Turning this on enables *************** *** 329,335 ****
    -->
    -

    Return to top of page or to the FAQ.

    --- 332,337 ---- *************** *** 338,344 **** !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 340,346 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/17_intro/license.html gcc-3.2.1/libstdc++-v3/docs/html/17_intro/license.html *** gcc-3.2/libstdc++-v3/docs/html/17_intro/license.html Tue Nov 20 00:51:37 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/17_intro/license.html Wed Sep 25 17:52:17 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 copying ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 copying ! *************** *** 21,27 **** writing this page is a programmer, not a lawyer.

    !

    The Code: Runtime GPL

    --- 20,26 ---- writing this page is a programmer, not a lawyer.

    !

    The Code: Runtime GPL

    *************** *** 29,35 **** GNU General Public License, with the so-called "runtime exception," as follows (or see any header or implementation file): !
         As a special exception, you may use this file as part of a free software
         library without restriction.  Specifically, if other files instantiate
         templates or use macros or inline functions from this file, or you compile
    --- 28,35 ----
         GNU General Public License, with the so-called
         "runtime exception," as follows (or see any header or
         implementation file):
    ! 

    !
         As a special exception, you may use this file as part of a free software
         library without restriction.  Specifically, if other files instantiate
         templates or use macros or inline functions from this file, or you compile
    ***************
    *** 38,45 ****
         the GNU General Public License.  This exception does not however
         invalidate any other reasons why the executable file might be covered by
         the GNU General Public License.
    !    
    !

    Hopefully that text is self-explanatory. If it isn't, you need to speak to your lawyer, or the Free Software Foundation. --- 38,44 ---- the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License. !

    Hopefully that text is self-explanatory. If it isn't, you need to speak to your lawyer, or the Free Software Foundation. *************** *** 50,63 **** http://gcc.gnu.org/ml/libstdc++/2000-q2/subjects.html#00050 -->

    Q: So any program which uses libstdc++ falls under the GPL? !
    A: No. The special exception permits use of the library in proprietary applications.

    Q: How is that different from the GNU {Lesser,Library} GPL? !
    A: The LGPL requires that users be able to replace the LGPL code with a modified version; this is trivial if the library in question is a C shared library. But there's no way to make that work with C++, where much of the library consists of inline functions and templates, which --- 49,62 ---- http://gcc.gnu.org/ml/libstdc++/2000-q2/subjects.html#00050 -->

    Q: So any program which uses libstdc++ falls under the GPL? !
    A: No. The special exception permits use of the library in proprietary applications.

    Q: How is that different from the GNU {Lesser,Library} GPL? !
    A: The LGPL requires that users be able to replace the LGPL code with a modified version; this is trivial if the library in question is a C shared library. But there's no way to make that work with C++, where much of the library consists of inline functions and templates, which *************** *** 68,78 ****

    Q: I see. So, what restrictions are there on programs that use the library? !
    A: None. We encourage such programs to be released as open source, but we won't punish you or sue you if you choose otherwise.

    !

    The Docs: FDL

    --- 67,77 ----

    Q: I see. So, what restrictions are there on programs that use the library? !
    A: None. We encourage such programs to be released as open source, but we won't punish you or sue you if you choose otherwise.

    !

    The Docs: FDL

    *************** *** 92,98 **** !

    Comments and suggestions about this page are welcome, and may be sent to the libstdc++ mailing list. --- 91,97 ---- !


    Comments and suggestions about this page are welcome, and may be sent to the libstdc++ mailing list. diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/18_support/howto.html gcc-3.2.1/libstdc++-v3/docs/html/18_support/howto.html *** gcc-3.2/libstdc++-v3/docs/html/18_support/howto.html Tue Apr 2 02:07:51 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/18_support/howto.html Wed Sep 25 17:52:17 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 18 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 18 ! *************** *** 24,40 **** !


    Contents

    !
    --- 23,39 ---- !

    Contents

    !
    *************** *** 55,66 **** always a pointer.)

    In his book ! Effective C++, Scott Meyers points out that the best way to solve this problem is to not overload on pointer-vs-integer types to begin with. He also offers a way to make your own magic NULL that will match pointers before it matches integers: !

         const                             // this is a const object...
         class {
         public:
    --- 54,66 ----
            always a pointer.)
         

    In his book ! Effective C++, Scott Meyers points out that the best way to solve this problem is to not overload on pointer-vs-integer types to begin with. He also offers a way to make your own magic NULL that will match pointers before it matches integers: !

    !
         const                             // this is a const object...
         class {
         public:
    ***************
    *** 77,83 ****
                                           // taken (see Item 27)...
      
         } NULL;                           // and whose name is NULL
    !       
    (Cribbed from the published version of the Effective C++ CD, reproduced here with permission.)

    --- 77,84 ---- // taken (see Item 27)... } NULL; // and whose name is NULL !
    !

    (Cribbed from the published version of the Effective C++ CD, reproduced here with permission.)

    *************** *** 93,99 **** print this stuff, it prompted him to run this code through current compilers to see what the state of the art is with respect to member template functions. He posted ! an article to Usenet after discovering that the code above is not valid! Even though it has no data members, it still needs a user-defined constructor (which means that the class needs a type name --- 94,100 ---- print this stuff, it prompted him to run this code through current compilers to see what the state of the art is with respect to member template functions. He posted ! an article to Usenet after discovering that the code above is not valid! Even though it has no data members, it still needs a user-defined constructor (which means that the class needs a type name *************** *** 105,118 **** to the FAQ.

    !

    Implementation properties

    -

    <limits>

    ! This header mainly defines traits classes to give access to various implementation defined-aspects of the fundamental types. The traits classes -- fourteen in total -- are all specilizations of the template class numeric_limits defined as follows:
         template<typename T> struct class {
            static const bool is_specialized;
    --- 106,119 ----
            to the FAQ.
         

    !

    Implementation properties

    <limits>

    !

    This header mainly defines traits classes to give access to various implementation defined-aspects of the fundamental types. The traits classes -- fourteen in total -- are all specilizations of the template class numeric_limits defined as follows: +

         template<typename T> struct class {
            static const bool is_specialized;
    ***************
    *** 150,161 ****
            static const bool tinyness_before;
            static const float_round_style round_style;
         };
    -

    Return to top of page or to the FAQ.

    !

    Start and Termination

    Not many changes here to <cstdlib> (the old stdlib.h). You should note that the abort() function does not call --- 151,161 ---- static const bool tinyness_before; static const float_round_style round_style; };

    Return to top of page or to the FAQ.

    !

    Start and Termination

    Not many changes here to <cstdlib> (the old stdlib.h). You should note that the abort() function does not call *************** *** 166,176 **** --- 166,179 ----

    The good old exit() function can be a bit funky, too, until you look closer. Basically, three points to remember are: +

    1. Static objects are destroyed in reverse order of their creation. +
    2. Functions registered with atexit() are called in reverse order of registration, once per registration call. (This isn't actually new.) +
    3. The previous two actions are "interleaved," that is, given this pseudocode:
      ***************
      *** 181,192 ****
                      atexit(f1);
                      static Thing obj2;
                      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.
    -

    Note also that atexit() is only required to store 32 functions, and the compiler/library might already be using some of those slots. If you think you may run out, we recommend using --- 184,196 ---- atexit(f1); static Thing obj2; 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. +

    Note also that atexit() is only required to store 32 functions, and the compiler/library might already be using some of those slots. If you think you may run out, we recommend using *************** *** 196,216 **** to the FAQ.

    !

    Dynamic memory management

    There are six flavors each of new and delete, so make certain that you're using the right ones! Here are quickie descriptions of new: !

      !
    • single object form, throwing a bad_alloc on errors; ! this is what most people are used to using !
    • single object "nothrow" form, returning NULL on errors !
    • array new, throwing bad_alloc on errors !
    • array nothrow new, returning NULL on errors !
    • placement new, which does nothing (like it's supposed to) !
    • placement array new, which also does nothing !
    ! They are distinguished by the parameters that you pass to them, like any other overloaded function. The six flavors of delete are distinguished the same way, but none of them are allowed to throw an exception under any circumstances anyhow. (They match up for --- 200,221 ---- to the FAQ.

    !

    Dynamic memory management

    There are six flavors each of new and delete, so make certain that you're using the right ones! Here are quickie descriptions of new: !

    !
      !
    • single object form, throwing a bad_alloc on errors; ! this is what most people are used to using
    • !
    • single object "nothrow" form, returning NULL on errors
    • !
    • array new, throwing bad_alloc on errors
    • !
    • array nothrow new, returning NULL on errors
    • !
    • placement new, which does nothing (like it's supposed to)
    • !
    • placement array new, which also does nothing
    • !
    !

    They are distinguished by the parameters that you pass to them, like any other overloaded function. The six flavors of delete are distinguished the same way, but none of them are allowed to throw an exception under any circumstances anyhow. (They match up for *************** *** 225,231 **** bad_alloc exception (or, technically, some class derived from it). You can change this by writing your own function (called a new-handler) and then registering it with set_new_handler(): !

         typedef void (*PFV)(void);
      
         static char*  safety;
    --- 230,237 ----
            bad_alloc exception (or, technically, some class derived
            from it).  You can change this by writing your own function (called a
            new-handler) and then registering it with set_new_handler():
    !         

    !
         typedef void (*PFV)(void);
      
         static char*  safety;
    ***************
    *** 247,254 ****
             old_handler = set_new_handler (&my_new_handler);
             ...
         }
    !       
    !

    bad_alloc is derived from the base exception class defined in Chapter 19.

    --- 253,259 ---- old_handler = set_new_handler (&my_new_handler); ... } !

    bad_alloc is derived from the base exception class defined in Chapter 19.

    *************** *** 256,262 **** to the FAQ.

    !

    RTTI, the ABI, and demangling

    If you have read the source documentation for namespace abi then you are aware --- 261,267 ---- to the FAQ.

    !

    RTTI, the ABI, and demangling

    If you have read the source documentation for namespace abi then you are aware *************** *** 271,277 ****

    Probably the only times you'll be interested in demangling at runtime are when you're seeing typeid strings in RTTI, or when you're handling the runtime-support exception classes. For example: !

      #include <exception>
      #include <iostream>
      #include <cxxabi.h>
    --- 276,283 ----
         

    Probably the only times you'll be interested in demangling at runtime are when you're seeing typeid strings in RTTI, or when you're handling the runtime-support exception classes. For example: !

    !
      #include <exception>
      #include <iostream>
      #include <cxxabi.h>
    *************** int main()
    *** 304,314 ****
        free(realname);
      
        return 0;
    ! }

    !

    With GCC 3.1 and later, this prints

    !       St13bad_exception       => std::bad_exception   : 0
    !       3barI5emptyLi17EE       => bar<empty, 17>       : 0

    The demangler interface is described in the source documentation linked to above. It is actually written in C, so you don't need to be writing C++ in order to demangle C++. (That also means we have to --- 310,321 ---- free(realname); return 0; ! }

    !

    With GCC 3.1 and later, this prints

    +
    +       St13bad_exception       => std::bad_exception   : 0
    +       3barI5emptyLi17EE       => bar<empty, 17>       : 0 

    The demangler interface is described in the source documentation linked to above. It is actually written in C, so you don't need to be writing C++ in order to demangle C++. (That also means we have to *************** int main() *** 322,328 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 329,335 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/19_diagnostics/howto.html gcc-3.2.1/libstdc++-v3/docs/html/19_diagnostics/howto.html *** gcc-3.2/libstdc++-v3/docs/html/19_diagnostics/howto.html Mon Apr 1 22:09:29 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/19_diagnostics/howto.html Wed Sep 25 17:52:18 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 19 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 19 ! *************** *** 20,35 **** !


    Contents

    !
    --- 19,34 ---- !

    Contents

    !
    *************** *** 56,62 **** to the FAQ.

    !

    Exception class hierarchy diagram

    At one point we were going to make up a PDF of the exceptions hierarchy, akin to the one done for the I/O class hierarchy. --- 55,61 ---- to the FAQ.

    !

    Exception class hierarchy diagram

    At one point we were going to make up a PDF of the exceptions hierarchy, akin to the one done for the I/O class hierarchy. *************** *** 72,78 **** to the FAQ.

    !

    Concept checkers -- new and improved!

    Better taste! Less fat! Literally!

    In 1999, SGI added concept checkers to their implementation --- 71,77 ---- to the FAQ.

    !

    Concept checkers -- new and improved!

    Better taste! Less fat! Literally!

    In 1999, SGI added concept checkers to their implementation *************** *** 89,95 **** were found in it on more than one occasion.

    The primary author of the checking code, Jeremy Siek, had already ! started work on a replcement implementation. The new code has been formally reviewed and accepted into the Boost libraries, and we are pleased to incorporate it into the --- 88,94 ---- were found in it on more than one occasion.

    The primary author of the checking code, Jeremy Siek, had already ! started work on a replacement implementation. The new code has been formally reviewed and accepted into the Boost libraries, and we are pleased to incorporate it into the *************** *** 109,120 **** 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()
    --- 108,120 ----
            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()
    ***************
    *** 123,129 ****
             ...
             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 --- 123,128 ---- *************** *** 133,139 **** without returning; this one calls abort.

    For example: !

         #include <exception>
         #include <stdexcept>
      
    --- 132,139 ----
            without returning; this one calls abort.
         

    For example: !

    !
         #include <exception>
         #include <stdexcept>
      
    ***************
    *** 151,159 ****
             else
                 throw argc;
         }
    -

    In GCC 3.1 and later, this gives !

         % ./a.out
         terminate called after throwing a `int'
         Aborted
    --- 151,159 ----
             else
                 throw argc;
         }

    In GCC 3.1 and later, this gives !

    !
         % ./a.out
         terminate called after throwing a `int'
         Aborted
    ***************
    *** 162,168 ****
         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. --- 162,168 ---- 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. *************** *** 171,177 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 171,177 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/20_util/howto.html gcc-3.2.1/libstdc++-v3/docs/html/20_util/howto.html *** gcc-3.2/libstdc++-v3/docs/html/20_util/howto.html Wed Mar 27 22:38:39 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/20_util/howto.html Wed Sep 25 17:52:18 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 20 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 20 ! *************** *** 19,34 **** !


    Contents

    !
    --- 18,33 ---- !

    Contents

    !
    *************** *** 47,53 ****

    AP is meant to prevent nasty leaks in the presence of exceptions. That's all. This code is AP-friendly: !

          // not a recommend naming scheme, but good for web-based FAQs
          typedef std::auto_ptr<MyClass>  APMC;
      
    --- 46,53 ----
         

    AP is meant to prevent nasty leaks in the presence of exceptions. That's all. This code is AP-friendly: !

    !
          // not a recommend naming scheme, but good for web-based FAQs
          typedef std::auto_ptr<MyClass>  APMC;
      
    ***************
    *** 62,82 ****
      
              function_taking_MyClass_pointer (ap.get());
          }
    !       
    When an exception gets thrown, the instance of MyClass that's been created on the heap will be delete'd as the stack is unwound past func().

    Changing that code as follows is not AP-friendly: !

              APMC  ap (new MyClass[22]);
    !       
    You will get the same problems as you would without the use of AP: !
              char*  array = new char[10];       // array new...
              ...
              delete array;                      // ...but single-object delete
    !       
    !

    AP cannot tell whether the pointer you've passed at creation points to one or many things. If it points to many things, you are about to die. AP is trivial to write, however, so you could write your --- 62,85 ---- function_taking_MyClass_pointer (ap.get()); } !

    !

    When an exception gets thrown, the instance of MyClass that's been created on the heap will be delete'd as the stack is unwound past func().

    Changing that code as follows is not AP-friendly: !

    !
              APMC  ap (new MyClass[22]);
    !    
    !

    You will get the same problems as you would without the use of AP: !

    !
              char*  array = new char[10];       // array new...
              ...
              delete array;                      // ...but single-object delete
    !    

    AP cannot tell whether the pointer you've passed at creation points to one or many things. If it points to many things, you are about to die. AP is trivial to write, however, so you could write your *************** *** 87,104 **** to the FAQ.

    !

    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
          {
              My_Type (My_Type const&);
          };
    !       
    ! Note the const keyword; the object being copied shouldn't change. The template class auto_ptr (called AP here) does not meet this requirement. Creating a new AP by copying an existing one transfers ownership of the pointed-to object, which means that --- 90,108 ---- to the FAQ.

    !

    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
          {
              My_Type (My_Type const&);
          };
    !    
    !

    Note the const keyword; the object being copied shouldn't change. The template class auto_ptr (called AP here) does not meet this requirement. Creating a new AP by copying an existing one transfers ownership of the pointed-to object, which means that *************** *** 113,119 **** concept checks built in to this implementation will issue an error if you try to compile code like this: !

          #include <vector>
          #include <memory>
          
    --- 117,124 ----
            concept checks built
            in to this implementation will issue an error if you try to
            compile code like this:
    !    

    !
          #include <vector>
          #include <memory>
          
    ***************
    *** 121,134 ****
          {
              std::vector< std::auto_ptr<int> >   vec_ap_int;
          }
    !       
    ! Should you try this with the checks enabled, you will see an error.

    Return to top of page or to the FAQ.

    !

    Functors

    If you don't know what functors are, you're not alone. Many people get slightly the wrong idea. In the interest of not reinventing --- 126,139 ---- { std::vector< std::auto_ptr<int> > vec_ap_int; } !

    !

    Should you try this with the checks enabled, you will see an error.

    Return to top of page or to the FAQ.

    !

    Functors

    If you don't know what functors are, you're not alone. Many people get slightly the wrong idea. In the interest of not reinventing *************** *** 141,147 **** to the FAQ.

    !

    Pairs

    The pair<T1,T2> is a simple and handy way to carry around a pair of objects. One is of type T1, and another of --- 146,152 ---- to the FAQ.

    !

    Pairs

    The pair<T1,T2> is a simple and handy way to carry around a pair of objects. One is of type T1, and another of *************** *** 151,166 ****

    Construction is simple. The default ctor initializes each member with its respective default ctor. The other simple ctor, !

          pair (const T1& x, const T2& y);
    !       
    does what you think it does, first getting x and second getting y.

    There is a copy constructor, but it requires that your compiler handle member function templates: !

          template <class U, class V> pain (const pair<U,V>& p);
    !       
    The compiler will convert as necessary from U to T1 and from V to T2 in order to perform the respective initializations.

    The comparison operators are done for you. Equality --- 156,175 ----

    Construction is simple. The default ctor initializes each member with its respective default ctor. The other simple ctor, !

    !
          pair (const T1& x, const T2& y);
    !    
    !

    does what you think it does, first getting x and second getting y.

    There is a copy constructor, but it requires that your compiler handle member function templates: !

    !
          template <class U, class V> pain (const pair<U,V>& p);
    !    
    !

    The compiler will convert as necessary from U to T1 and from V to T2 in order to perform the respective initializations.

    The comparison operators are done for you. Equality *************** *** 170,193 **** operator== functions (for types like MyClass) or builtin comparisons (for types like int, char, etc).

    ! !

    The less-than operator is a bit odd the first time you see it. It is defined as evaluating to: !

          x.first  <  y.first  ||
              ( !(y.first  <  x.first)  &&  x.second  <  y.second )
    !       
    ! The other operators are not defined using the rel_ops functions above, but their semantics are the same.

    -

    Finally, there is a template function called make_pair that takes two references-to-const objects and returns an instance of a pair instantiated on their respective types: -

    -     pair<int,MyClass> p = make_pair(4,myobject);
    -       

    Return to top of page or to the FAQ.

    --- 179,203 ---- operator== functions (for types like MyClass) or builtin comparisons (for types like int, char, etc).

    !

    ! The less-than operator is a bit odd the first time you see it. It is defined as evaluating to: ! !

    !
          x.first  <  y.first  ||
              ( !(y.first  <  x.first)  &&  x.second  <  y.second )
    !    
    !

    The other operators are not defined using the rel_ops functions above, but their semantics are the same.

    Finally, there is a template function called make_pair that takes two references-to-const objects and returns an instance of a pair instantiated on their respective types:

    +
    +     pair<int,MyClass> p = make_pair(4,myobject);
    +    

    Return to top of page or to the FAQ.

    *************** *** 197,203 **** !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 207,213 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/21_strings/howto.html gcc-3.2.1/libstdc++-v3/docs/html/21_strings/howto.html *** gcc-3.2/libstdc++-v3/docs/html/21_strings/howto.html Fri Nov 23 16:29:00 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/21_strings/howto.html Wed Sep 25 17:52:19 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 21 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 21 ! *************** *** 18,33 **** !


    Contents

    !
    --- 17,33 ---- !

    Contents

    !
    *************** *** 42,65 ****

    Things are not as bad as they seem. In this message, Joe Buck points out a few very important things:

    • The Standard string supports all the operations that CString does, with three exceptions.
    • Two of those exceptions (whitespace trimming and case conversion) are trivial to implement. In fact, we do so on this page.
    • The third is CString::Format, which allows formatting in the style of sprintf. This deserves some mention:
    !

    ! !

    The old libg++ library had a function called form(), which did much the same thing. But for a Standard solution, you should use the 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>
         #include <sstream>
    --- 42,70 ----
         

    Things are not as bad as they seem. In this message, Joe Buck points out a few very important things: +

    • The Standard string supports all the operations that CString does, with three exceptions. +
    • Two of those exceptions (whitespace trimming and case conversion) are trivial to implement. In fact, we do so on this page. +
    • The third is CString::Format, which allows formatting in the style of sprintf. This deserves some mention: +
    !

    ! The old libg++ library had a function called form(), which did much the same thing. But for a Standard solution, you should use the 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>
         #include <sstream>
    ***************
    *** 79,88 ****
      
             return output_stream.str();
         } 
    -

    A serious problem with CString is a design bug in its memory allocation. Specifically, quoting from that same message: !

         CString suffers from a common programming error that results in
         poor performance.  Consider the following code:
         
    --- 84,93 ----
      
             return output_stream.str();
         } 

    A serious problem with CString is a design bug in its memory allocation. Specifically, quoting from that same message: !

    !
         CString suffers from a common programming error that results in
         poor performance.  Consider the following code:
         
    ***************
    *** 103,124 ****
         
         If you replace CString with string in the above function, the
         performance is O(n).
    !       
    !

    Joe Buck also pointed out some other things to keep in mind when comparing CString and the Standard string class:

    • CString permits access to its internal representation; coders who exploited that may have problems moving to string.
    • Microsoft ships the source to CString (in the files MFC\SRC\Str{core,ex}.cpp), so you could fix the allocation bug and rebuild your MFC libraries. ! Note: It looks like the the CString shipped with ! VC++6.0 has fixed this, although it may in fact have been one ! of the VC++ SPs that did it.
    • string operations like this have O(n) complexity if the implementors do it correctly. The libstdc++ implementors did it correctly. Other vendors might not.
    • While parts of the SGI STL are used in libstdc++-v3, their string class is not. The SGI string is essentially vector<char> and does not do any reference --- 108,132 ---- If you replace CString with string in the above function, the performance is O(n). !

    Joe Buck also pointed out some other things to keep in mind when comparing CString and the Standard string class: +

    • CString permits access to its internal representation; coders who exploited that may have problems moving to string. +
    • Microsoft ships the source to CString (in the files MFC\SRC\Str{core,ex}.cpp), so you could fix the allocation bug and rebuild your MFC libraries. ! Note: It looks like the the CString shipped ! with VC++6.0 has fixed this, although it may in fact have been ! one of the VC++ SPs that did it. !
    • string operations like this have O(n) complexity if the implementors do it correctly. The libstdc++ implementors did it correctly. Other vendors might not. +
    • While parts of the SGI STL are used in libstdc++-v3, their string class is not. The SGI string is essentially vector<char> and does not do any reference *************** *** 128,140 **** libstdc++ string, the SGI string, and the SGI rope, and this is all before any allocator or traits customizations! (More choices than you can shake a stick at -- want fries with that?)
    -

    Return to top of page or to the FAQ.

    !

    A case-insensitive string class

    The well-known-and-if-it-isn't-well-known-it-ought-to-be Guru of the Week --- 136,148 ---- libstdc++ string, the SGI string, and the SGI rope, and this is all before any allocator or traits customizations! (More choices than you can shake a stick at -- want fries with that?) +

    Return to top of page or to the FAQ.

    !

    A case-insensitive string class

    The well-known-and-if-it-isn't-well-known-it-ought-to-be Guru of the Week *************** *** 143,149 **** is identical to the standard 'string' class, but is case-insensitive in the same way as the (common but nonstandard) C function stricmp():" !

         ci_string s( "AbCdE" );
      
         // case insensitive
    --- 151,158 ----
            is identical to the standard 'string' class, but is
            case-insensitive in the same way as the (common but nonstandard)
            C function stricmp():"
    !    

    !
         ci_string s( "AbCdE" );
      
         // case insensitive
    ***************
    *** 153,159 ****
         // still case-preserving, of course
         assert( strcmp( s.c_str(), "AbCdE" ) == 0 );
         assert( strcmp( s.c_str(), "abcde" ) != 0 ); 
    -

    The solution is surprisingly easy. The original answer pages on the GotW website were removed into cold storage, in --- 162,167 ---- *************** *** 188,194 **** to the FAQ.

    !

    Breaking a C++ string into tokens

    The Standard C (and C++) function strtok() leaves a lot to be desired in terms of user-friendliness. It's unintuitive, it --- 196,202 ---- to the FAQ.

    !

    Breaking a C++ string into tokens

    The Standard C (and C++) function strtok() leaves a lot to be desired in terms of user-friendliness. It's unintuitive, it *************** *** 209,229 **** comments on what kind of string it will accept). The author uses a more general (but less readable) form of it for parsing command strings and the like. If you compiled and ran this code using it: !

         std::list<string>  ls;
         stringtok (ls, " this  \t is\t\n  a test  ");
         for (std::list<string>const_iterator i = ls.begin();
              i != ls.end(); ++i)
         {
             std::cerr << ':' << (*i) << ":\n";
    !    }
    ! You would see this as output: !
         :this:
         :is:
         :a:
    !    :test:
    ! with all the whitespace removed. The original s is still available for use, ls will clean up after itself, and ls.size() will return how many tokens there were.

    --- 217,239 ---- comments on what kind of string it will accept). The author uses a more general (but less readable) form of it for parsing command strings and the like. If you compiled and ran this code using it: !

    !
         std::list<string>  ls;
         stringtok (ls, " this  \t is\t\n  a test  ");
         for (std::list<string>const_iterator i = ls.begin();
              i != ls.end(); ++i)
         {
             std::cerr << ':' << (*i) << ":\n";
    !    } 
    !

    You would see this as output: !

    !
         :this:
         :is:
         :a:
    !    :test: 
    !

    with all the whitespace removed. The original s is still available for use, ls will clean up after itself, and ls.size() will return how many tokens there were.

    *************** *** 247,253 **** to the FAQ.

    !

    Simple transformations

    Here are Standard, simple, and portable ways to perform common transformations on a string instance, such as "convert --- 257,263 ---- to the FAQ.

    !

    Simple transformations

    Here are Standard, simple, and portable ways to perform common transformations on a string instance, such as "convert *************** *** 257,263 ****

    This code will go through some iterations (no pun). Here's the simplistic version usually seen on Usenet: !

         #include <string>
         #include <algorithm>
         #include <cctype>      // old <ctype.h>
    --- 267,274 ----
         

    This code will go through some iterations (no pun). Here's the simplistic version usually seen on Usenet: !

    !
         #include <string>
         #include <algorithm>
         #include <cctype>      // old <ctype.h>
    ***************
    *** 275,281 ****
         std::string  capital_s;
         capital_s.reserve(s.size());
         std::transform (s.begin(), s.end(), capital_s.begin(), tolower); 
    ! Note that these calls all involve the global C locale through the use of the C functions toupper/tolower. This is absolutely guaranteed to work -- but only if the string contains only characters --- 286,292 ---- std::string capital_s; capital_s.reserve(s.size()); std::transform (s.begin(), s.end(), capital_s.begin(), tolower);
    !

    Note that these calls all involve the global C locale through the use of the C functions toupper/tolower. This is absolutely guaranteed to work -- but only if the string contains only characters *************** *** 286,297 **** characters (hahahahahaha), then you're done.

    At minimum, you can write short wrappers like !

         char toLower (char c)
         {
            return tolower(static_cast<unsigned char>(c));
    !    }
    !

    The correct method is to use a facet for a particular locale and call its conversion functions. These are discussed more in Chapter 22; the specific part is --- 297,308 ---- characters (hahahahahaha), then you're done.

    At minimum, you can write short wrappers like !

    !
         char toLower (char c)
         {
            return tolower(static_cast<unsigned char>(c));
    !    } 

    The correct method is to use a facet for a particular locale and call its conversion functions. These are discussed more in Chapter 22; the specific part is *************** *** 303,309 **** like transformations, this task is trivial with the use of string's find family. These examples are broken into multiple statements for readability: !

         std::string  str (" \t blah blah blah    \n ");
      
         // trim leading whitespace
    --- 314,321 ----
            like transformations, this task is trivial with the use of string's
            find family.  These examples are broken into multiple
            statements for readability:
    !    

    !
         std::string  str (" \t blah blah blah    \n ");
      
         // trim leading whitespace
    ***************
    *** 313,319 ****
         // trim trailing whitespace
         notwhite = str.find_last_not_of(" \t\n"); 
         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.

    --- 325,331 ---- // trim trailing whitespace notwhite = str.find_last_not_of(" \t\n"); 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.

    *************** *** 321,331 **** to the FAQ.

    !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 333,352 ---- to the FAQ.

    +
    +

    Making strings of arbitrary character types

    +

    how to work with char_traits -- in the archives, just need to + go through and pull the examples together +

    +

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

    + !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/22_locale/codecvt.html gcc-3.2.1/libstdc++-v3/docs/html/22_locale/codecvt.html *** gcc-3.2/libstdc++-v3/docs/html/22_locale/codecvt.html Mon Sep 17 23:24:39 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/22_locale/codecvt.html Wed Sep 25 17:52:19 2002 *************** *** 1,14 ****

    Notes on the codecvt implementation.

    ! ! prepared by Benjamin Kosnik (bkoz@redhat.com) on August 28, 2000 ! -

    1. Abstract

    --- 1,22 ---- + + + + + Notes on the codecvt implementation. + + +

    Notes on the codecvt implementation.

    !

    ! prepared by Benjamin Kosnik (bkoz@redhat.com) on August 28, 2000 ! !

    1. Abstract

    *************** wide and narrow characters and the imple *** 28,53 **** functionality are given.

    -

    2. What the standard says

    Around page 425 of the C++ Standard, this charming heading comes into view: !
    22.2.1.5 - Template class codecvt [lib.locale.codecvt] !
    The text around the codecvt definition gives some clues: !
    ! -1- The class codecvt<internT,externT,stateT> is for use when converting from one codeset to another, such as from wide characters to multibyte characters, between wide character encodings such as Unicode and EUC. ! !

    Hmm. So, in some unspecified way, Unicode encodings and --- 36,60 ---- functionality are given.

    2. What the standard says

    Around page 425 of the C++ Standard, this charming heading comes into view: !
    22.2.1.5 - Template class codecvt [lib.locale.codecvt] !
    The text around the codecvt definition gives some clues: !
    ! -1- The class codecvt<internT,externT,stateT> is for use when converting from one codeset to another, such as from wide characters to multibyte characters, between wide character encodings such as Unicode and EUC. ! !

    Hmm. So, in some unspecified way, Unicode encodings and *************** translations between other character set *** 55,72 **** class.

    !
    ! -2- The stateT argument selects the pair of codesets being mapped between. ! !

    Ah ha! Another clue...

    !
    ! -3- The instantiations required in the Table ?? (lib.locale.category), namely codecvt<wchar_t,char,mbstate_t> and codecvt<char,char,mbstate_t>, convert the implementation-defined --- 62,79 ---- class.

    !
    ! -2- The stateT argument selects the pair of codesets being mapped between. ! !

    Ah ha! Another clue...

    !
    ! -3- The instantiations required in the Table ?? (lib.locale.category), namely codecvt<wchar_t,char,mbstate_t> and codecvt<char,char,mbstate_t>, convert the implementation-defined *************** mbstate_t perform conversion between enc *** 78,88 **** implementor. Other encodings can be converted by specializing on a user-defined stateT type. The stateT object can contain any state that is useful to communicate to or from the specialized do_convert member. ! !

    At this point, a couple points become clear:

    One: The standard clearly implies that attempts to add non-required --- 85,96 ---- implementor. Other encodings can be converted by specializing on a user-defined stateT type. The stateT object can contain any state that is useful to communicate to or from the specialized do_convert member. ! !

    At this point, a couple points become clear: +

    One: The standard clearly implies that attempts to add non-required *************** template parameter, imply an implementat *** 95,101 **** (or wholly) based on the underlying C library, and the functions mcsrtombs and wcsrtombs in particular.

    -

    3. Some thoughts on what would be useful

    --- 103,108 ---- *************** represent wide characters, and use an in *** 116,130 **** --- 123,141 ---- UCS4. (GNU/Linux systems using glibc, in particular.) The C programming language (and thus C++) does not specify a specific size for the type wchar_t. +

    Thus, portable C++ code cannot assume a byte size (or endianness) either. +

    Getting back to the frequently asked question: What about Unicode strings? +

    What magic spell will do this conversion? +

    A couple of comments: *************** includes: *** 142,148 ****

    • !

      Identifiers for each of the codesets involved in the conversion. For example, using the iconv family of functions from the Single Unix Specification (what used to be called X/Open) hosted on the GNU/Linux --- 153,159 ----
      • !

        Identifiers for each of the codesets involved in the conversion. For example, using the iconv family of functions from the Single Unix Specification (what used to be called X/Open) hosted on the GNU/Linux *************** operating system allows bi-directional m *** 150,159 **** the following tantalizing possibilities:

        (An edited list taken from `iconv --list` on a Red Hat 6.2/Intel system: !
        !
          8859_1, 8859_9, 10646-1:1993, 10646-1:1993/UCS4, ARABIC, ARABIC7,
          ASCII, EUC-CN, EUC-JP, EUC-KR, EUC-TW, GREEK-CCIcode, GREEK, GREEK7-OLD,
          GREEK7, GREEK8, HEBREW, ISO-8859-1, ISO-8859-2, ISO-8859-3,
        --- 161,172 ----
          the following tantalizing possibilities: 
          

        +

        (An edited list taken from `iconv --list` on a Red Hat 6.2/Intel system: +

        !
        !
          8859_1, 8859_9, 10646-1:1993, 10646-1:1993/UCS4, ARABIC, ARABIC7,
          ASCII, EUC-CN, EUC-JP, EUC-KR, EUC-TW, GREEK-CCIcode, GREEK, GREEK7-OLD,
          GREEK7, GREEK8, HEBREW, ISO-8859-1, ISO-8859-2, ISO-8859-3,
        *************** ISO-8859-15, ISO-10646, ISO-10646/UCS2, 
        *** 163,170 ****
          ISO-10646/UTF-8, ISO-10646/UTF8, SHIFT-JIS, SHIFT_JIS, UCS-2, UCS-4,
          UCS2, UCS4, UNICODE, UNICODEBIG, UNICODELIcodeLE, US-ASCII, US, UTF-8,
          UTF-16, UTF8, UTF16).
        ! 
        !

        For iconv-based implementations, string literals for each of the --- 176,183 ---- ISO-10646/UTF-8, ISO-10646/UTF8, SHIFT-JIS, SHIFT_JIS, UCS-2, UCS-4, UCS2, UCS4, UNICODE, UNICODEBIG, UNICODELIcodeLE, US-ASCII, US, UTF-8, UTF-16, UTF8, UTF16). !

        !

        For iconv-based implementations, string literals for each of the *************** encodings (ie. "UCS-2" and &qu *** 172,180 **** --- 185,196 ---- although for other, non-iconv implementations a table of enumerated values or some other mechanism may be required. +

        +
      • Maximum length of the identifying string literal. +
      • Some encodings are require explicit endian-ness. As such, some kind *************** mechanism may be required. *** 182,187 **** --- 198,204 ---- "Footnotes for C/C++ developers" in Haible for more information on UCS-2/Unicode endian issues. (Summary: big endian seems most likely, however implementations, most notably Microsoft, vary.) +
      • Types representing the conversion state, for conversions involving *************** mechanism may be required. *** 189,212 **** conversions using iconv (such as the type iconv_t.) Note that the conversion descriptor encodes more information than a simple encoding state type.
      • Conversion descriptors for both directions of encoding. (ie, both UCS-2 to UTF-8 and UTF-8 to UCS-2.)
      • Something to indicate if the conversion requested if valid.
      • Something to represent if the conversion descriptors are valid.
      • Some way to enforce strict type checking on the internal and external types. As part of this, the size of the internal and external types will need to be known.
      -

      4. Problems with "C" code conversions : thread safety, global locales, termination. --- 206,233 ---- conversions using iconv (such as the type iconv_t.) Note that the conversion descriptor encodes more information than a simple encoding state type. +

    • Conversion descriptors for both directions of encoding. (ie, both UCS-2 to UTF-8 and UTF-8 to UCS-2.) +
    • Something to indicate if the conversion requested if valid. +
    • Something to represent if the conversion descriptors are valid. +
    • Some way to enforce strict type checking on the internal and external types. As part of this, the size of the internal and external types will need to be known. +

    4. Problems with "C" code conversions : thread safety, global locales, termination. *************** when implemented using standard "C& *** 219,229 **** --- 240,252 ----

    Three problems arise, one big, one of medium importance, and one small. +

    First, the small: mcsrtombs and wcsrtombs may not be multithread-safe on all systems required by the GNU tools. For GNU/Linux and glibc, this is not an issue. +

    Of medium concern, in the grand scope of things, is that the functions *************** used to implement this specialization wo *** 231,236 **** --- 254,260 ---- strings. Buffers, especially file buffers, may not be null-terminated, thus giving conversions that end prematurely or are otherwise incorrect. Yikes! +

    The last, and fundamental problem, is the assumption of a global *************** the GNU C++ library would like to offer *** 242,255 **** multiple locales and or simultaneous usage with computationally correct results. In short, libstdc++-v3 is trying to offer, as an option, a high-quality implementation, damn the additional complexity!

    For the required specialization codecvt<wchar_t, char, mbstate_t> , conversions are made between the internal character set (always UCS4 on GNU/Linux) and whatever the currently selected locale for the LC_CTYPE category implements. -

    5. Design

    --- 266,280 ---- multiple locales and or simultaneous usage with computationally correct results. In short, libstdc++-v3 is trying to offer, as an option, a high-quality implementation, damn the additional complexity! +

    For the required specialization codecvt<wchar_t, char, mbstate_t> , conversions are made between the internal character set (always UCS4 on GNU/Linux) and whatever the currently selected locale for the LC_CTYPE category implements. +

    5. Design

    *************** The two required specializations are imp *** 259,283 **** --- 284,313 ---- codecvt<char, char, mbstate_t> +

    This is a degenerate (ie, does nothing) specialization. Implementing this was a piece of cake. +

    codecvt<char, wchar_t, mbstate_t> +

    This specialization, by specifying all the template parameters, pretty much ties the hands of implementors. As such, the implementation is straightforward, involving mcsrtombs for the conversions between char to wchar_t and wcsrtombs for conversions between wchar_t and char. +

    Neither of these two required specializations deals with Unicode characters. As such, libstdc++-v3 implements a partial specialization of the codecvt class with and iconv wrapper class, __enc_traits as the third template parameter. +

    This implementation should be standards conformant. First of all, the *************** non-required conversions. Second of all, *** 288,320 **** --- 318,357 ---- of all, the requirements for the stateT type elsewhere in the standard (see 21.1.2 traits typedefs) only indicate that this type be copy constructible. +

    As such, the type __enc_traits is defined as a non-templatized, POD type to be used as the third type of a codecvt instantiation. This type is just a wrapper class for iconv, and provides an easy interface to iconv functionality. +

    There are two constructors for __enc_traits: +

    __enc_traits() : __in_desc(0), __out_desc(0) +

    This default constructor sets the internal encoding to some default (currently UCS4) and the external encoding to whatever is returned by nl_langinfo(CODESET). +

    __enc_traits(const char* __int, const char* __ext) +

    This constructor takes as parameters string literals that indicate the desired internal and external encoding. There are no defaults for either argument. +

    One of the issues with iconv is that the string literals identifying *************** inducing) strategy was implemented: end- *** 325,348 **** --- 362,389 ---- (subject to a pre-determined length qualifier, currently 32 bytes) for encodings. It is up to the user to make sure that these strings are valid on the target system. +

    void _M_init() +

    Strangely enough, this member function attempts to open conversion descriptors for a given __enc_traits object. If the conversion descriptors are not valid, the conversion descriptors returned will not be valid and the resulting calls to the codecvt conversion functions will return error. +

    bool _M_good() +

    Provides a way to see if the given __enc_traits object has been properly initialized. If the string literals describing the desired *************** fail, and this will return false. If the *** 351,407 **** encodings are valid, but iconv_open could not allocate conversion descriptors, this will also return false. Otherwise, the object is ready to convert and will return true.

    __enc_traits(const __enc_traits&)

    As iconv allocates memory and sets up conversion descriptors, the copy constructor can only copy the member data pertaining to the internal and external code conversions, and not the conversion descriptors themselves.

    Definitions for all the required codecvt member functions are provided for this specialization, and usage of codecvt<internal character type, external character type, __enc_traits> is consistent with other codecvt usage. -

    6. Examples

      !
    • ! a. conversions involving string literals
      !   typedef codecvt_base::result			result;
      !   typedef unsigned short			unicode_t;
      !   typedef unicode_t				int_type;
      !   typedef char					ext_type;
      !   typedef __enc_traits				enc_type;
      !   typedef codecvt<int_type, ext_type, enc_type>	unicode_codecvt;
        
      !   const ext_type* 	e_lit = "black pearl jasmine tea";
      !   int 			size = strlen(e_lit);
      !   int_type 		i_lit_base[24] = 
          { 25088, 27648, 24832, 25344, 27392, 8192, 28672, 25856, 24832, 29184, 
            27648, 8192, 27136, 24832, 29440, 27904, 26880, 28160, 25856, 8192, 29696,
            25856, 24832, 2560
          };
      !   const int_type* 	i_lit = i_lit_base;
          const ext_type*       efrom_next;
          const int_type*       ifrom_next;
      !   ext_type* 		e_arr = new ext_type[size + 1];
      !   ext_type*		eto_next;
      !   int_type* 		i_arr = new int_type[size + 1];
      !   int_type*		ito_next;
        
          // construct a locale object with the specialized facet.
      !   locale 		loc(locale::classic(), new unicode_codecvt);
          // sanity check the constructed locale has the specialized facet.
          VERIFY( has_facet<unicode_codecvt>(loc) );
          const unicode_codecvt& cvt = use_facet<unicode_codecvt>(loc); 
      --- 392,451 ----
        encodings are valid, but iconv_open could not allocate conversion
        descriptors, this will also return false. Otherwise, the object is
        ready to convert and will return true.
      + 

      __enc_traits(const __enc_traits&) +

      As iconv allocates memory and sets up conversion descriptors, the copy constructor can only copy the member data pertaining to the internal and external code conversions, and not the conversion descriptors themselves. +

      Definitions for all the required codecvt member functions are provided for this specialization, and usage of codecvt<internal character type, external character type, __enc_traits> is consistent with other codecvt usage. +

      6. Examples

        !
      • ! a. conversions involving string literals
        !   typedef codecvt_base::result                  result;
        !   typedef unsigned short                        unicode_t;
        !   typedef unicode_t                             int_type;
        !   typedef char                                  ext_type;
        !   typedef __enc_traits                          enc_type;
        !   typedef codecvt<int_type, ext_type, enc_type> unicode_codecvt;
          
        !   const ext_type*       e_lit = "black pearl jasmine tea";
        !   int                   size = strlen(e_lit);
        !   int_type              i_lit_base[24] = 
            { 25088, 27648, 24832, 25344, 27392, 8192, 28672, 25856, 24832, 29184, 
              27648, 8192, 27136, 24832, 29440, 27904, 26880, 28160, 25856, 8192, 29696,
              25856, 24832, 2560
            };
        !   const int_type*       i_lit = i_lit_base;
            const ext_type*       efrom_next;
            const int_type*       ifrom_next;
        !   ext_type*             e_arr = new ext_type[size + 1];
        !   ext_type*             eto_next;
        !   int_type*             i_arr = new int_type[size + 1];
        !   int_type*             ito_next;
          
            // construct a locale object with the specialized facet.
        !   locale                loc(locale::classic(), new unicode_codecvt);
            // sanity check the constructed locale has the specialized facet.
            VERIFY( has_facet<unicode_codecvt>(loc) );
            const unicode_codecvt& cvt = use_facet<unicode_codecvt>(loc); 
        *************** codecvt usage.
        *** 409,478 ****
            unicode_codecvt::state_type state01("UNICODE", "ISO_8859-1");
            initialize_state(state01);
            result r1 = cvt.in(state01, e_lit, e_lit + size, efrom_next, 
        ! 		     i_arr, i_arr + size, ito_next);
            VERIFY( r1 == codecvt_base::ok );
            VERIFY( !int_traits::compare(i_arr, i_lit, size) ); 
            VERIFY( efrom_next == e_lit + size );
            VERIFY( ito_next == i_arr + size );
          
        !
      • ! b. conversions involving std::string !
      • ! c. conversions involving std::filebuf and std::ostream
      More information can be found in the following testcases:
        !
      • testsuite/22_locale/codecvt_char_char.cc !
      • testsuite/22_locale/codecvt_unicode_wchar_t.cc !
      • testsuite/22_locale/codecvt_unicode_char.cc !
      • testsuite/22_locale/codecvt_wchar_t_char.cc
      -

      7. Unresolved Issues

      • ! a. things that are sketchy, or remain unimplemented: ! do_encoding, max_length and length member functions ! are only weakly implemented. I have no idea how to do ! this correctly, and in a generic manner. Nathan?
      • ! b. conversions involving std::string !
          !
        • ! how should operators != and == work for string of ! different/same encoding? !
        • ! what is equal? A byte by byte comparison or an ! encoding then byte comparison? ! !
        • ! conversions between narrow, wide, and unicode strings !
      • ! c. conversions involving std::filebuf and std::ostream !
          !
        • ! how to initialize the state object in a ! standards-conformant manner? !
        • ! how to synchronize the "C" and "C++" ! conversion information? !
        • ! wchar_t/char internal buffers and conversions between ! internal/external buffers? !
      -

      8. Acknowledgments

      --- 453,532 ---- unicode_codecvt::state_type state01("UNICODE", "ISO_8859-1"); initialize_state(state01); result r1 = cvt.in(state01, e_lit, e_lit + size, efrom_next, ! i_arr, i_arr + size, ito_next); VERIFY( r1 == codecvt_base::ok ); VERIFY( !int_traits::compare(i_arr, i_lit, size) ); VERIFY( efrom_next == e_lit + size ); VERIFY( ito_next == i_arr + size );
      !
    • !
    • ! b. conversions involving std::string !
    • !
    • ! c. conversions involving std::filebuf and std::ostream !
    More information can be found in the following testcases:
      !
    • testsuite/22_locale/codecvt_char_char.cc
    • !
    • testsuite/22_locale/codecvt_unicode_wchar_t.cc
    • !
    • testsuite/22_locale/codecvt_unicode_char.cc
    • !
    • testsuite/22_locale/codecvt_wchar_t_char.cc

    7. Unresolved Issues

    • ! a. things that are sketchy, or remain unimplemented: ! do_encoding, max_length and length member functions ! are only weakly implemented. I have no idea how to do ! this correctly, and in a generic manner. Nathan? !
    • ! b. conversions involving std::string !
        !
      • ! how should operators != and == work for string of ! different/same encoding? !
      • !
      • ! what is equal? A byte by byte comparison or an ! encoding then byte comparison? !
      • ! !
      • ! conversions between narrow, wide, and unicode strings !
      • !
      !
    • ! c. conversions involving std::filebuf and std::ostream !
        !
      • ! how to initialize the state object in a ! standards-conformant manner? !
      • !
      • ! how to synchronize the "C" and "C++" ! conversion information? !
      • !
      • ! wchar_t/char internal buffers and conversions between ! internal/external buffers? !
      • !
      !

    8. Acknowledgments

    *************** Ulrich Drepper for the iconv suggestions *** 480,486 **** late-night questions, Jason Merrill for the template partial specialization hints, language clarification, and wchar_t fixes. -

    9. Bibliography / Referenced Documents

    --- 534,539 ---- *************** Drepper, Ulrich, GNU libc (glibc) 2.2 ma *** 489,522 ****

    Drepper, Ulrich, Numerous, late-night email correspondence

    Feather, Clive, "A brief description of Normative Addendum 1," in particular the parts on Extended Character Sets http://www.lysator.liu.se/c/na1.html

    Haible, Bruno, "The Unicode HOWTO" v0.18, 4 August 2000 ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html

    ISO/IEC 14882:1998 Programming languages - C++

    ISO/IEC 9899:1999 Programming languages - C

    Khun, Markus, "UTF-8 and Unicode FAQ for Unix/Linux" http://www.cl.cam.ac.uk/~mgk25/unicode.html

    Langer, Angelika and Klaus Kreft, Standard C++ IOStreams and Locales, Advanced Programmer's Guide and Reference, Addison Wesley Longman, Inc. 2000

    Stroustrup, Bjarne, Appendix D, The C++ Programming Language, Special Edition, Addison Wesley, Inc. 2000

    System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x) The Open Group/The Institute of Electrical and Electronics Engineers, Inc. http://www.opennc.org/austin/docreg.html ! --- 542,585 ----

    Drepper, Ulrich, Numerous, late-night email correspondence +

    Feather, Clive, "A brief description of Normative Addendum 1," in particular the parts on Extended Character Sets http://www.lysator.liu.se/c/na1.html +

    Haible, Bruno, "The Unicode HOWTO" v0.18, 4 August 2000 ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html +

    ISO/IEC 14882:1998 Programming languages - C++ +

    ISO/IEC 9899:1999 Programming languages - C +

    Khun, Markus, "UTF-8 and Unicode FAQ for Unix/Linux" http://www.cl.cam.ac.uk/~mgk25/unicode.html +

    Langer, Angelika and Klaus Kreft, Standard C++ IOStreams and Locales, Advanced Programmer's Guide and Reference, Addison Wesley Longman, Inc. 2000 +

    Stroustrup, Bjarne, Appendix D, The C++ Programming Language, Special Edition, Addison Wesley, Inc. 2000 +

    System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x) The Open Group/The Institute of Electrical and Electronics Engineers, Inc. http://www.opennc.org/austin/docreg.html +

    ! ! diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/22_locale/ctype.html gcc-3.2.1/libstdc++-v3/docs/html/22_locale/ctype.html *** gcc-3.2/libstdc++-v3/docs/html/22_locale/ctype.html Mon Sep 17 23:24:39 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/22_locale/ctype.html Wed Sep 25 17:52:19 2002 *************** *** 1,14 ****

    Notes on the ctype implementation.

    ! ! prepared by Benjamin Kosnik (bkoz@redhat.com) on August 30, 2000 ! -

    1. Abstract

    --- 1,20 ---- + + + + + Notes on the ctype implementation. + + +

    Notes on the ctype implementation.

    ! prepared by Benjamin Kosnik (bkoz@redhat.com) on August 30, 2000 !

    1. Abstract

    *************** prepared by Benjamin Kosnik (bkoz@redhat *** 16,28 **** Woe is me.

    -

    2. What the standard says

    -

    3. Problems with "C" ctype : global locales, termination.

    --- 22,32 ---- *************** For the required specialization codecvt& *** 32,39 **** conversions are made between the internal character set (always UCS4 on GNU/Linux) and whatever the currently selected locale for the LC_CTYPE category implements. -

    4. Design

    --- 36,43 ---- conversions are made between the internal character set (always UCS4 on GNU/Linux) and whatever the currently selected locale for the LC_CTYPE category implements. +

    4. Design

    *************** The two required specializations are imp *** 43,122 **** ctype<char>

    This is simple specialization. Implementing this was a piece of cake.

    ctype<wchar_t>

    This specialization, by specifying all the template parameters, pretty much ties the hands of implementors. As such, the implementation is straightforward, involving mcsrtombs for the conversions between char to wchar_t and wcsrtombs for conversions between wchar_t and char.

    Neither of these two required specializations deals with Unicode characters. As such, libstdc++-v3 implements - - -

    5. Examples

    !   typedef ctype cctype;
      
    More information can be found in the following testcases:
      !
    • testsuite/22_locale/ctype_char_members.cc !
    • testsuite/22_locale/ctype_wchar_t_members.cc
    -

    6. Unresolved Issues

      !
    • how to deal with the global locale issue? !
    • how to deal with different types than char, wchar_t? !
    • codecvt/ctype overlap: narrow/widen !
    • mask typedef in codecvt_base, argument types in codecvt. ! what is know about this type? !
    • why mask* argument in codecvt? ! !
    • can this be made (more) generic? is there a simple way to ! straighten out the configure-time mess that is a by-product of ! this class? !
    • get the ctype::mask stuff under control. Need to ! make some kind of static table, and not do lookup evertime ! somebody hits the do_is... functions. Too bad we can't just ! redefine mask for ctype ! !
    • rename abstract base class. See if just smash-overriding ! is a better approach. Clarify, add sanity to naming.
    -

    7. Acknowledgments

    Ulrich Drepper for patient answering of late-night questions, skeletal examples, and C language expertise. -

    8. Bibliography / Referenced Documents

    --- 47,125 ---- ctype<char> +

    This is simple specialization. Implementing this was a piece of cake. +

    ctype<wchar_t> +

    This specialization, by specifying all the template parameters, pretty much ties the hands of implementors. As such, the implementation is straightforward, involving mcsrtombs for the conversions between char to wchar_t and wcsrtombs for conversions between wchar_t and char. +

    Neither of these two required specializations deals with Unicode characters. As such, libstdc++-v3 implements +

    5. Examples

    !   typedef ctype<char> cctype;
      
    More information can be found in the following testcases:
      !
    • testsuite/22_locale/ctype_char_members.cc
    • !
    • testsuite/22_locale/ctype_wchar_t_members.cc

    6. Unresolved Issues

      !
    • how to deal with the global locale issue?
    • !
    • how to deal with different types than char, wchar_t?
    • !
    • codecvt/ctype overlap: narrow/widen
    • !
    • mask typedef in codecvt_base, argument types in codecvt. ! what is know about this type?
    • !
    • why mask* argument in codecvt?
    • ! !
    • can this be made (more) generic? is there a simple way to ! straighten out the configure-time mess that is a by-product of ! this class?
    • !
    • get the ctype<wchar_t>::mask stuff under control. Need to ! make some kind of static table, and not do lookup evertime ! somebody hits the do_is... functions. Too bad we can't just ! redefine mask for ctype<wchar_t>
    • ! !
    • rename abstract base class. See if just smash-overriding ! is a better approach. Clarify, add sanity to naming.

    7. Acknowledgments

    Ulrich Drepper for patient answering of late-night questions, skeletal examples, and C language expertise.

    8. Bibliography / Referenced Documents

    *************** Drepper, Ulrich, GNU libc (glibc) 2.2 ma *** 125,146 ****

    Drepper, Ulrich, Numerous, late-night email correspondence

    ISO/IEC 14882:1998 Programming languages - C++

    ISO/IEC 9899:1999 Programming languages - C

    Langer, Angelika and Klaus Kreft, Standard C++ IOStreams and Locales, Advanced Programmer's Guide and Reference, Addison Wesley Longman, Inc. 2000

    Stroustrup, Bjarne, Appendix D, The C++ Programming Language, Special Edition, Addison Wesley, Inc. 2000

    System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x) The Open Group/The Institute of Electrical and Electronics Engineers, Inc. http://www.opennc.org/austin/docreg.html ! --- 128,156 ----

    Drepper, Ulrich, Numerous, late-night email correspondence +

    ISO/IEC 14882:1998 Programming languages - C++ +

    ISO/IEC 9899:1999 Programming languages - C +

    Langer, Angelika and Klaus Kreft, Standard C++ IOStreams and Locales, Advanced Programmer's Guide and Reference, Addison Wesley Longman, Inc. 2000 +

    Stroustrup, Bjarne, Appendix D, The C++ Programming Language, Special Edition, Addison Wesley, Inc. 2000 +

    System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x) The Open Group/The Institute of Electrical and Electronics Engineers, Inc. http://www.opennc.org/austin/docreg.html +

    ! ! diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/22_locale/howto.html gcc-3.2.1/libstdc++-v3/docs/html/22_locale/howto.html *** gcc-3.2/libstdc++-v3/docs/html/22_locale/howto.html Thu Aug 1 21:29:14 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/22_locale/howto.html Wed Sep 25 17:52:19 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 22 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 22 ! *************** *** 16,54 ****

    Chapter 22 deals with the C++ localization facilities.

    !

    Contents

    !

    class locale

    Notes made during the implementation of locales can be found here.

    !

    class codecvt

    Notes made during the implementation of codecvt can be found here.

    The following is the abstract from the implementation notes:

    The standard class codecvt attempts to address conversions between different character encoding schemes. In particular, the standard --- 15,54 ----

    Chapter 22 deals with the C++ localization facilities.

    !

    Contents

    !

    class locale

    Notes made during the implementation of locales can be found here.

    !

    class codecvt

    Notes made during the implementation of codecvt can be found here.

    The following is the abstract from the implementation notes: +

    The standard class codecvt attempts to address conversions between different character encoding schemes. In particular, the standard *************** *** 64,84 **** the required specializations for wide and narrow characters and the implementation-provided extended functionality are given.
    -

    !

    class ctype

    Notes made during the implementation of ctype can be found here.

    !

    class messages

    Notes made during the implementation of messages can be found here.

    !

    Stroustrup on Locales

    Dr. Bjarne Stroustrup has released a pointer --- 64,83 ---- the required specializations for wide and narrow characters and the implementation-provided extended functionality are given.

    !

    class ctype

    Notes made during the implementation of ctype can be found here.

    !

    class messages

    Notes made during the implementation of messages can be found here.

    !

    Stroustrup on Locales

    Dr. Bjarne Stroustrup has released a pointer *************** *** 88,109 **** description of locales and how to use them.

    He also writes:

    Please note that I still consider this detailed description of locales beyond the needs of most C++ programmers. It is written with experienced programmers in mind and novices will do best to avoid it.
    -

    !

    Nathan Myers on Locales

    An article entitled "The Standard C++ Locale" was published in Dr. Dobb's Journal and can be found here.

    !

    Correct Transformations

    A very common question on newsgroups and mailing lists is, "How --- 87,108 ---- description of locales and how to use them.

    He also writes: +

    Please note that I still consider this detailed description of locales beyond the needs of most C++ programmers. It is written with experienced programmers in mind and novices will do best to avoid it.
    !

    Nathan Myers on Locales

    An article entitled "The Standard C++ Locale" was published in Dr. Dobb's Journal and can be found here.

    !

    Correct Transformations

    A very common question on newsgroups and mailing lists is, "How *************** *** 131,136 **** --- 130,136 ---- is created. Then member functions of that locale are called to perform minor tasks. Continuing the example from Chapter 21, we wish to use the following convenience functions: +

         namespace std {
           template <class charT>
    ***************
    *** 140,145 ****
    --- 140,146 ----
             charT
             tolower (charT c, const locale& loc) const;
         }
    +

    This function extracts the appropriate "facet" from the locale loc and calls the appropriate member function of that facet, passing c as its argument. The resulting character *************** *** 154,159 **** --- 155,161 ---- parameter. So we write simple wrapper structs to handle that.

    The next-to-final version of the code started in Chapter 21 looks like: +

         #include <iterator>    // for back_inserter
         #include <locale>
    ***************
    *** 195,201 ****
            std::string  capital_s;
            std::transform(s.begin(), s.end(), std::back_inserter(capital_s), up);
         }
    -

    The final version of the code uses bind2nd to eliminate the wrapper structs, but the resulting code is tricky. I have not shown it here because no compilers currently available to me will --- 197,202 ---- *************** *** 205,211 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 206,212 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/22_locale/locale.html gcc-3.2.1/libstdc++-v3/docs/html/22_locale/locale.html *** gcc-3.2/libstdc++-v3/docs/html/22_locale/locale.html Sun Oct 7 18:02:45 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/22_locale/locale.html Thu Oct 17 02:04:15 2002 *************** *** 1,122 **** !

    Notes on the locale implementation.

    ! ! ! prepared by Benjamin Kosnik (bkoz@redhat.com) on August 8, 2001 ! -

    ! 1. Abstract Describes the basic locale object, including nested ! classes id, facet, and the reference-counted implementation object, ! class _Impl.

    -

    2. What the standard says - See Chapter 22 of the standard.

    !

    ! 3. Problems with "C" locales : global locales, termination. !

    ! The major problem is fitting an object-orientated and non-global locale ! design ontop of POSIX and other relevant stanards, which include the ! Single Unix (nee X/Open.) ! Because POSIX falls down so completely, portibility is an issue.

    ! 4. Design

    - Class locale in non-templatized and has three distinct types nested - inside of it: ! class facet ! 22.1.1.1.2 Class locale::facet ! Facets actually implement locale functionality. For instance, a facet ! called numpunct is the data objects that can be used to query for the ! thousands separator is in the German locale. ! Literally, a facet is strictly defined: ! - containing ! public: ! static locale::id id; ! - or derived from another facet ! The only other thing of interest in this class is the memory ! management of facets. Each constructor of a facet class takes a ! std::size_t __refs argument: if __refs == 0, the facet is deleted when ! no longer used. if __refs == 1, the facet is not destroyed, even when ! it is no longer reference. ! class id ! Provides an index for looking up specific facets. - class _Impl

    5. Examples

    -
    -   typedef __locale_t locale;
    - 
    - More information can be found in the following testcases:
      !
    • testsuite/22_locale/ctype_char_members.cc !
    • testsuite/22_locale/ctype_wchar_t_members.cc
    -

    6. Unresolved Issues

      !
    • locale -a displays available locales on linux ! !
    • locale initialization: at what point does _S_classic, ! _S_global get initialized? Can named locales assume this ! initialization has already taken place? !
    • document how named locales error check when filling data ! members. Ie, a fr_FR locale that doesn't have ! numpunct::truename(): does it use "true"? Or is it a blank ! string? What's the convention? !
    • explain how locale aliasing happens. When does "de_DE" ! use "de" information? What is the rule for locales composed of ! just an ISO language code (say, "de") and locales with both an ! ISO language code and ISO country code (say, "de_DE"). !
    • what should non-required facet instantiations do? If the ! generic implemenation is provided, then how to end-users ! provide specializations?
    -

    7. Acknowledgments

    -

    8. Bibliography / Referenced Documents

    --- 1,504 ---- ! ! ! + + + + + Notes on the locale implementation. + + +

    Notes on the locale implementation.

    ! ! prepared by Benjamin Kosnik (bkoz@redhat.com) on October 14, 2002 !

    ! 1. Abstract

    + Describes the basic locale object, including nested + classes id, facet, and the reference-counted implementation object, + class _Impl.

    2. What the standard says

    + Class locale is non-templatized and has two distinct types nested + inside of it: +
    + + class facet + 22.1.1.1.2 Class locale::facet + +

    ! Facets actually implement locale functionality. For instance, a facet ! called numpunct is the data objects that can be used to query for the ! thousands separator is in the German locale. !

    ! ! Literally, a facet is strictly defined: !
      !
    • containing the following public data member: !

      ! static locale::id id; !

      !
    • ! !
    • derived from another facet: !

      ! class gnu_codecvt: public std::ctype<user-defined-type> !

      !
    • !

    ! Of interest in this class are the memory management options explicitly ! specified as an argument to facet's constructor. Each constructor of a ! facet class takes a std::size_t __refs argument: if __refs == 0, the ! facet is deleted when the locale containing it is destroyed. If __refs ! == 1, the facet is not destroyed, even when it is no longer ! referenced. !

    ! !
    ! ! class id ! 22.1.1.1.3 - Class locale::id ! !
    !

    ! Provides an index for looking up specific facets.

    +

    ! 3. Interacting with "C" locales.

    !

    ! Some help on determining the underlying support for locales on a system. ! Note, this is specific to linux (and glibc-2.3.x) !

    !
      !
    • `locale -a` displays available locales. !
      !
      ! af_ZA
      ! ar_AE
      ! ar_AE.utf8
      ! ar_BH
      ! ar_BH.utf8
      ! ar_DZ
      ! ar_DZ.utf8
      ! ar_EG
      ! ar_EG.utf8
      ! ar_IN
      ! ar_IQ
      ! ar_IQ.utf8
      ! ar_JO
      ! ar_JO.utf8
      ! ar_KW
      ! ar_KW.utf8
      ! ar_LB
      ! ar_LB.utf8
      ! ar_LY
      ! ar_LY.utf8
      ! ar_MA
      ! ar_MA.utf8
      ! ar_OM
      ! ar_OM.utf8
      ! ar_QA
      ! ar_QA.utf8
      ! ar_SA
      ! ar_SA.utf8
      ! ar_SD
      ! ar_SD.utf8
      ! ar_SY
      ! ar_SY.utf8
      ! ar_TN
      ! ar_TN.utf8
      ! ar_YE
      ! ar_YE.utf8
      ! be_BY
      ! be_BY.utf8
      ! bg_BG
      ! bg_BG.utf8
      ! br_FR
      ! bs_BA
      ! C
      ! ca_ES
      ! ca_ES@euro
      ! ca_ES.utf8
      ! ca_ES.utf8@euro
      ! cs_CZ
      ! cs_CZ.utf8
      ! cy_GB
      ! da_DK
      ! da_DK.iso885915
      ! da_DK.utf8
      ! de_AT
      ! de_AT@euro
      ! de_AT.utf8
      ! de_AT.utf8@euro
      ! de_BE
      ! de_BE@euro
      ! de_BE.utf8
      ! de_BE.utf8@euro
      ! de_CH
      ! de_CH.utf8
      ! de_DE
      ! de_DE@euro
      ! de_DE.utf8
      ! de_DE.utf8@euro
      ! de_LU
      ! de_LU@euro
      ! de_LU.utf8
      ! de_LU.utf8@euro
      ! el_GR
      ! el_GR.utf8
      ! en_AU
      ! en_AU.utf8
      ! en_BW
      ! en_BW.utf8
      ! en_CA
      ! en_CA.utf8
      ! en_DK
      ! en_DK.utf8
      ! en_GB
      ! en_GB.iso885915
      ! en_GB.utf8
      ! en_HK
      ! en_HK.utf8
      ! en_IE
      ! en_IE@euro
      ! en_IE.utf8
      ! en_IE.utf8@euro
      ! en_IN
      ! en_NZ
      ! en_NZ.utf8
      ! en_PH
      ! en_PH.utf8
      ! en_SG
      ! en_SG.utf8
      ! en_US
      ! en_US.iso885915
      ! en_US.utf8
      ! en_ZA
      ! en_ZA.utf8
      ! en_ZW
      ! en_ZW.utf8
      ! es_AR
      ! es_AR.utf8
      ! es_BO
      ! es_BO.utf8
      ! es_CL
      ! es_CL.utf8
      ! es_CO
      ! es_CO.utf8
      ! es_CR
      ! es_CR.utf8
      ! es_DO
      ! es_DO.utf8
      ! es_EC
      ! es_EC.utf8
      ! es_ES
      ! es_ES@euro
      ! es_ES.utf8
      ! es_ES.utf8@euro
      ! es_GT
      ! es_GT.utf8
      ! es_HN
      ! es_HN.utf8
      ! es_MX
      ! es_MX.utf8
      ! es_NI
      ! es_NI.utf8
      ! es_PA
      ! es_PA.utf8
      ! es_PE
      ! es_PE.utf8
      ! es_PR
      ! es_PR.utf8
      ! es_PY
      ! es_PY.utf8
      ! es_SV
      ! es_SV.utf8
      ! es_US
      ! es_US.utf8
      ! es_UY
      ! es_UY.utf8
      ! es_VE
      ! es_VE.utf8
      ! et_EE
      ! et_EE.utf8
      ! eu_ES
      ! eu_ES@euro
      ! eu_ES.utf8
      ! eu_ES.utf8@euro
      ! fa_IR
      ! fi_FI
      ! fi_FI@euro
      ! fi_FI.utf8
      ! fi_FI.utf8@euro
      ! fo_FO
      ! fo_FO.utf8
      ! fr_BE
      ! fr_BE@euro
      ! fr_BE.utf8
      ! fr_BE.utf8@euro
      ! fr_CA
      ! fr_CA.utf8
      ! fr_CH
      ! fr_CH.utf8
      ! fr_FR
      ! fr_FR@euro
      ! fr_FR.utf8
      ! fr_FR.utf8@euro
      ! fr_LU
      ! fr_LU@euro
      ! fr_LU.utf8
      ! fr_LU.utf8@euro
      ! ga_IE
      ! ga_IE@euro
      ! ga_IE.utf8
      ! ga_IE.utf8@euro
      ! gl_ES
      ! gl_ES@euro
      ! gl_ES.utf8
      ! gl_ES.utf8@euro
      ! gv_GB
      ! gv_GB.utf8
      ! he_IL
      ! he_IL.utf8
      ! hi_IN
      ! hr_HR
      ! hr_HR.utf8
      ! hu_HU
      ! hu_HU.utf8
      ! id_ID
      ! id_ID.utf8
      ! is_IS
      ! is_IS.utf8
      ! it_CH
      ! it_CH.utf8
      ! it_IT
      ! it_IT@euro
      ! it_IT.utf8
      ! it_IT.utf8@euro
      ! iw_IL
      ! iw_IL.utf8
      ! ja_JP.eucjp
      ! ja_JP.utf8
      ! ka_GE
      ! kl_GL
      ! kl_GL.utf8
      ! ko_KR.euckr
      ! ko_KR.utf8
      ! kw_GB
      ! kw_GB.utf8
      ! lt_LT
      ! lt_LT.utf8
      ! lv_LV
      ! lv_LV.utf8
      ! mi_NZ
      ! mk_MK
      ! mk_MK.utf8
      ! mr_IN
      ! ms_MY
      ! ms_MY.utf8
      ! mt_MT
      ! mt_MT.utf8
      ! nl_BE
      ! nl_BE@euro
      ! nl_BE.utf8
      ! nl_BE.utf8@euro
      ! nl_NL
      ! nl_NL@euro
      ! nl_NL.utf8
      ! nl_NL.utf8@euro
      ! nn_NO
      ! nn_NO.utf8
      ! no_NO
      ! no_NO.utf8
      ! oc_FR
      ! pl_PL
      ! pl_PL.utf8
      ! POSIX
      ! pt_BR
      ! pt_BR.utf8
      ! pt_PT
      ! pt_PT@euro
      ! pt_PT.utf8
      ! pt_PT.utf8@euro
      ! ro_RO
      ! ro_RO.utf8
      ! ru_RU
      ! ru_RU.koi8r
      ! ru_RU.utf8
      ! ru_UA
      ! ru_UA.utf8
      ! se_NO
      ! sk_SK
      ! sk_SK.utf8
      ! sl_SI
      ! sl_SI.utf8
      ! sq_AL
      ! sq_AL.utf8
      ! sr_YU
      ! sr_YU@cyrillic
      ! sr_YU.utf8
      ! sr_YU.utf8@cyrillic
      ! sv_FI
      ! sv_FI@euro
      ! sv_FI.utf8
      ! sv_FI.utf8@euro
      ! sv_SE
      ! sv_SE.iso885915
      ! sv_SE.utf8
      ! ta_IN
      ! te_IN
      ! tg_TJ
      ! th_TH
      ! th_TH.utf8
      ! tl_PH
      ! tr_TR
      ! tr_TR.utf8
      ! uk_UA
      ! uk_UA.utf8
      ! ur_PK
      ! uz_UZ
      ! vi_VN
      ! vi_VN.tcvn
      ! wa_BE
      ! wa_BE@euro
      ! yi_US
      ! zh_CN
      ! zh_CN.gb18030
      ! zh_CN.gbk
      ! zh_CN.utf8
      ! zh_HK
      ! zh_HK.utf8
      ! zh_TW
      ! zh_TW.euctw
      ! zh_TW.utf8
      ! 
      !
      !
    • ! !
    • `locale` displays environmental variables ! that impact how locale("") will be deduced. !
      !
      ! LANG=en_US
      ! LC_CTYPE="en_US"
      ! LC_NUMERIC="en_US"
      ! LC_TIME="en_US"
      ! LC_COLLATE="en_US"
      ! LC_MONETARY="en_US"
      ! LC_MESSAGES="en_US"
      ! LC_PAPER="en_US"
      ! LC_NAME="en_US"
      ! LC_ADDRESS="en_US"
      ! LC_TELEPHONE="en_US"
      ! LC_MEASUREMENT="en_US"
      ! LC_IDENTIFICATION="en_US"
      ! LC_ALL=
      ! 
      !
      !
    • !
    !

    ! From Josuttis, p. 697-698, which says, that "there is only *one* ! relation (of the C++ locale mechanism) to the C locale mechanism: the ! global C locale is modified if a named C++ locale object is set as the ! global locale" (emphasis Paolo), that is: !

    ! std::locale::global(std::locale("")); !

    affects the C functions as if the following call was made:

    + std::setlocale(LC_ALL, ""); !

    ! On the other hand, there is *no* viceversa, that is, calling setlocale ! has *no* whatsoever on the C++ locale mechanism, in particular on the ! working of locale(""), which constructs the locale object from the ! environment of the running program, that is, in practice, the set of ! LC_ALL, LANG, etc. variable of the shell. !

    ! ! !

    ! 4. Design !

    + The major design challenge is fitting an object-orientated and + non-global locale design ontop of POSIX and other relevant stanards, + which include the Single Unix (nee X/Open.) +

    + +

    + Because POSIX falls down so completely, portibility is an issue. +

    + + class _Impl + The internal representation of the std::locale object. + +

    5. Examples

    More information can be found in the following testcases:
      !
    • testsuite/22_locale/all

    6. Unresolved Issues

      !
    • locale initialization: at what point does _S_classic, ! _S_global get initialized? Can named locales assume this ! initialization has already taken place?
    • !
    • document how named locales error check when filling data ! members. Ie, a fr_FR locale that doesn't have ! numpunct::truename(): does it use "true"? Or is it a blank ! string? What's the convention?
    • !
    • explain how locale aliasing happens. When does "de_DE" ! use "de" information? What is the rule for locales composed of ! just an ISO language code (say, "de") and locales with both an ! ISO language code and ISO country code (say, "de_DE").
    • !
    • what should non-required facet instantiations do? If the ! generic implemenation is provided, then how to end-users ! provide specializations?

    7. Acknowledgments

    8. Bibliography / Referenced Documents

    *************** Drepper, Ulrich, GNU libc (glibc) 2.2 ma *** 125,144 **** --- 507,537 ----

    Drepper, Ulrich, Numerous, late-night email correspondence +

    ISO/IEC 14882:1998 Programming languages - C++ +

    ISO/IEC 9899:1999 Programming languages - C +

    Langer, Angelika and Klaus Kreft, Standard C++ IOStreams and Locales, Advanced Programmer's Guide and Reference, Addison Wesley Longman, Inc. 2000 +

    Stroustrup, Bjarne, Appendix D, The C++ Programming Language, Special Edition, Addison Wesley, Inc. 2000 +

    System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x) The Open Group/The Institute of Electrical and Electronics Engineers, Inc. http://www.opennc.org/austin/docreg.html +

    + + + + + diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/22_locale/messages.html gcc-3.2.1/libstdc++-v3/docs/html/22_locale/messages.html *** gcc-3.2/libstdc++-v3/docs/html/22_locale/messages.html Thu Jan 31 00:24:56 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/22_locale/messages.html Wed Sep 25 17:52:19 2002 *************** *** 1,14 **** !

    ! Notes on the messages implementation. !

    ! prepared by Benjamin Kosnik (bkoz@redhat.com) on August 8, 2001 ! -

    1. Abstract

    --- 1,20 ---- ! ! ! ! ! Notes on the messages implementation. ! ! !

    ! Notes on the messages implementation. !

    ! prepared by Benjamin Kosnik (bkoz@redhat.com) on August 8, 2001 !

    1. Abstract

    *************** equivalent to Java's java.text.MessageFo *** 18,24 **** or IEEE 1003.1-200 functions.

    -

    2. What the standard says

    --- 24,29 ---- *************** locale to the other. For instance, conve *** 29,37 **** const char* c = "please" to a German-localized "bitte" during program execution. !
    22.2.7.1 - Template class messages [lib.locale.messages] !
    This class has three public member functions, which directly correspond to three protected virtual member functions. --- 34,42 ---- const char* c = "please" to a German-localized "bitte" during program execution. !
    22.2.7.1 - Template class messages [lib.locale.messages] !
    This class has three public member functions, which directly correspond to three protected virtual member functions. *************** correspond to three protected virtual me *** 39,90 **** The public member functions are:

    ! catalog open(const string&, const locale&) const

    ! string_type get(catalog, int, int, const string_type&) const

    void close(catalog) const

    While the virtual functions are:

    ! catalog do_open(const string&, const locale&) const !

    ! -1- Returns: A value that may be passed to get() to retrieve a message, from the message catalog identified by the string name according to an implementation-defined mapping. The result can be used until it is passed to close(). Returns a value less than 0 if no such catalog can be opened. ! !

    ! string_type do_get(catalog, int, int, const string_type&) const !

    ! -3- Requires: A catalog cat obtained from open() and not yet closed. -4- Returns: A message identified by arguments set, msgid, and dfault, according to an implementation-defined mapping. If no such message can be found, returns dfault. ! !

    void do_close(catalog) const !

    ! -5- Requires: A catalog cat obtained from open() and not yet closed. -6- Effects: Releases unspecified resources associated with cat. -7- Notes: The limit on such resources, if any, is implementation-defined. ! !
    -

    3. Problems with "C" messages: thread safety, over-specification, and assumptions. --- 44,101 ---- The public member functions are:

    ! catalog open(const string&, const locale&) const !

    ! string_type get(catalog, int, int, const string_type&) const !

    void close(catalog) const +

    While the virtual functions are: +

    ! catalog do_open(const string&, const locale&) const !

    !
    ! -1- Returns: A value that may be passed to get() to retrieve a message, from the message catalog identified by the string name according to an implementation-defined mapping. The result can be used until it is passed to close(). Returns a value less than 0 if no such catalog can be opened. ! !

    ! string_type do_get(catalog, int, int, const string_type&) const !

    !
    ! -3- Requires: A catalog cat obtained from open() and not yet closed. -4- Returns: A message identified by arguments set, msgid, and dfault, according to an implementation-defined mapping. If no such message can be found, returns dfault. ! !

    void do_close(catalog) const !

    !
    ! -5- Requires: A catalog cat obtained from open() and not yet closed. -6- Effects: Releases unspecified resources associated with cat. -7- Notes: The limit on such resources, if any, is implementation-defined. ! !

    3. Problems with "C" messages: thread safety, over-specification, and assumptions. *************** First, why is messages_base::catal *** 96,132 **** to int? This makes sense for implementations that use catopen, but not for others. Fortunately, it's not heavily used and so only a minor irritant.

    Second, by making the member functions const, it is impossible to save state in them. Thus, storing away information used in the 'open' member function for use in 'get' is impossible. This is unfortunate.

    The 'open' member function in particular seems to be oddly designed. The signature seems quite peculiar. Why specify a const ! string& argument, for instance, instead of just const ! char*? Or, why specify a const locale& argument that is to be used in the 'get' member function? How, exactly, is this locale argument useful? What was the intent? It might make sense if a locale argument was associated with a given default message string in the 'open' member function, for instance. Quite murky and unclear, on reflection.

    Lastly, it seems odd that messages, which explicitly require code conversion, don't use the codecvt facet. Because the messages facet has only one template parameter, it is assumed that ctype, and not codecvt, is to be used to convert between character sets.

    It is implicitly assumed that the locale for the default message string in 'get' is in the "C" locale. Thus, all source code is assumed to be written in English, so translations are always from "en_US" to other, explicitly named locales. -

    4. Design and Implementation Details

    --- 107,147 ---- to int? This makes sense for implementations that use catopen, but not for others. Fortunately, it's not heavily used and so only a minor irritant. +

    Second, by making the member functions const, it is impossible to save state in them. Thus, storing away information used in the 'open' member function for use in 'get' is impossible. This is unfortunate. +

    The 'open' member function in particular seems to be oddly designed. The signature seems quite peculiar. Why specify a const ! string& argument, for instance, instead of just const ! char*? Or, why specify a const locale& argument that is to be used in the 'get' member function? How, exactly, is this locale argument useful? What was the intent? It might make sense if a locale argument was associated with a given default message string in the 'open' member function, for instance. Quite murky and unclear, on reflection. +

    Lastly, it seems odd that messages, which explicitly require code conversion, don't use the codecvt facet. Because the messages facet has only one template parameter, it is assumed that ctype, and not codecvt, is to be used to convert between character sets. +

    It is implicitly assumed that the locale for the default message string in 'get' is in the "C" locale. Thus, all source code is assumed to be written in English, so translations are always from "en_US" to other, explicitly named locales. +

    4. Design and Implementation Details

    *************** dependent on the capabilities of the und *** 140,174 ****

    Three different mechanisms have been provided, selectable via configure flags:

      !
    • generic !

      ! This model does very little, and is what is used by default. !

      !
    • gnu !

      ! The gnu model is complete and fully tested. It's based on the ! GNU gettext package, which is part of glibc. It uses the functions ! textdomain, bindtextdomain, gettext ! to implement full functionality. Creating message ! catalogs is a relatively straight-forward process and is ! lightly documented below, and fully documented in gettext's ! distributed documentation. !

      !
    • ieee_1003.1-200x !

      ! This is a complete, though untested, implementation based on ! the IEEE standard. The functions ! catopen, catgets, catclose ! are used to retrieve locale-specific messages given the ! appropriate message catalogs that have been constructed for ! their use. Note, the script po2msg.sed that is part ! of the gettext distribution can convert gettext catalogs into ! catalogs that catopen can use. !

    --- 155,193 ----

    Three different mechanisms have been provided, selectable via configure flags: +

      !
    • generic !

      ! This model does very little, and is what is used by default. !

      !
    • !
    • gnu !

      ! The gnu model is complete and fully tested. It's based on the ! GNU gettext package, which is part of glibc. It uses the functions ! textdomain, bindtextdomain, gettext ! to implement full functionality. Creating message ! catalogs is a relatively straight-forward process and is ! lightly documented below, and fully documented in gettext's ! distributed documentation. !

      !
    • !
    • ieee_1003.1-200x !

      ! This is a complete, though untested, implementation based on ! the IEEE standard. The functions ! catopen, catgets, catclose ! are used to retrieve locale-specific messages given the ! appropriate message catalogs that have been constructed for ! their use. Note, the script po2msg.sed that is part ! of the gettext distribution can convert gettext catalogs into ! catalogs that catopen can use. !

      !

    *************** A new, standards-conformant non-virtual *** 176,184 **** --- 195,205 ---- added for 'open' so that a directory could be specified with a given message catalog. This simplifies calling conventions for the gnu model. +

    The rest of this document discusses details of the GNU model. +

    The messages facet, because it is retrieving and converting between *************** necessary for more than just the L *** 188,352 **** LC_CTYPE is also necessary. To avoid any unpleasantness, all bits of the "C" mask (ie LC_ALL) are set before retrieving messages.

    Making the message catalogs can be initially tricky, but become quite simple with practice. For complete info, see the gettext documentation. Here's an idea of what is required:

      !
    • Make a source file with the required string literals ! that need to be translated. See ! intl/string_literals.cc for an example. !

      !

    • Make initial catalog (see "4 Making the PO Template File" ! from the gettext docs). !

      ! xgettext --c++ --debug string_literals.cc -o libstdc++.pot ! !

      !

    • Make language and country-specific locale catalogs. !

      ! cp libstdc++.pot fr_FR.po !

      ! cp libstdc++.pot de_DE.po !

      !

    • Edit localized catalogs in emacs so that strings are ! translated. !

      ! emacs fr_FR.po ! !

      !

    • Make the binary mo files. !

      ! msgfmt fr_FR.po -o fr_FR.mo !

      ! msgfmt de_DE.po -o de_DE.mo !

      !

    • Copy the binary files into the correct directory structure. !

      ! cp fr_FR.mo (dir)/fr_FR/LC_MESSAGES/libstdc++-v3.mo !

      ! cp de_DE.mo (dir)/de_DE/LC_MESSAGES/libstdc++-v3.mo !

      !

    • Use the new message catalogs. !

      ! locale loc_de("de_DE"); !

      ! ! use_facet >(loc_de).open("libstdc++", locale(), dir); !

    -

    5. Examples

      !
    • message converting, simple example using the GNU model.
      ! #include 
      ! #include 
        using namespace std;
        
        void test01()
        {
      !   typedef messages::catalog catalog;
          const char* dir =
          "/mnt/egcs/build/i686-pc-linux-gnu/libstdc++-v3/po/share/locale";  
          const locale loc_de("de_DE");
      !   const messages& mssg_de = use_facet >(loc_de); 
        
          catalog cat_de = mssg_de.open("libstdc++", loc_de, dir);
          string s01 = mssg_de.get(cat_de, 0, 0, "please");
          string s02 = mssg_de.get(cat_de, 0, 0, "thank you");
      !   cout << "please in german:" << s01 << '\n';
      !   cout << "thank you in german:" << s02 << '\n';
          mssg_de.close(cat_de);
        }
        
    More information can be found in the following testcases:
      !
    • testsuite/22_locale/messages.cc !
    • testsuite/22_locale/messages_byname.cc !
    • testsuite/22_locale/messages_char_members.cc
    -

    6. Unresolved Issues

      !
    • Things that are sketchy, or remain unimplemented: !
        !
      • _M_convert_from_char, _M_convert_to_char are in ! flux, depending on how the library ends up doing ! character set conversions. It might not be possible to ! do a real character set based conversion, due to the ! fact that the template parameter for messages is not ! enough to instantiate the codecvt facet (1 supplied, ! need at least 2 but would prefer 3). !
      • There are issues with gettext needing the global ! locale set to extract a message. This dependence on ! the global locale makes the current "gnu" model non ! MT-safe. Future versions of glibc, ie glibc 2.3.x will ! fix this, and the C++ library bits are already in ! place. !
      ! !

      !

    • Development versions of the GNU "C" library, glibc 2.3 will allow ! a more efficient, MT implementation of std::messages, and will ! allow the removal of the _M_name_messages data member. If this ! is done, it will change the library ABI. The C++ parts to ! support glibc 2.3 have already been coded, but are not in use: ! once this version of the "C" library is released, the marked ! parts of the messages implementation can be switched over to ! the new "C" library functionality. !

    • At some point in the near future, std::numpunct will probably use ! std::messages facilities to implement truename/falename ! correctly. This is currently not done, but entries in ! libstdc++.pot have already been made for "true" and "false" ! string literals, so all that remains is the std::numpunct ! coding and the configure/make hassles to make the installed ! library search its own catalog. Currently the libstdc++.mo ! catalog is only searched for the testsuite cases involving ! messages members. !

      !

    • The following member functions: !

      ! catalog ! open(const basic_string& __s, const locale& __loc) const ! !

      ! ! catalog ! open(const basic_string&, const locale&, const char*) const; ! !

      ! Don't actually return a "value less than 0 if no such catalog ! can be opened" as required by the standard in the "gnu" ! model. As of this writing, it is unknown how to query to see ! if a specified message catalog exists using the gettext ! package.

    -

    7. Acknowledgments

    --- 209,390 ---- LC_CTYPE is also necessary. To avoid any unpleasantness, all bits of the "C" mask (ie LC_ALL) are set before retrieving messages. +

    Making the message catalogs can be initially tricky, but become quite simple with practice. For complete info, see the gettext documentation. Here's an idea of what is required: +

      !
    • Make a source file with the required string literals ! that need to be translated. See ! intl/string_literals.cc for an example. !
    • !
    • Make initial catalog (see "4 Making the PO Template File" ! from the gettext docs). !

      ! xgettext --c++ --debug string_literals.cc -o libstdc++.pot !

      !
    • ! !
    • Make language and country-specific locale catalogs. !

      ! cp libstdc++.pot fr_FR.po !

      !

      ! cp libstdc++.pot de_DE.po !

      !
    • !
    • Edit localized catalogs in emacs so that strings are ! translated. !

      ! emacs fr_FR.po !

      !
    • ! !
    • Make the binary mo files. !

      ! msgfmt fr_FR.po -o fr_FR.mo !

      !

      ! msgfmt de_DE.po -o de_DE.mo !

      !
    • !
    • Copy the binary files into the correct directory structure. !

      ! cp fr_FR.mo (dir)/fr_FR/LC_MESSAGES/libstdc++-v3.mo !

      !

      ! cp de_DE.mo (dir)/de_DE/LC_MESSAGES/libstdc++-v3.mo !

      !
    • !
    • Use the new message catalogs. !

      ! locale loc_de("de_DE"); !

      !

      ! ! use_facet<messages<char> >(loc_de).open("libstdc++", locale(), dir); ! !

      !

    5. Examples

      !
    • message converting, simple example using the GNU model.
      ! #include <iostream>
      ! #include <locale>
        using namespace std;
        
        void test01()
        {
      !   typedef messages<char>::catalog catalog;
          const char* dir =
          "/mnt/egcs/build/i686-pc-linux-gnu/libstdc++-v3/po/share/locale";  
          const locale loc_de("de_DE");
      !   const messages<char>& mssg_de = use_facet<messages<char> >(loc_de); 
        
          catalog cat_de = mssg_de.open("libstdc++", loc_de, dir);
          string s01 = mssg_de.get(cat_de, 0, 0, "please");
          string s02 = mssg_de.get(cat_de, 0, 0, "thank you");
      !   cout << "please in german:" << s01 << '\n';
      !   cout << "thank you in german:" << s02 << '\n';
          mssg_de.close(cat_de);
        }
        
      +
    More information can be found in the following testcases:
      !
    • testsuite/22_locale/messages.cc
    • !
    • testsuite/22_locale/messages_byname.cc
    • !
    • testsuite/22_locale/messages_char_members.cc

    6. Unresolved Issues

      !
    • Things that are sketchy, or remain unimplemented: !
        !
      • _M_convert_from_char, _M_convert_to_char are in ! flux, depending on how the library ends up doing ! character set conversions. It might not be possible to ! do a real character set based conversion, due to the ! fact that the template parameter for messages is not ! enough to instantiate the codecvt facet (1 supplied, ! need at least 2 but would prefer 3). !
      • !
      • There are issues with gettext needing the global ! locale set to extract a message. This dependence on ! the global locale makes the current "gnu" model non ! MT-safe. Future versions of glibc, ie glibc 2.3.x will ! fix this, and the C++ library bits are already in ! place. !
      • !
      !
    • ! !
    • Development versions of the GNU "C" library, glibc 2.3 will allow ! a more efficient, MT implementation of std::messages, and will ! allow the removal of the _M_name_messages data member. If this ! is done, it will change the library ABI. The C++ parts to ! support glibc 2.3 have already been coded, but are not in use: ! once this version of the "C" library is released, the marked ! parts of the messages implementation can be switched over to ! the new "C" library functionality. !
    • At some point in the near future, std::numpunct will probably use ! std::messages facilities to implement truename/falename ! correctly. This is currently not done, but entries in ! libstdc++.pot have already been made for "true" and "false" ! string literals, so all that remains is the std::numpunct ! coding and the configure/make hassles to make the installed ! library search its own catalog. Currently the libstdc++.mo ! catalog is only searched for the testsuite cases involving ! messages members. !
    • !
    • The following member functions: !

      ! catalog ! open(const basic_string<char>& __s, const locale& __loc) const ! !

      !

      ! ! catalog ! open(const basic_string<char>&, const locale&, const char*) const; ! !

      !

      ! Don't actually return a "value less than 0 if no such catalog ! can be opened" as required by the standard in the "gnu" ! model. As of this writing, it is unknown how to query to see ! if a specified message catalog exists using the gettext ! package. !

      !

    7. Acknowledgments

    *************** Ulrich Drepper for the character set exp *** 354,360 **** and patient answering of late-night questions, Tom Tromey for the java details. -

    8. Bibliography / Referenced Documents

    --- 392,397 ---- *************** Drepper, Ulrich, GNU libc (glibc) 2.2 ma *** 366,401 **** --- 403,451 ---- Drepper, Ulrich, Thread-Aware Locale Model, A proposal. This is a draft document describing the design of glibc 2.3 MT locale functionality. +

    Drepper, Ulrich, Numerous, late-night email correspondence +

    ISO/IEC 9899:1999 Programming languages - C +

    ISO/IEC 14882:1998 Programming languages - C++ +

    Java 2 Platform, Standard Edition, v 1.3.1 API Specification. In particular, java.util.Properties, java.text.MessageFormat, java.util.Locale, java.util.ResourceBundle. http://java.sun.com/j2se/1.3/docs/api +

    System Interface Definitions, Issue 7 (IEEE Std. 1003.1-200x) The Open Group/The Institute of Electrical and Electronics Engineers, Inc. In particular see lines 5268-5427. http://www.opennc.org/austin/docreg.html +

    GNU gettext tools, version 0.10.38, Native Language Support Library and Tools. http://sources.redhat.com/gettext +

    Langer, Angelika and Klaus Kreft, Standard C++ IOStreams and Locales, Advanced Programmer's Guide and Reference, Addison Wesley Longman, Inc. 2000. See page 725, Internationalized Messages. +

    Stroustrup, Bjarne, Appendix D, The C++ Programming Language, Special Edition, Addison Wesley, Inc. 2000 +

    + + + + diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/23_containers/howto.html gcc-3.2.1/libstdc++-v3/docs/html/23_containers/howto.html *** gcc-3.2/libstdc++-v3/docs/html/23_containers/howto.html Sat Jul 20 06:34:50 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/23_containers/howto.html Wed Sep 25 17:52:20 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 23 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 23 ! *************** *** 18,36 **** !

    Contents

    !
    --- 17,35 ---- !

    Contents

    !
    *************** *** 65,73 **** code size or execution time.

    The result is that if all your algorithm calls look like !

         std::transform(beginof(foo), endof(foo), beginof(foo), SomeFunction);
    ! then the type of foo can change from an array of ints to a vector of ints to a deque of ints and back again, without ever changing any client code.

    --- 64,73 ---- code size or execution time.

    The result is that if all your algorithm calls look like !

    !
         std::transform(beginof(foo), endof(foo), beginof(foo), SomeFunction);
    !

    then the type of foo can change from an array of ints to a vector of ints to a deque of ints and back again, without ever changing any client code.

    *************** *** 86,104 **** give the extra three lines and avoid confusion.

    Second, the line !

          inline unsigned int lengthof (T (&)[sz]) { return sz; } 
    ! looks just weird! Hint: unused parameters can be left nameless.

    Return to top of page or to the FAQ.

    !

    Variable-sized bitmasks

    No, you cannot write code of the form !

            #include <bitset>
      
            void foo (size_t n)
    --- 86,106 ----
            give the extra three lines and avoid confusion.
         

    Second, the line !

    !
          inline unsigned int lengthof (T (&)[sz]) { return sz; } 
    !

    looks just weird! Hint: unused parameters can be left nameless.

    Return to top of page or to the FAQ.

    !

    Variable-sized bitmasks

    No, you cannot write code of the form +

    !
            #include <bitset>
      
            void foo (size_t n)
    ***************
    *** 106,124 ****
                std::bitset<n>   bits;
                ....
            } 
    ! because n must be known at compile time. Your compiler is correct; it is not a bug. That's the way templates work. (Yes, it is a feature.)

    There are a couple of ways to handle this kind of thing. Please consider all of them before passing judgement. They include, in no particular order:

      !
    • A very large N in bitset<N>. !
    • A container<bool>. !
    • Extremely weird solutions.
    -

    A very large N in bitset<N>.   It has been pointed out a few times in newsgroups that N bits only takes up --- 108,126 ---- std::bitset<n> bits; .... }

    !

    because n must be known at compile time. Your compiler is correct; it is not a bug. That's the way templates work. (Yes, it is a feature.)

    There are a couple of ways to handle this kind of thing. Please consider all of them before passing judgement. They include, in no particular order: +

      !
    • A very large N in bitset<N>.
    • !
    • A container<bool>.
    • !
    • Extremely weird solutions.

    A very large N in bitset<N>.   It has been pointed out a few times in newsgroups that N bits only takes up *************** *** 192,198 **** to the FAQ.

    !

    Containers and multithreading

    This section discusses issues surrounding the design of multithreaded applications which use Standard C++ containers. --- 194,200 ---- to the FAQ.

    !

    Containers and multithreading

    This section discusses issues surrounding the design of multithreaded applications which use Standard C++ containers. *************** *** 204,217 **** multithreading as it relates to libstdc++, including details on the proper compilation of threaded code (and compatibility between threaded and non-threaded code), see Chapter 17. !

    Two excellent pages to read when working with the Standard C++ containers and threads are SGI's http://www.sgi.com/tech/stl/thread_safety.html and SGI's http://www.sgi.com/tech/stl/Allocators.html. !

    However, please ignore all discussions about the user-level configuration of the lock implementation inside the STL container-memory allocator on those pages. For the sake of this --- 206,219 ---- multithreading as it relates to libstdc++, including details on the proper compilation of threaded code (and compatibility between threaded and non-threaded code), see Chapter 17. !

    Two excellent pages to read when working with the Standard C++ containers and threads are SGI's http://www.sgi.com/tech/stl/thread_safety.html and SGI's http://www.sgi.com/tech/stl/Allocators.html. !

    However, please ignore all discussions about the user-level configuration of the lock implementation inside the STL container-memory allocator on those pages. For the sake of this *************** *** 223,229 **** STL. This is no longer required for any port and should no longer be done unless you really know what you are doing and assume all responsibility. !

    Since the container implementation of libstdc++-v3 uses the SGI code, we use the same definition of thread safety as SGI when discussing design. A key point that beginners may miss is the --- 225,231 ---- STL. This is no longer required for any port and should no longer be done unless you really know what you are doing and assume all responsibility. !

    Since the container implementation of libstdc++-v3 uses the SGI code, we use the same definition of thread safety as SGI when discussing design. A key point that beginners may miss is the *************** *** 235,241 **** element is constructed uses an internal lock obtained and released solely within libstdc++-v3 code (in fact, this is the reason STL requires any knowledge of the thread configuration). !

    For implementing a container which does its own locking, it is trivial to provide a wrapper class which obtains the lock (as SGI suggests), performs the container operation, and then --- 237,243 ---- element is constructed uses an internal lock obtained and released solely within libstdc++-v3 code (in fact, this is the reason STL requires any knowledge of the thread configuration). !

    For implementing a container which does its own locking, it is trivial to provide a wrapper class which obtains the lock (as SGI suggests), performs the container operation, and then *************** *** 249,255 **** 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:)

    --- 251,258 ---- 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:)

    *************** *** 271,278 **** 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 --- 274,281 ---- 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 *************** *** 290,302 **** to the FAQ.

    !

    "Hinting" during insertion

    Section [23.1.2], Table 69, of the C++ standard lists this function for all of the associative containers (map, set, etc): !

            a.insert(p,t);
    ! where 'p' is an iterator into the container 'a', and 't' is the item to insert. The standard says that "iterator p is a hint pointing to where the insert should start to search," but specifies nothing more. (LWG Issue #233, currently in review, --- 293,306 ---- to the FAQ.

    !

    "Hinting" during insertion

    Section [23.1.2], Table 69, of the C++ standard lists this function for all of the associative containers (map, set, etc): !

    !
            a.insert(p,t);
    !

    where 'p' is an iterator into the container 'a', and 't' is the item to insert. The standard says that "iterator p is a hint pointing to where the insert should start to search," but specifies nothing more. (LWG Issue #233, currently in review, *************** *** 321,343 **** their new meanings in the next paragraph. *grin*

    If the hint parameter ('p' above) is equivalent to:

    • begin(), then the item being inserted should have a key less than all the other keys in the container. The item will be inserted at the beginning of the container, becoming the new entry at begin().
    • end(), then the item being inserted should have a key greater than all the other keys in the container. The item will be inserted at the end of the container, becoming the new entry at end().
    • neither begin() nor end(), then: Let h 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.
    -

    For multimap and multiset, the restrictions are slightly looser: "greater than" should be replaced by "not less than" and "less than" should be replaced --- 325,350 ---- their new meanings in the next paragraph. *grin*

    If the hint parameter ('p' above) is equivalent to: +

    • begin(), then the item being inserted should have a key less than all the other keys in the container. The item will be inserted at the beginning of the container, becoming the new entry at begin(). +
    • end(), then the item being inserted should have a key greater than all the other keys in the container. The item will be inserted at the end of the container, becoming the new entry at end(). +
    • neither begin() nor end(), then: Let h 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. +

    For multimap and multiset, the restrictions are slightly looser: "greater than" should be replaced by "not less than" and "less than" should be replaced *************** *** 372,378 **** to the FAQ.

    !

    Bitmasks and string arguments

    Bitmasks do not take char* nor const char* arguments in their constructors. This is something of an accident, but you can read --- 379,385 ---- to the FAQ.

    !

    Bitmasks and string arguments

    Bitmasks do not take char* nor const char* arguments in their constructors. This is something of an accident, but you can read *************** *** 383,388 **** --- 390,396 ----

    For now you can simply make a temporary string object using the constructor expression: +

            std::bitset<5> b ( std::string("10110") );
            
    *************** *** 390,406 ****
            std::bitset<5> b ( "10110" );    // invalid
            
    -

    Return to top of page or to the FAQ.

    !

    std::list::size() is O(n)!

    Yes it is, and that's okay. This is a decision that we preserved when we imported SGI's STL implementation. The following is quoted from their FAQ: !

    The size() member function, for list and slist, takes time proportional to the number of elements in the list. This was a deliberate tradeoff. The only way to get a constant-time size() for --- 398,414 ----

            std::bitset<5> b ( "10110" );    // invalid
            

    Return to top of page or to the FAQ.

    !

    std::list::size() is O(n)!

    Yes it is, and that's okay. This is a decision that we preserved when we imported SGI's STL implementation. The following is quoted from their FAQ: !

    !

    The size() member function, for list and slist, takes time proportional to the number of elements in the list. This was a deliberate tradeoff. The only way to get a constant-time size() for *************** *** 419,424 **** --- 427,433 ---- is supposed to do something unless there is a good reason not to.

    One implication of linear time size(): you should never write +

               if (L.size() == 0)
                   ...
    *************** *** 426,440 ****
               if (L.empty())
                   ...
    !

    !
    !

    Return to top of page or to the FAQ.

    !
    !

    Space overhead management for vectors

    In this message to the list, Daniel Kostecky announced work on an --- 435,447 ----

               if (L.empty())
                   ...
    !

    Return to top of page or to the FAQ.

    !
    !

    Space overhead management for vectors

    In this message to the list, Daniel Kostecky announced work on an *************** *** 457,463 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 464,470 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/24_iterators/howto.html gcc-3.2.1/libstdc++-v3/docs/html/24_iterators/howto.html *** gcc-3.2/libstdc++-v3/docs/html/24_iterators/howto.html Thu Oct 11 18:41:46 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/24_iterators/howto.html Wed Sep 25 17:52:20 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 24 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 24 ! *************** *** 19,32 **** !


    Contents

    !
    --- 18,31 ---- !

    Contents

    !
    *************** *** 67,107 **** to the FAQ.

    !

    It ends where?

    This starts off sounding complicated, but is actually very easy, especially towards the end. Trust me. !

    Beginners usually have a little trouble understand the whole 'past-the-end' thing, until they remember their early algebra classes ! (see, they told you that stuff would come in handy!) and the concept of half-open ranges.

    First, some history, and a reminder of some of the funkier rules in C and C++ for builtin arrays. The following rules have always been true for both languages: !

      !
    1. You can point anywhere in the array, or to the first element ! past the end of the array. A pointer that points to one ! past the end of the array is guaranteed to be as unique as a ! pointer to somewhere inside the array, so that you can compare ! such pointers safely. !
    2. You can only dereference a pointer that points into an array. ! If your array pointer points outside the array -- even to just ! one past the end -- and you dereference it, Bad Things happen. !
    3. Strictly speaking, simply pointing anywhere else invokes ! undefined behavior. Most programs won't puke until such a ! pointer is actually dereferenced, but the standards leave that ! up to the platform. !
    ! The reason this past-the-end addressing was allowed is to make it easy to write a loop to go over an entire array, e.g., while (*d++ = *s++);.

    So, when you think of two pointers delimiting an array, don't think of them as indexing 0 through n-1. Think of them as boundary markers: !

      
         beginning            end
           |                   |
    --- 66,111 ----
            to the FAQ.
         

    !

    It ends where?

    This starts off sounding complicated, but is actually very easy, especially towards the end. Trust me. !

    Beginners usually have a little trouble understand the whole 'past-the-end' thing, until they remember their early algebra classes ! (see, they told you that stuff would come in handy!) and the concept of half-open ranges.

    First, some history, and a reminder of some of the funkier rules in C and C++ for builtin arrays. The following rules have always been true for both languages: !

    !
      !
    1. You can point anywhere in the array, or to the first element ! past the end of the array. A pointer that points to one ! past the end of the array is guaranteed to be as unique as a ! pointer to somewhere inside the array, so that you can compare ! such pointers safely. !
    2. !
    3. You can only dereference a pointer that points into an array. ! If your array pointer points outside the array -- even to just ! one past the end -- and you dereference it, Bad Things happen. !
    4. !
    5. Strictly speaking, simply pointing anywhere else invokes ! undefined behavior. Most programs won't puke until such a ! pointer is actually dereferenced, but the standards leave that ! up to the platform. !
    6. !
    !

    The reason this past-the-end addressing was allowed is to make it easy to write a loop to go over an entire array, e.g., while (*d++ = *s++);.

    So, when you think of two pointers delimiting an array, don't think of them as indexing 0 through n-1. Think of them as boundary markers: !

    !
      
         beginning            end
           |                   |
    ***************
    *** 121,128 ****
           |                       |           dereference 'end'.
         beginning                end
      
    !       
    ! See? Everything between the boundary markers is part of the array. Simple.

    Now think back to your junior-high school algebra course, when you --- 125,132 ---- | | dereference 'end'. beginning end !

    !

    See? Everything between the boundary markers is part of the array. Simple.

    Now think back to your junior-high school algebra course, when you *************** *** 171,177 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 175,181 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/25_algorithms/howto.html gcc-3.2.1/libstdc++-v3/docs/html/25_algorithms/howto.html *** gcc-3.2/libstdc++-v3/docs/html/25_algorithms/howto.html Thu Oct 11 18:41:46 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/25_algorithms/howto.html Wed Sep 25 17:52:20 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 25 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 25 ! *************** *** 19,32 **** !


    Contents

    !
    --- 18,31 ---- !

    Contents

    !
    *************** *** 34,49 ****

    The neatest accomplishment of the algorithms chapter is that all the work is done via iterators, not containers directly. This means two important things: -

      -
    1. Anything that behaves like an iterator can be used in one of - these algorithms. Raw pointers make great candidates, thus - built-in arrays are fine containers, as well as your own iterators. -
    2. The algorithms do not (and cannot) affect the container as a - whole; only the things between the two iterator endpoints. If - you pass a range of iterators only enclosing the middle third of - a container, then anything outside that range is inviolate. -

    Even strings can be fed through the algorithms here, although the string class has specialized versions of many of these functions (for example, string::find()). Most of the examples on this --- 33,50 ----

    The neatest accomplishment of the algorithms chapter is that all the work is done via iterators, not containers directly. This means two important things:

    +
      +
    1. Anything that behaves like an iterator can be used in one of + these algorithms. Raw pointers make great candidates, thus + built-in arrays are fine containers, as well as your own iterators. +
    2. +
    3. The algorithms do not (and cannot) affect the container as a + whole; only the things between the two iterator endpoints. If + you pass a range of iterators only enclosing the middle third of + a container, then anything outside that range is inviolate. +
    4. +

    Even strings can be fed through the algorithms here, although the string class has specialized versions of many of these functions (for example, string::find()). Most of the examples on this *************** *** 67,73 **** to the FAQ.

    !

    Special swaps

    If you call std::swap(x,y); where x and y are standard containers, then the call will automatically be replaced by a call to --- 68,74 ---- to the FAQ.

    !

    Special swaps

    If you call std::swap(x,y); where x and y are standard containers, then the call will automatically be replaced by a call to *************** *** 90,96 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 91,97 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/26_numerics/howto.html gcc-3.2.1/libstdc++-v3/docs/html/26_numerics/howto.html *** gcc-3.2/libstdc++-v3/docs/html/26_numerics/howto.html Fri Nov 23 16:29:01 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/26_numerics/howto.html Wed Sep 25 17:52:21 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 26 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 26 ! *************** *** 15,43 ****

    Chapter 26 deals with building block abstractions to aid in numerical computing: !

      !
    • Template data structures such as valarray<> ! and complex<>. !
    • Template numerical functions such as accumulate, ! inner_product, partial_sum, and ! adjacent_difference. !
    ! All of the Standard C math functions are of course included in C++, and overloaded versions for long, float, and long double have been added for all of them.

    !

    Contents

    !
    --- 14,45 ----

    Chapter 26 deals with building block abstractions to aid in numerical computing: !

    !
      !
    • Template data structures such as valarray<> ! and complex<>. !
    • !
    • Template numerical functions such as accumulate, ! inner_product, partial_sum, and ! adjacent_difference. !
    • !
    !

    All of the Standard C math functions are of course included in C++, and overloaded versions for long, float, and long double have been added for all of them.

    !

    Contents

    !
    *************** *** 62,68 **** to the FAQ.

    !

    Array Processing

    One of the major reasons why FORTRAN can chew through numbers so well is that it is defined to be free of pointer aliasing, an assumption --- 64,70 ---- to the FAQ.

    !

    Array Processing

    One of the major reasons why FORTRAN can chew through numbers so well is that it is defined to be free of pointer aliasing, an assumption *************** *** 87,108 **** to the FAQ.

    !

    Numerical Functions

    There are four generalized functions in the <numeric> header that follow the same conventions as those in <algorithm>. Each of them is overloaded: one signature for common default operations, and a second for fully general operations. Their names are self-explanatory to anyone who works with numerics on a regular basis: -

      -
    • accumulate -
    • inner_product -
    • partial_sum -
    • adjacent_difference -

    Here is a simple example of the two forms of accumulate. !

         int   ar[50];
         int   someval = somefunction();
      
    --- 89,111 ----
            to the FAQ.
         

    !

    Numerical Functions

    There are four generalized functions in the <numeric> header that follow the same conventions as those in <algorithm>. Each of them is overloaded: one signature for common default operations, and a second for fully general operations. Their names are self-explanatory to anyone who works with numerics on a regular basis:

    +
      +
    • accumulate
    • +
    • inner_product
    • +
    • partial_sum
    • +
    • adjacent_difference
    • +

    Here is a simple example of the two forms of accumulate. !

    !
         int   ar[50];
         int   someval = somefunction();
      
    ***************
    *** 111,118 ****
         int  sum       = std::accumulate(ar,ar+50,0);
         int  sum_stuff = std::accumulate(ar,ar+50,someval);
         int  product   = std::accumulate(ar,ar+50,1,std::multiplies<int>());
    !       
    ! The first call adds all the members of the array, using zero as an initial value for sum. The second does the same, but uses someval as the starting value (thus, sum_stuff == sum + someval). The final call uses the second of the two signatures, --- 114,121 ---- int sum = std::accumulate(ar,ar+50,0); int sum_stuff = std::accumulate(ar,ar+50,someval); int product = std::accumulate(ar,ar+50,1,std::multiplies<int>()); !
    !

    The first call adds all the members of the array, using zero as an initial value for sum. The second does the same, but uses someval as the starting value (thus, sum_stuff == sum + someval). The final call uses the second of the two signatures, *************** *** 125,131 **** to the FAQ.

    !

    C99

    In addition to the other topics on this page, we'll note here some of the C99 features that appear in libstdc++-v3. --- 128,134 ---- to the FAQ.

    !

    C99

    In addition to the other topics on this page, we'll note here some of the C99 features that appear in libstdc++-v3. *************** *** 151,157 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 154,160 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/27_io/howto.html gcc-3.2.1/libstdc++-v3/docs/html/27_io/howto.html *** gcc-3.2/libstdc++-v3/docs/html/27_io/howto.html Wed May 1 22:58:58 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/27_io/howto.html Wed Sep 25 17:52:21 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 27 ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Chapter 27 ! *************** *** 19,38 **** !


    Contents

    !
    --- 18,37 ---- !

    Contents

    !
    *************** *** 40,66 ****

    So you want to copy a file quickly and easily, and most important, completely portably. And since this is C++, you have an open ifstream (call it IN) and an open ofstream (call it OUT): !

         #include <fstream>
      
         std::ifstream  IN ("input_file");
         std::ofstream  OUT ("output_file"); 
    -

    Here's the easiest way to get it completely wrong: !

         OUT << IN;
    ! For those of you who don't already know why this doesn't work (probably from having done it before), I invite you to quickly create a simple text file called "input_file" containing the sentence
    !    The quick brown fox jumped over the lazy dog.
    ! surrounded by blank lines. Code it up and try it. The contents of "output_file" may surprise you.

    Seriously, go do it. Get surprised, then come back. It's worth it.

    !

    The thing to remember is that the basic_[io]stream classes handle formatting, nothing else. In particular, they break up on whitespace. The actual reading, writing, and storing of data is --- 39,67 ----

    So you want to copy a file quickly and easily, and most important, completely portably. And since this is C++, you have an open ifstream (call it IN) and an open ofstream (call it OUT): !

    !
         #include <fstream>
      
         std::ifstream  IN ("input_file");
         std::ofstream  OUT ("output_file"); 

    Here's the easiest way to get it completely wrong: !

    !
         OUT << IN;
    !

    For those of you who don't already know why this doesn't work (probably from having done it before), I invite you to quickly create a simple text file called "input_file" containing the sentence +

    !       The quick brown fox jumped over the lazy dog.
    !

    surrounded by blank lines. Code it up and try it. The contents of "output_file" may surprise you.

    Seriously, go do it. Get surprised, then come back. It's worth it.

    !

    The thing to remember is that the basic_[io]stream classes handle formatting, nothing else. In particular, they break up on whitespace. The actual reading, writing, and storing of data is *************** *** 76,84 **** as well as the streams themselves. The pointer is easily retrieved using the rdbuf() member function. Therefore, the easiest way to copy the file is: -

    -    OUT << IN.rdbuf();

    So what was happening with OUT<<IN? Undefined behavior, since that particular << isn't defined by the Standard. I have seen instances where it is implemented, but the character --- 77,85 ---- as well as the streams themselves. The pointer is easily retrieved using the rdbuf() member function. Therefore, the easiest way to copy the file is:

    +
    +    OUT << IN.rdbuf();

    So what was happening with OUT<<IN? Undefined behavior, since that particular << isn't defined by the Standard. I have seen instances where it is implemented, but the character *************** *** 89,95 **** file then contains a perfect text representation of a hexidecimal address (quite a big surprise). Others don't compile at all.

    !

    Also note that none of this is specific to o*f*streams. The operators shown above are all defined in the parent basic_ostream class and are therefore available with all possible descendents. --- 90,96 ---- file then contains a perfect text representation of a hexidecimal address (quite a big surprise). Others don't compile at all.

    !

    Also note that none of this is specific to o*f*streams. The operators shown above are all defined in the parent basic_ostream class and are therefore available with all possible descendents. *************** *** 98,104 **** to the FAQ.

    !

    The buffering is screwing up my program!

    !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 556,562 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/Makefile gcc-3.2.1/libstdc++-v3/docs/html/Makefile *** gcc-3.2/libstdc++-v3/docs/html/Makefile Sat Jul 20 06:34:50 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/Makefile Wed Sep 25 17:52:16 2002 *************** *** 1,10 **** - PWD=$${PWDCMD-pwd} MAKEINFO=makeinfo INC=../../../gcc/doc/include ! all: faq/index.txt 17_intro/porting.html 17_intro/porting-howto.html faq/index.txt: faq/index.html lynx -dump $< | sed "s%file://localhost`${PWD}`%..%" > $@ --- 1,28 ---- + PWD=$${PWDCMD-pwd} MAKEINFO=makeinfo INC=../../../gcc/doc/include ! all: documentation.html \ ! faq/index.txt \ ! 17_intro/porting.html \ ! 17_intro/porting-howto.html + # chock full of GNUism, probably + documentation.html: $(wildcard */howto.html) + sed -n '1,/beginlist/p' $@ > tmp.top + sed -n '/endlist/,$$p' $@ > tmp.bottom + echo '

      ' > tmp.middle + for i in [0-9]*/howto.html; do \ + title=`grep 'h1 ' $$i |\ + sed 's=.*\(Chapter [[:digit:]]*\):[[:space:]]*\(.*\).*=\2 (\1)='` ;\ + awk -v file=$$i -v "title=$$title" -f makedoc.awk $$i >> tmp.middle ;\ + done + awk -v file=ext/howto.html -v "title=Extensions to the Standard Library"\ + -f makedoc.awk ext/howto.html >> tmp.middle ;\ + echo '
    ' >> tmp.middle + cat tmp.top tmp.middle tmp.bottom > $@ + rm tmp.top tmp.middle tmp.bottom faq/index.txt: faq/index.html lynx -dump $< | sed "s%file://localhost`${PWD}`%..%" > $@ *************** faq/index.txt: faq/index.html *** 16,18 **** --- 34,37 ---- 17_intro/porting-howto.html: 17_intro/porting-howto.xml xltproc -o $@ /usr/share/xml/docbook/xsl-stylesheets-1.48-2/html/docbook.xsl $< + # vim:noet ts=4 diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/abi.txt gcc-3.2.1/libstdc++-v3/docs/html/abi.txt *** gcc-3.2/libstdc++-v3/docs/html/abi.txt Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/docs/html/abi.txt Thu Oct 17 02:04:15 2002 *************** *** 0 **** --- 1,389 ---- + + 2002-10-14 Benjamin Kosnik + + Description of the libstdc++ ABI. + + I. What is an ABI? What's covered? What's not? + + - scope of document, of use to system integrators. + + - What's the deal with C++? Why can't different compiler's object + files link with each other? Bug? Feature? + + - compilation includes and linked library binary must match up.. + + - shared library only, static is immutable. + + - What's an ABI? + + - library ABI, compiler ABI different issues, (but related) + + - GNU C++ does not have a compiler command line option to switch + between various different C++ ABIs. For instance, there is no way to + switch between the gcc-3.0.x ABI, gcc-3.1.x ABI, and the gcc-3.2.x + ABI during compilation. Other C++ compilers do allow this, and some + g++ command line options may change the ABI (-fno-exceptions, see + the complete list), but there is no version switch. Sorry. + + To use a specific C++ABI, one must use the corresponding GNU C++ + toolchain. + + - How can this complexity be managed? What does C++ versioning mean? + Because library and compiler changes often make binaries compiled + with one version of the GNU tools incompatible with binaries + compiled with other (either newer or older) versions of the same GNU + tools, specific techniques are used to make managing this complexity + easier. + + The following techniques are used: + + - Release versioning on the libgcc_s.so binary. + + It is versioned as follows: + gcc-3.0.0: libgcc_s.so.1 + gcc-3.0.1: libgcc_s.so.1 + gcc-3.0.2: libgcc_s.so.1 + gcc-3.0.3: libgcc_s.so.1 + gcc-3.0.4: libgcc_s.so.1 + gcc-3.1.0: libgcc_s.so.1 + gcc-3.1.1: libgcc_s.so.1 + gcc-3.2.0: libgcc_s.so.1 + + + - Release versioning on the libstdc++.so binary. + + It is versioned as follows: + gcc-3.0.0: libstdc++.so.3.0.0 + gcc-3.0.1: libstdc++.so.3.0.1 + gcc-3.0.2: libstdc++.so.3.0.2 + gcc-3.0.3: libstdc++.so.3.0.2 (Error, should be libstdc++.so.3.0.3) + gcc-3.0.4: libstdc++.so.3.0.4 + gcc-3.1.0: libstdc++.so.4.0.0 + gcc-3.1.1: libstdc++.so.4.0.1 + gcc-3.2.0: libstdc++.so.5.0.0 + + + - Symbol versioning on the libgcc_s.so binary. + + file: gcc/libgcc-std.ver + + It is versioned as follows: + gcc-3.0.0: GCC_3.0 + gcc-3.0.1: GCC_3.0 + gcc-3.0.2: GCC_3.0 + gcc-3.0.3: GCC_3.0 + gcc-3.0.4: GCC_3.0 + gcc-3.1.0: GCC_3.0 + gcc-3.1.1: GCC_3.0 + gcc-3.2.0: GCC_3.0 + + + - Symbol versioning on the libstdc++.so binary. + + It is versioned as follows: + gcc-3.0.0: (Error, unversioned) + gcc-3.0.1: (Error, unversioned) + gcc-3.0.2: (Error, unversioned) + gcc-3.0.3: (Error, unversioned) + gcc-3.0.4: (Error, unversioned) + gcc-3.1.0: GLIBCPP_3.1, CXXABI_1 + gcc-3.1.1: GLIBCPP_3.1, CXXABI_1 + gcc-3.2.0: GLIBCPP_3.2, CXXABI_1.2 + + file: libstdc++-v3/config/linker-map.gnu + + + - Incremental bumping of a compiler pre-defined macro, + __GXX_ABI_VERSION. This macro is defined as the version of the + compiler v3 ABI, with g++ 3.0.x being version 100. This macro will + be automatically defined whenever g++ is used (the curious can + test this by invoking g++ with the '-v' flag.) + + This macro is defined in the file "lang-specs.h" in the gcc/cp directory. + Later versions define it in "c-common.c" in the gcc directory. + + It is versioned as follows: + gcc-3.0.x: 100 + gcc-3.1.x: 100 (Error, should be 101) + gcc-3.2.x: 102 + + + - Incremental bumping of a library pre-defined macro, + __GLIBCPP__. This macro is defined as the date the library was + released, in compressed ISO date format, as an unsigned long. + + This macro is defined in the file "c++config" in the + "libstdc++-v3/include/bits" directory and is changed every night + by an automated script. + + It is versioned as follows: + gcc-3.0.0: 20010615 + gcc-3.0.1: 20010819 + gcc-3.0.2: 20011023 + gcc-3.0.3: 20011220 + gcc-3.0.4: 20020220 + gcc-3.1.0: 20020514 + gcc-3.1.1: 20020725 + gcc-3.2.0: 20020814 + + + - Incremental bumping of a library pre-defined macro, + _GLIBCPP_VERSION. This macro is defined as the released version of + the library, as a string literal. This is only implemented in + gcc-3.1.0 releases and higher. + + This macro is defined in the file "c++config" in the + "libstdc++-v3/include/bits" directory and is generated + automatically by autoconf as part of the configure-time generation + of config.h. + + It is versioned as follows: + gcc-3.0.0: "3.0.0" + gcc-3.0.1: "3.0.0" (Error, should be "3.0.1") + gcc-3.0.2: "3.0.0" (Error, should be "3.0.2") + gcc-3.0.3: "3.0.0" (Error, should be "3.0.3") + gcc-3.0.4: "3.0.0" (Error, should be "3.0.4") + gcc-3.1.0: "3.1.0" + gcc-3.1.1: "3.1.1" + gcc-3.2.0: "3.2" + + + - Matching each specific C++ compiler release to a specific set of + C++ include files. This is only implemented in gcc-3.1.1 releases + and higher. + + All C++ includes are installed in include/c++, then nest in a + directory hierarchy corresponding to the C++ compiler's released + version. This version corresponds to the variable "gcc_version" in + "libstdc++-v3/acinclude.m4," and more details can be found in that + file's macro GLIBCPP_CONFIGURE. + + C++ includes are versioned as follows: + gcc-3.0.0: include/g++-v3 + gcc-3.0.1: include/g++-v3 + gcc-3.0.2: include/g++-v3 + gcc-3.0.3: include/g++-v3 + gcc-3.0.4: include/g++-v3 + gcc-3.1.0: include/g++-v3 + gcc-3.1.1: include/c++/3.1.1 + gcc-3.2.0: include/c++/3.2 + + Taken together, these techniques can accurately specify interface + and implementation changes in the GNU C++ tools themselves. Used + properly, they allow both the GNU C++ tools implementation, and + programs using them, an evolving yet controlled development that + maintains backward compatibility. + + - Minimum environment that supports a versioned ABI: what's needed? A + supported dynamic linker, a GNU linker of sufficient vintage to + understand demangled C++ name globbing (ld), a shared executable + compiled with g++, and shared libraries (libgcc_s, libstdc++-v3) + compiled by a compiler (g++) with a compatible ABI. Phew. + + On top of all that, an additional constraint: libstdc++ did not + attempt to version symbols (or age gracefully, really) until version + 3.1.0. + + Most modern Linux and BSD versions, particularly ones using + gcc-3.1.x tools, will meet the requirements above. + + - What configure options impact symbol versioning? + + It turns out that most of the configure options that change default + behavior will impact the mangled names of exported symbols, and thus + impact versioning and compatibility. + + For more information on configure options, including ABI impacts, see: + http://gcc.gnu.org/onlinedocs/libstdc++/configopts.html + + There is one flag that explicitly deals with symbol versioning: + --enable-symvers. + + In particular, libstdc++-v3/acinclude.m4 has a macro called + GLIBCPP_ENABLE_SYMVERS that defaults to yes (or the argument passed + in via --enable-symvers=foo). At that point, the macro attempts to + make sure that all the requirement for symbol versioning are in + place. For more information, please consult acinclude.m4. + + - How can I tell if symbol versioning is, indeed, active? + + When the GNU C++ library is being built with symbol versioning on, + you should see the following at configure time for libstdc++-v3: + + checking versioning on shared library symbols... gnu + + If you don't see this line in the configure output, or if this line + appears but the last word is 'no', then you are out of luck. + + If the compiler is pre-installed, a quick way to test is to compile + the following (or any) simple C++ file: + + #include + + int main() + { std::cout << "hello" << std::endl; return 0; } + + %g++ hello.cc -o hello.out + %nm hello.out + + If you see symbols in the resulting output with "GLIBCPP_3.x" as part + of the name, then the executable is versioned. Here's an example: + + U _ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.1 + + + II. Library ABI changes + + The following will cause the library major version number to + increase, say from "libstdc++.so.3.0.4" to "libstdc++.so.4.0.0". + + - (anything) changing in the gcc/g++ compiler ABI + + - (anything) changing size of an exported symbol + + - (anything) changing alignment of an exported symbol + + - (anything) changing the layout of an exported symbol + + - (anything) changing mangling on an exported symbol + + - (anything) deleting an exported symbol + + - (anything) changing the size, alignment, or layout of types + specified in the C++ standard. These may not necessarily be + instantiated or otherwise exported in the library binary, and + include all the required locale facets, as well as things like + std::basic_streambuf, et al. + + Note: adding an exported symbol, if it's in a new and dependent + interface name, is ok. + + The following will cause the library revision version number to + increase, say from "libstdc++.so.5.0.0" to "libstdc++.so.5.0.1". + + - any release of the gcc toolchain. + + + III. Versioning + + - include files + + - versioning headers with version, why necessary + (need to control member/non-member functions, add delete files) + + - shared library binaries + + - release versions + + - libtool versions + + - when does so version get a bump? what are the options? + + - how is the link map used? + + - in an non-abi breaking minor release, how are symbols added? + removed? + + - in an abi-breaking major release, what happens? symbol fall back + + + IV. Testing ABI changes + + Testing for GNU C++ ABI changes is composed of two distinct areas: + testing the C++ compiler (g++) for compiler changes, and testing the + C++ library (libstdc++) for library changes. + + Testing the C++ compiler ABI can be done various ways. + + One. + Intel ABI checker. More information can be obtained + here. + + Two. + The second is yet unreleased, but has been announced on the gcc + mailing list. It is yet unspecified if these tools will be freely + available, and able to be included in a GNU project. Please contact + Mark Mitchell (mark@codesourcery.com) for more details, and current + status. + + Three. + Involves using the vlad.consistency test framework. This has also been + discussed on the gcc mailing lists. + + Testing the C++ library ABI can also be done various ways. + + One. + (Brendan Kehoe, Jeff Law suggestion to run 'make check-c++' two ways, + one with a new compiler and an old library, and the other with an old + compiler and a new library, and look for testsuite regressions) + + Details on how to set this kind of test up can be found here: + http://gcc.gnu.org/ml/gcc/2002-08/msg00142.html + + Two. + Use the 'make check-abi' rule in the libstdc++-v3 Makefile. + + This is a proactive check the library ABI. Currently, exported symbol + names that are either weak or defined are checked against a last known + good baseline. Currently, this baseline is keyed off of 3.2.0 + binaries, as this was the last time the .so number was incremented. In + addition, all exported names are demangled, and the exported objects + are checked to make sure they are the same size as the same object in + the baseline. + + This dataset is insufficient, yet a start. Also needed is a + comprehensive check for all user-visible types part of the standard + library for sizeof() and alignof() changes. + + Verifying compatible layouts of objects is not even attempted. It + should be possible to use sizeof, alignof, and offsetof to compute + offsets for each structure and type in the standard library, saving to + another datafile. Then, compute this in a similar way for new + binaries, and look for differences. + + Another approach might be to use the -fdump-class-hierarchy flag to + get information. However, currently this approach gives insufficient + data for use in library testing, as class data members, their offsets, + and other detailed data is not displayed with this flag. + (See g++/7470 on how this was used to find bugs.) + + Perhaps there are other C++ ABI checkers. If so, please notify + us. We'd like to know about them! + + + V. Issues not directly addressed, and possible suggestions + + - what to do about multi-ABI systems (nathan scenario)? + + - compatibility libs + + --enable-version-specific-runtime-libs + + - Alexandre Oliva proposal to have extended name attributes, modify ld + + - directory-level versioning + + - wrapping C++ API's in "C" to use the C ABI. + + + V. References + + ABIcheck, a vague idea of checking ABI compatibility + http://abicheck.sourceforge.net/ + + C++ ABI reference + http://www.codesourcery.com/cxx-abi/ + + Intel ABI documentation + "Intel® Compilers for Linux* -Compatibility with the GNU Compilers" + (included in icc 6.0) + + Sun Solaris 2.9 docs + Linker and Libraries Guide (document 816-1386) + C++ Migration Guide (document 816-2459) + http://docs.sun.com/db/prod/solaris.9 + http://docs.sun.com/?p=/doc/816-1386&a=load + + Ulrich Drepper, "ELF Symbol Versioning" + http://people.redhat.com/drepper/symbol-versioning + diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/configopts.html gcc-3.2.1/libstdc++-v3/docs/html/configopts.html *** gcc-3.2/libstdc++-v3/docs/html/configopts.html Tue Jul 2 06:22:38 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/configopts.html Wed Sep 25 17:52:16 2002 *************** *** 1,12 **** - ! ! ! ! libstdc++-v3 configure options ! --- 1,11 ---- ! ! ! ! libstdc++-v3 configure options ! *************** options

    *** 19,28 ****

    To the libstdc++-v3 homepage. ! !


    Here are some of the non-obvious options to libstdc++'s configure. Keep in mind that --- 18,27 ----

    To the libstdc++-v3 homepage. !

    !

    Here are some of the non-obvious options to libstdc++'s configure. Keep in mind that *************** options *** 34,50 ****

    The canonical way to find out the configure options that are available for a given set of libstdc++ sources is to go to the source directory and then type: ./configure --help

    !
    --enable-multilib [default]

    This is part of the generic multilib support for building cross compilers. As such, targets like "powerpc-elf" will have libstdc++ built many different ways: "-msoft-float" and not, etc. A different libstdc++ will be built for each of the different multilib versions. This option is on by default.

    !
    --enable-debug

    The configure script will automatically detect the highest level of optimization that the compiler in use can use. This --enable flag will disable all optimizations and instruct --- 33,82 ----

    The canonical way to find out the configure options that are available for a given set of libstdc++ sources is to go to the source directory and then type: ./configure --help +

    !
    --enable-multilib [default]

    This is part of the generic multilib support for building cross compilers. As such, targets like "powerpc-elf" will have libstdc++ built many different ways: "-msoft-float" and not, etc. A different libstdc++ will be built for each of the different multilib versions. This option is on by default.

    +
    !
    --enable-sjlj-exceptions
    !

    Forces old, set-jump/long-jump exception handling model. If ! at all possible, the new, frame unwinding exception handling routines ! should be used instead, as they significantly reduce both ! runtime memory usage and executable size. This option can ! change the library ABI. !

    !
    ! !
    --enable-version-specific-runtime-libs
    !

    Specify that run-time libraries should be installed in the ! compiler-specific subdirectory (i.e., ! ${libdir}/gcc-lib/${target_alias}/${gcc_version}) ! instead of ${libdir}. This option is useful if you ! intend to use several versions of gcc in parallel. In addition, ! libstdc++'s include files will be installed in ! ${libdir}/gcc-lib/${target_alias}/${gcc_version}/include/g++, ! unless you also specify ! --with-gxx-include-dir=dirname during configuration. !

    !
    ! !
    --with-gxx-include-dir=<include-files dir>
    !

    Adds support for named libstdc++ include directory. For instance, ! the following puts all the libstdc++ headers into a directory ! called "2.97-20001008" instead of the usual ! "g++-v3". !

    !
    !    --with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/2.97-20001008
    ! !
    --enable-debug

    The configure script will automatically detect the highest level of optimization that the compiler in use can use. This --enable flag will disable all optimizations and instruct *************** options *** 54,66 **** configuration difference: make CXXFLAGS='-g -O0' all

    !
    --enable-cstdio

    This is an abbreviated form of '--enable-cstdio=stdio' ! (described next).

    !
    --enable-cstdio=LIB

    Select a target-specific I/O package. As of libstdc++-v3 snapshot 3.0.96, the choices are 'libio' to specify the GNU I/O package (from --- 86,100 ---- configuration difference: make CXXFLAGS='-g -O0' all

    +
    !
    --enable-cstdio

    This is an abbreviated form of '--enable-cstdio=stdio' ! (described next). This option can change the library ABI.

    +
    !
    --enable-cstdio=OPTION

    Select a target-specific I/O package. As of libstdc++-v3 snapshot 3.0.96, the choices are 'libio' to specify the GNU I/O package (from *************** options *** 69,171 **** abstraction. The default is 'stdio'. A longer explanation is here.

    !
    --enable-sjlj-exceptions !

    Forces old, set-jump/long-jump exception handling model. If ! at all possible, the new, frame unwinding exception handling routines ! should be used instead, as they significantly reduce both runtime ! memory usage and executable size. !

    ! !
    --enable-clocale

    This is an abbreviated form of '--enable-clocale=generic' ! (described next).

    !
    --enable-clocale=MODEL

    Select a target-specific underlying locale package. The choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix (IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets, 'gnu' to specify a model based on functionality from the GNU C ! library (langinfo/iconv/gettext) (from glibc, the GNU C library), or 'generic' to use a generic "C" ! abstraction which consists of "C" locale info. The ! default is 'generic'.

    !
    --enable-c99 !

    The "long long" type was introduced in C99, along ! with many other functions for wide characters, and math ! classification macros, etc. If enabled, all C99 functions not ! specified by the C++ standard will be put into namespace ! __gnu_cxx, and then all these names will ! be injected into namespace std, so that C99 functions can be ! used "as if" they were in the C++ standard (as they ! will eventually be in some future revision of the standard, ! without a doubt). By default, C99 support is on, assuming the ! configure probes find all the necessary functions and bits ! necessary. !

    ! !
    --enable-long-long !

    The "long long" type was introduced in C99. It is ! provided as a GNU extension to C++98 in g++. This flag builds ! support for "long long" into the library (specialized ! templates and the like for iostreams). This option is on by default: ! if enabled, users will have to either use the new-style "C" ! headers by default (i.e., <cmath> not <math.h>) ! or add appropriate compile-time flags to all compile lines to ! allow "C" visibility of this feature (on GNU/Linux, ! the flag is -D_ISOC99_SOURCE, which is added automatically via ! CPLUSPLUS_CPP_SPEC's addition of _GNU_SOURCE).

    !
    --enable-cheaders=OPTION

    This allows the user to define what kind of C headers are used. Options are: c, c_std, and c_shadow. These correspond to the source directory's include/c, include/c_std, and include/c_shadow directories. The default is c_std.

    !
    --enable-threads

    This is an abbreviated form of '--enable-threads=yes' ! (described next).

    !
    --enable-threads=LIB

    Select a threading library. A full description is given in the general compiler configuration instructions.

    !
    --enable-version-specific-runtime-libs !

    Specify that run-time libraries should be installed in the ! compiler-specific subdirectory (i.e., ! ${libdir}/gcc-lib/${target_alias}/${gcc_version}) ! instead of ${libdir}. This option is useful if you ! intend to use several versions of gcc in parallel. In addition, ! libstdc++'s include files will be installed in ! ${libdir}/gcc-lib/${target_alias}/${gcc_version}/include/g++, ! unless you also specify ! --with-gxx-include-dir=dirname during configuration. !

    ! !
    --with-gxx-include-dir=<include-files dir> !

    Adds support for named libstdc++ include directory. For instance, ! the following puts all the libstdc++ headers into a directory ! called "2.97-20001008" instead of the usual ! "g++-v3". !

    !    --with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/2.97-20001008
    !

    ! !
    --enable-cxx-flags=FLAGS

    With this option, you can pass a string of -f (functionality) ! flags to the compiler to use when building libstdc++. FLAGS ! is a quoted string of options, like

        --enable-cxx-flags='-fvtable-gc -fomit-frame-pointer -ansi'
    Note that the flags don't necessarily have to all be -f flags, as shown, but usually those are the ones that will make sense for experimentation and configure-time overriding. --- 103,166 ---- abstraction. The default is 'stdio'. A longer explanation is here.

    +
    !
    --enable-clocale

    This is an abbreviated form of '--enable-clocale=generic' ! (described next). This option can change the library ABI.

    +
    !
    --enable-clocale=OPTION

    Select a target-specific underlying locale package. The choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix (IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets, 'gnu' to specify a model based on functionality from the GNU C ! library (langinfo/iconv/gettext) (from glibc, the GNU C library), or 'generic' to use a generic "C" ! abstraction which consists of "C" locale info.

    !

    As part of the configuration process, the "C" library is ! probed both for sufficient vintage, and installed locale ! data. If either of these elements are not present, the C++ ! locale model default to 'generic.' On glibc-based systems of ! version 2.2.5 and above with installed locale files, 'gnu' is ! automatically selected.

    +
    !
    --enable-cheaders=OPTION

    This allows the user to define what kind of C headers are used. Options are: c, c_std, and c_shadow. These correspond to the source directory's include/c, include/c_std, and include/c_shadow directories. The default is c_std.

    +
    !
    --enable-threads

    This is an abbreviated form of '--enable-threads=yes' ! (described next). This option can change the library ABI.

    +
    !
    --enable-threads=OPTION

    Select a threading library. A full description is given in the general compiler configuration instructions.

    +
    !
    --enable-cxx-flags=FLAGS

    With this option, you can pass a string of -f (functionality) ! flags to the compiler to use when building libstdc++. This ! option can change the library ABI. FLAGS is a quoted string of ! options, like !

        --enable-cxx-flags='-fvtable-gc -fomit-frame-pointer -ansi'
    +

    Note that the flags don't necessarily have to all be -f flags, as shown, but usually those are the ones that will make sense for experimentation and configure-time overriding. *************** options *** 176,208 **** as well, so that everything matches.

    Fun flags to try might include combinations of

        -fstrict-aliasing
        -fno-exceptions
        -ffunction-sections
        -fvtable-gc
    ! and opposite forms (-fno-) of the same. Tell us (the libstdc++ mailing list) if you discover more!

    !
    --enable-c-mbchar [default]

    Certain template specializations are required for wide character conversion support. This is tricky and currently changing rapidly, and can cause problems on new platforms. Disabling wide character specializations is useful for initial porting steps, but builds only a subset of what is required by ! ISO. By default, this option is on.

    !
    --enable-concept-checks

    This turns on additional compile-time checks for instantiated library templates, in the form of specialized templates, described here. They can help users discover when they break the rules of the STL, before their programs run.

    !
    --enable-symvers[=style]

    In 3.1, tries to turn on symbol versioning in the shared library (if a shared library has been requested). The only 'style' currently supported is 'gnu' which requires that a recent version of the GNU --- 171,238 ---- as well, so that everything matches.

    Fun flags to try might include combinations of +

        -fstrict-aliasing
        -fno-exceptions
        -ffunction-sections
        -fvtable-gc
    !

    and opposite forms (-fno-) of the same. Tell us (the libstdc++ mailing list) if you discover more!

    +
    !
    --enable-c99
    !

    The "long long" type was introduced in C99, along ! with many other functions for wide characters, and math ! classification macros, etc. If enabled, all C99 functions not ! specified by the C++ standard will be put into namespace ! __gnu_cxx, and then all these names will ! be injected into namespace std, so that C99 functions can be ! used "as if" they were in the C++ standard (as they ! will eventually be in some future revision of the standard, ! without a doubt). By default, C99 support is on, assuming the ! configure probes find all the necessary functions and bits ! necessary. This option can change the library ABI. !

    !
    ! !
    --enable-c-mbchar [default]

    Certain template specializations are required for wide character conversion support. This is tricky and currently changing rapidly, and can cause problems on new platforms. Disabling wide character specializations is useful for initial porting steps, but builds only a subset of what is required by ! ISO. By default, this option is on. This option can change ! the library ABI.

    +
    !
    --enable-long-long
    !

    The "long long" type was introduced in C99. It is ! provided as a GNU extension to C++98 in g++. This flag builds ! support for "long long" into the library (specialized ! templates and the like for iostreams). This option is on by default: ! if enabled, users will have to either use the new-style "C" ! headers by default (i.e., <cmath> not <math.h>) ! or add appropriate compile-time flags to all compile lines to ! allow "C" visibility of this feature (on GNU/Linux, ! the flag is -D_ISOC99_SOURCE, which is added automatically via ! CPLUSPLUS_CPP_SPEC's addition of _GNU_SOURCE). ! This option can change the library ABI. !

    !
    ! !
    --enable-concept-checks

    This turns on additional compile-time checks for instantiated library templates, in the form of specialized templates, described here. They can help users discover when they break the rules of the STL, before their programs run.

    +
    !
    --enable-symvers[=style]

    In 3.1, tries to turn on symbol versioning in the shared library (if a shared library has been requested). The only 'style' currently supported is 'gnu' which requires that a recent version of the GNU *************** options *** 210,217 **** try to guess if the 'gnu' style can be used, and if so, will turn it on. Hopefully people will volunteer to do other 'style' options.

    -

    Return to the top of the page or to the libstdc++ homepage.

    --- 240,247 ---- try to guess if the 'gnu' style can be used, and if so, will turn it on. Hopefully people will volunteer to do other 'style' options.

    +

    Return to the top of the page or to the libstdc++ homepage.

    *************** options *** 219,225 **** !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 249,255 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/documentation.html gcc-3.2.1/libstdc++-v3/docs/html/documentation.html *** gcc-3.2/libstdc++-v3/docs/html/documentation.html Sat Jul 20 06:34:50 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/documentation.html Wed Sep 25 17:52:16 2002 *************** *** 1,8 **** ! ! Standard C++ Library v3 ! --- 1,9 ---- ! ! GNU C++ Standard Library ! *************** *** 14,115 ****


    !

    Source Documentation

    !

    In addition to the distribution documentation (these pages), we also ! have a set of HTML documents generated from the sources themselves, ! using the Doxygen tool. These are useful for examining the signatures ! of public member functions for the library classes, etc. !

    !

    The collections are available in the libstdc++ snapshots directory at ! <URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/>. ! You will almost certainly need to use one of the ! mirror sites to download ! the tarball. After unpacking, simply load libstdc++-html-*/index.html ! into a browser. Feedback (and additional documentation!) is welcome.

    !

    The available user-level collections are also viewable online: !

    ! Other collections (man pages, maintainer docs) are only available on the ! FTP sites.

    ! !

    Beginning with 3.0.95, an initial set of man pages are also available in ! the same place as the HTML collections. Start with Intro(3).

    -
    !

    Configuring, Building, Installing

    !
    !

    Introductory notes for libstdc++

    !

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

    !

    !
    !

    Chapter-Specific Information, Extensions, Notes and Advice

    !
      !
    1. Chapter 17 (Intro) !
    2. Chapter 18 (Library Support) !
    3. Chapter 19 (Diagnostics) !
    4. Chapter 20 (Utilities) !
    5. Chapter 21 (Strings) !
    6. Chapter 22 (Localization) !
    7. Chapter 23 (Containers) !
    8. Chapter 24 (Iterators) !
    9. Chapter 25 (Algorithms) !
    10. Chapter 26 (Numerics) !
    11. Chapter 27 (I/O) !
    12. Extensions to the Standard Library !

    Return to the libstdc++ homepage.

    !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 15,248 ----


    +
    +

    Introduction

    +

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

    + !
    !
    !

    Configuring, Building, Installing

    ! ! ! !
    !
    !

    Source-Level Documentation

    !

    The library sources have been specially formatted so that with the ! proper invocation of another tool (Doxygen), a set of HTML pages ! are generated from the sources files themselves. The resultant ! documentation is referred to as Source-Level Documentation, and is ! useful for examining the signatures of public member functions for ! the library classes, finding out what is in a particular include ! file, looking at inheritance diagrams, etc.

    !

    The Source-Level documentation can be viewed online:

    ! !

    This generated HTML collection, as above, is also available for download in ! the libstdc++ snapshots directory at ! <URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/>. ! You will almost certainly need to use one of the mirror sites to download ! the tarball. After unpacking, simply load ! libstdc++-html-*/index.html into a browser. Feedback (and ! additional documentation!) is welcome.

    !

    ! In addition, an initial set of man pages are also available in the ! same place as the HTML collections. Start with Intro(3).

    !
    !
    !

    Chapter-Specific Documentation

    !

    Information, extensions, notes and advice on specific implementation ! capabilites and/or liabilities broken down into chapter names based on the ! C++ standard. !

    ! ! + + +
    +
    +

    Contributor-Specific Information

    +

    Return to the libstdc++ homepage.

    !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/explanations.html gcc-3.2.1/libstdc++-v3/docs/html/explanations.html *** gcc-3.2/libstdc++-v3/docs/html/explanations.html Wed Nov 28 00:02:04 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/explanations.html Wed Sep 25 17:52:16 2002 *************** *** 1,12 **** - ! ! ! ! Explanatory notes about libstdc++-v3 design ! --- 1,11 ---- ! ! ! ! Explanatory notes about libstdc++-v3 design ! *************** design *** 19,29 ****

    To the libstdc++-v3 homepage. !


    !

    "I/O packages", --enable-cstdio

    In addition to all the nifty things which C++ can do for I/O, its library also includes all of the I/O capabilites of C. Making them work together can be a challenge, not only --- 18,29 ----

    To the libstdc++-v3 homepage. +

    !
    !

    "I/O packages", --enable-cstdio

    In addition to all the nifty things which C++ can do for I/O, its library also includes all of the I/O capabilites of C. Making them work together can be a challenge, not only *************** design *** 61,68 ****

    !
    !

    Internal Allocators

    Return to the top of the page or --- 61,68 ----

    !
    !

    Internal Allocators

    Return to the top of the page or *************** design *** 72,78 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 72,78 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/ext/howto.html gcc-3.2.1/libstdc++-v3/docs/html/ext/howto.html *** gcc-3.2/libstdc++-v3/docs/html/ext/howto.html Sat Jul 20 06:34:51 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/ext/howto.html Wed Sep 25 17:52:22 2002 *************** *** 1,13 **** - ! ! ! ! ! libstdc++-v3 HOWTO: Extensions ! --- 1,12 ---- ! ! ! ! ! libstdc++-v3 HOWTO: Extensions ! *************** *** 18,62 **** and some just seemed to appear on the doorstep.

    Before you leap in and use these, be aware of two things: -

      -
    1. Non-Standard means exactly that. The behavior, and the very - existence, of these extensions may change with little or no - warning. (Ideally, the really good ones will appear in the next - revision of C++.) Also, other platforms, other compilers, other - versions of g++ or libstdc++-v3 may not recognize these names, or - treat them differently, or... -
    2. You should know how to access - these headers properly. -

    !

    Contents

    !

    Ropes and trees and hashes, oh my!

    !

    The SGI headers !

           <bvector>
           <hash_map>
           <hash_set>
           <rope>
           <slist>
           <tree>
    !      
    are all here; <bvector> exposes the old bit_vector class that was used before specialization of vector<bool> was available (it's actually a typedef for the specialization now). <hash_map> and <hash_set> --- 17,62 ---- and some just seemed to appear on the doorstep.

    Before you leap in and use these, be aware of two things:

    +
      +
    1. Non-Standard means exactly that. The behavior, and the very + existence, of these extensions may change with little or no + warning. (Ideally, the really good ones will appear in the next + revision of C++.) Also, other platforms, other compilers, other + versions of g++ or libstdc++-v3 may not recognize these names, or + treat them differently, or...
    2. +
    3. You should know how to access + these headers properly.
    4. +
    !

    Contents

    !

    Ropes and trees and hashes, oh my!

    !

    The SGI headers

    !
           <bvector>
           <hash_map>
           <hash_set>
           <rope>
           <slist>
           <tree>
    !    
    !

    are all here; <bvector> exposes the old bit_vector class that was used before specialization of vector<bool> was available (it's actually a typedef for the specialization now). <hash_map> and <hash_set> *************** *** 88,112 ****

    Why would you want to use a hashing class instead of the "normal" implementations? Matt Austern writes: -

    [W]ith a well chosen hash function, hash tables - generally provide much better average-case performance than binary - search trees, and much worse worst-case performance. So if your - implementation has hash_map, if you don't mind using nonstandard - components, and if you aren't scared about the possibility of - pathological cases, you'll probably get better performance from - hash_map.

    (Side note: for those of you wondering, "Why wasn't a hash table included in the Standard in the first #!$@ place?" I'll give a quick answer: it was proposed, but too late and in too unorganized a fashion. Some sort of hashing will undoubtedly be ! included in a future Standard.

    Return to top of page or to the FAQ.

    !

    Added members and types

    Some of the classes in the Standard Library have additional publicly-available members, and some classes are themselves not in --- 88,112 ----

    Why would you want to use a hashing class instead of the "normal" implementations? Matt Austern writes:

    +
    [W]ith a well chosen hash function, hash tables + generally provide much better average-case performance than binary + search trees, and much worse worst-case performance. So if your + implementation has hash_map, if you don't mind using nonstandard + components, and if you aren't scared about the possibility of + pathological cases, you'll probably get better performance from + hash_map.

    (Side note: for those of you wondering, "Why wasn't a hash table included in the Standard in the first #!$@ place?" I'll give a quick answer: it was proposed, but too late and in too unorganized a fashion. Some sort of hashing will undoubtedly be ! included in a future Standard.)

    Return to top of page or to the FAQ.

    !

    Added members and types

    Some of the classes in the Standard Library have additional publicly-available members, and some classes are themselves not in *************** *** 114,142 **** for example, additional typedefs. Those won't be described here (or anywhere else).

    !

    !

    • The extensions added by SGI are so numerous that they have their own page. Since the SGI STL is no longer actively maintained, we will try and keep this code working ourselves.
    • !
    • 3.0.x filebufs have another ctor with this signature:
      ! basic_filebuf(__c_file_type*, ios_base::openmode, int_type); !
      This comes in very handy in a number of places, such as attaching Unix sockets, pipes, and anything else which uses file descriptors, into the IOStream buffering classes. The three arguments are as follows:
      • __c_file_type* F // the __c_file_type typedef usually boils down to stdio's FILE
      • ios_base::openmode M // same as all the other uses of openmode
      • int_type B // buffer size, defaults to BUFSIZ if not specified
      For those wanting to use file descriptors instead of FILE*'s, I invite you to contemplate the mysteries of C's fdopen(). !
    • In library snapshot 3.0.95 and later, filebufs bring back an old extension: the fd() member function. The integer returned from this function can be used for whatever file --- 114,145 ---- for example, additional typedefs. Those won't be described here (or anywhere else).

      !
      • The extensions added by SGI are so numerous that they have their own page. Since the SGI STL is no longer actively maintained, we will try and keep this code working ourselves.
      • !
      • 3.0.x filebufs have another ctor with this signature: !
        ! basic_filebuf(__c_file_type*, ios_base::openmode, int_type); !
        This comes in very handy in a number of places, such as attaching Unix sockets, pipes, and anything else which uses file descriptors, into the IOStream buffering classes. The three arguments are as follows:
        • __c_file_type* F // the __c_file_type typedef usually boils down to stdio's FILE +
        • ios_base::openmode M // same as all the other uses of openmode +
        • int_type B // buffer size, defaults to BUFSIZ if not specified +
        For those wanting to use file descriptors instead of FILE*'s, I invite you to contemplate the mysteries of C's fdopen(). !
      • In library snapshot 3.0.95 and later, filebufs bring back an old extension: the fd() member function. The integer returned from this function can be used for whatever file *************** *** 144,174 **** library cannot track what you do on your own with a file descriptor, so if you perform any I/O directly, don't expect the library to be aware of it.
      • Beginning with 3.1, the extra filebuf constructor and the fd() function were removed from the standard filebuf. Instead, <ext/stdio_filebuf.h> contains a derived class called __gnu_cxx::stdio_filebuf. !
      !

      Return to top of page or to the FAQ.

      !

      Allocators (versions 3.0, 3.1, 3.2)

      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 --- 147,181 ---- library cannot track what you do on your own with a file descriptor, so if you perform any I/O directly, don't expect the library to be aware of it. +
      • Beginning with 3.1, the extra filebuf constructor and the fd() function were removed from the standard filebuf. Instead, <ext/stdio_filebuf.h> contains a derived class called __gnu_cxx::stdio_filebuf. !
      • !

      Return to top of page or to the FAQ.

      !

      Allocators (versions 3.0, 3.1, 3.2)

      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 *************** *** 180,192 **** 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 --- 187,200 ---- 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 *************** *** 235,267 **** information for maintainers and contributors in addition to users.

    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.

    --- 243,281 ---- information for maintainers and contributors in addition to users.

    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.

    *************** *** 297,311 ****

    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" --- 311,325 ----

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

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

    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" *************** *** 326,337 **** (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, --- 340,351 ---- (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, *************** *** 339,349 ****

    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.

    --- 353,364 ----

    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.

    *************** *** 365,371 **** to the FAQ.

    !

    Allocators (version 3.3)

    Changes are coming...

    --- 380,386 ---- to the FAQ.

    !

    Allocators (version 3.3)

    Changes are coming...

    *************** *** 373,379 **** to the FAQ.

    !

    Compile-time checks

    Currently libstdc++-v3 uses the concept checkers from the Boost library to perform optional --- 388,394 ---- to the FAQ.

    !

    Compile-time checks

    Currently libstdc++-v3 uses the concept checkers from the Boost library to perform optional *************** *** 384,390 **** to the FAQ.

    !

    LWG Issues

    Everybody's got issues. Even the C++ Standard Library.

    --- 399,405 ---- to the FAQ.

    !

    LWG Issues

    Everybody's got issues. Even the C++ Standard Library.

    *************** *** 418,551 **** examples of style. Note that we usually do not make changes to the code until an issue has reached DR status.

    !

    5: string::compare specification questionable
    This should be two overloaded functions rather than a single function.
    17: 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.
    48: Use of non-existent exception constructor
    An instance of ios_base::failure is constructed instead.
    49: Underspecification of ios_base::sync_with_stdio
    The return type is the previous state of synchronization.
    50: Copy constructor and assignment operator of ios_base
    These members functions are declared private and are thus inaccessible. Specifying the correct semantics of "copying stream state" was deemed too complicated.
    68: Extractors for char* should store null at end
    And they do now. An editing glitch in the last item in the list of [27.6.1.2.3]/7.
    74: Garbled text for codecvt::do_max_length
    The text of the standard was gibberish. Typos gone rampant.
    83: string::npos vs. string::max_size()
    Safety checks on the size of the string should test against max_size() rather than npos.
    109: Missing binders for non-const sequence elements
    The binder1st and binder2nd didn't have an operator() taking a non-const parameter.
    110: istreambuf_iterator::equal not const
    This was not a const member function. Note that the DR says to 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.
    136: seekp, seekg setting wrong streams?
    seekp should only set the output stream, and seekg should only set the input stream.
    167: Improper use of traits_type::length()
    op<< with a const char* was calculating an incorrect number of characters to write.
    181: make_pair() unintended behavior
    This function used to take its arguments as reference-to-const, now it copies them (pass by value).
    195: Should basic_istream::sentry's constructor ever set eofbit?
    Yes, it can, specifically if EOF is reached while skipping whitespace.
    211: operator>>(istream&, string&) doesn't set failbit
    If nothing is extracted into the string, op>> now sets failbit (which can cause an exception, etc, etc).
    214: set::find() missing const overload
    Both set and multiset were missing overloaded find, lower_bound, upper_bound, and equal_range functions for const instances.
    251: basic_stringbuf missing allocator_type
    This nested typdef was originally not specified.
    265: 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. !

    Return to top of page or to the FAQ.

    --- 433,620 ---- examples of style. Note that we usually do not make changes to the code until an issue has reached DR status.

    !
    5: string::compare specification questionable +
    This should be two overloaded functions rather than a single function. +
    17: 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. +
    48: Use of non-existent exception constructor +
    An instance of ios_base::failure is constructed instead. +
    49: Underspecification of ios_base::sync_with_stdio +
    The return type is the previous state of synchronization. +
    50: Copy constructor and assignment operator of ios_base +
    These members functions are declared private and are thus inaccessible. Specifying the correct semantics of "copying stream state" was deemed too complicated. +
    68: Extractors for char* should store null at end +
    And they do now. An editing glitch in the last item in the list of [27.6.1.2.3]/7. +
    74: Garbled text for codecvt::do_max_length +
    The text of the standard was gibberish. Typos gone rampant. +
    83: string::npos vs. string::max_size() +
    Safety checks on the size of the string should test against max_size() rather than npos. +
    109: Missing binders for non-const sequence elements +
    The binder1st and binder2nd didn't have an operator() taking a non-const parameter. +
    110: istreambuf_iterator::equal not const +
    This was not a const member function. Note that the DR says to 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. +
    136: seekp, seekg setting wrong streams? +
    seekp should only set the output stream, and seekg should only set the input stream. +
    167: Improper use of traits_type::length() +
    op<< with a const char* was calculating an incorrect number of characters to write. +
    181: make_pair() unintended behavior +
    This function used to take its arguments as reference-to-const, now it copies them (pass by value). +
    195: Should basic_istream::sentry's constructor ever set eofbit? +
    Yes, it can, specifically if EOF is reached while skipping whitespace. +
    211: operator>>(istream&, string&) doesn't set failbit +
    If nothing is extracted into the string, op>> now sets failbit (which can cause an exception, etc, etc). +
    214: set::find() missing const overload +
    Both set and multiset were missing overloaded find, lower_bound, upper_bound, and equal_range functions for const instances. +
    251: basic_stringbuf missing allocator_type +
    This nested typdef was originally not specified. +
    265: 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. +
    !

    Return to top of page or to the FAQ.

    *************** *** 553,559 **** !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 622,628 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/ext/sgiexts.html gcc-3.2.1/libstdc++-v3/docs/html/ext/sgiexts.html *** gcc-3.2/libstdc++-v3/docs/html/ext/sgiexts.html Wed Nov 28 00:02:04 2001 --- gcc-3.2.1/libstdc++-v3/docs/html/ext/sgiexts.html Wed Sep 25 17:52:22 2002 *************** *** 1,12 **** - ! ! ! ! SGI extensions to the library in libstdc++-v3 ! --- 1,11 ---- ! ! ! ! SGI extensions to the library in libstdc++-v3 ! *************** libstdc++-v3 *** 25,31 **** for a description). Not every chapter may have extensions, and the extensions may come and go. Also, this page is incomplete because the author is pressed for time. Check back often; the latest change was on ! $Date: 2001/11/28 00:02:04 $ (UTC).

    Descriptions range from the scanty to the verbose. You should also check --- 24,30 ---- for a description). Not every chapter may have extensions, and the extensions may come and go. Also, this page is incomplete because the author is pressed for time. Check back often; the latest change was on ! $Date: 2002/09/25 17:52:22 $ (UTC).

    Descriptions range from the scanty to the verbose. You should also check *************** libstdc++-v3 *** 36,65 ****

    Back to the libstdc++-v3 extensions. !


    !

    Chapter 20

    The <functional> header contains many additional functors and helper functions, extending section 20.3. They are implemented in the file stl_function.h: !

      !
    • identity_element for addition and multiplication. * !
    • The functor identity, whose op() returns the argument ! unchanged. *
    • Composition functors unary_function and binary_function, and their helpers compose1 ! and compose2. * !
    • select1st and select2nd, to strip pairs. * !
    • project1st and project2nd. *
    • A set of functors/functions which always return the same result. They ! are constant_void_fun, constant_binary_fun, constant_unary_fun, ! constant0, constant1, and constant2. * !
    • The class subtractive_rng. * !
    • mem_fun adaptor helpers mem_fun1 and mem_fun1_ref are provided for ! backwards compatibility. !

    20.4.1 can use several different allocators; they are described on the main extensions page.

    --- 35,67 ----

    Back to the libstdc++-v3 extensions. +

    !
    !

    Chapter 20

    The <functional> header contains many additional functors and helper functions, extending section 20.3. They are implemented in the file stl_function.h: !

    !
      !
    • identity_element for addition and multiplication. *
    • !
    • The functor identity, whose operator() ! returns the argument unchanged. *
    • Composition functors unary_function and binary_function, and their helpers compose1 ! and compose2. *
    • !
    • select1st and select2nd, to strip pairs. *
    • !
    • project1st and project2nd. *
    • A set of functors/functions which always return the same result. They ! are constant_void_fun, constant_binary_fun, ! constant_unary_fun, constant0, ! constant1, and constant2. *
    • !
    • The class subtractive_rng. *
    • !
    • mem_fun adaptor helpers mem_fun1 and ! mem_fun1_ref are provided for backwards compatibility.
    • !

    20.4.1 can use several different allocators; they are described on the main extensions page.

    *************** libstdc++-v3 *** 68,79 **** is a pointer, which is ignored, but can be used to specify the template type (instead of using explicit function template arguments like the standard version does). That is, in addition to
         get_temporary_buffer<int>(5);
    you can also use
         get_temporary_buffer(5, (int*)0);
    -

    A class temporary_buffer is given in stl_tempbuf.h. *

    The specialized algorithms of section 20.4.4 are extended with --- 70,81 ---- is a pointer, which is ignored, but can be used to specify the template type (instead of using explicit function template arguments like the standard version does). That is, in addition to +

         get_temporary_buffer<int>(5);
    you can also use
         get_temporary_buffer(5, (int*)0);

    A class temporary_buffer is given in stl_tempbuf.h. *

    The specialized algorithms of section 20.4.4 are extended with *************** libstdc++-v3 *** 84,91 ****

    !
    !

    Chapter 23

    A few extensions and nods to backwards-compatibility have been made with containers. Those dealing with older SGI-style allocators are dealt with elsewhere. The remaining ones all deal with bits: --- 86,93 ----

    !
    !

    Chapter 23

    A few extensions and nods to backwards-compatibility have been made with containers. Those dealing with older SGI-style allocators are dealt with elsewhere. The remaining ones all deal with bits: *************** libstdc++-v3 *** 105,122 **** versions of single-bit test, set, reset, and flip member functions which do no range-checking. If we call them member functions of an instantiation of "bitset<N>," then their names and signatures are:

         bitset<N>&   _Unchecked_set   (size_t pos);
         bitset<N>&   _Unchecked_set   (size_t pos, int val);
         bitset<N>&   _Unchecked_reset (size_t pos);
         bitset<N>&   _Unchecked_flip  (size_t pos);
         bool         _Unchecked_test  (size_t pos);
    ! Note that these may in fact be removed in the future, although we have no present plans to do so (and there doesn't seem to be any immediate reason to).

    !

    ! The semantics of member function operator[] are not specified in the C++ standard. A long-standing defect report calls for sensible obvious semantics, which are already implemented here: op[] on a const bitset returns a bool, and for a non-const bitset returns a --- 107,124 ---- versions of single-bit test, set, reset, and flip member functions which do no range-checking. If we call them member functions of an instantiation of "bitset<N>," then their names and signatures are: +

         bitset<N>&   _Unchecked_set   (size_t pos);
         bitset<N>&   _Unchecked_set   (size_t pos, int val);
         bitset<N>&   _Unchecked_reset (size_t pos);
         bitset<N>&   _Unchecked_flip  (size_t pos);
         bool         _Unchecked_test  (size_t pos);
    !

    Note that these may in fact be removed in the future, although we have no present plans to do so (and there doesn't seem to be any immediate reason to).

    !

    The semantics of member function operator[] are not specified in the C++ standard. A long-standing defect report calls for sensible obvious semantics, which are already implemented here: op[] on a const bitset returns a bool, and for a non-const bitset returns a *************** libstdc++-v3 *** 128,157 ****

    Finally, two additional searching functions have been added. They return the index of the first "on" bit, and the index of the first "on" bit that is after prev, respectively:

         size_t _Find_first() const;
         size_t _Find_next (size_t prev) const;
    ! The same caveat given for the _Unchecked_* functions applies here also.

    Return to the main extensions page or to the homepage.

    !
    !

    Chapter 24

    24.3.2 describes struct iterator, which didn't exist in the original HP STL implementation (the language wasn't rich enough at the time). For backwards compatibility, base classes are provided which declare the same nested typedefs:

      !
    • input_iterator !
    • output_iterator !
    • forward_iterator !
    • bidirectional_iterator !
    • random_access_iterator
    -

    24.3.4 describes iterator operation distance, which takes two iterators and returns a result. It is extended by another signature which takes two iterators and a reference to a result. The result is --- 130,160 ----

    Finally, two additional searching functions have been added. They return the index of the first "on" bit, and the index of the first "on" bit that is after prev, respectively: +

         size_t _Find_first() const;
         size_t _Find_next (size_t prev) const;
    !

    The same caveat given for the _Unchecked_* functions applies here also.

    Return to the main extensions page or to the homepage.

    !
    !

    Chapter 24

    24.3.2 describes struct iterator, which didn't exist in the original HP STL implementation (the language wasn't rich enough at the time). For backwards compatibility, base classes are provided which declare the same nested typedefs: +

      !
    • input_iterator
    • !
    • output_iterator
    • !
    • forward_iterator
    • !
    • bidirectional_iterator
    • !
    • random_access_iterator

    24.3.4 describes iterator operation distance, which takes two iterators and returns a result. It is extended by another signature which takes two iterators and a reference to a result. The result is *************** libstdc++-v3 *** 162,211 ****

    !
    !

    Chapter 25

    25.1.6 (count, count_if) is extended with two more versions of count and count_if. The standard versions return their results. The additional signatures return void, but take a final parameter by reference to which they assign their results, e.g.,

         void count (first, last, value, n);
    -

    25.2 (mutating algorithms) is extended with two families of signatures, random_sample and random_sample_n.

    25.2.1 (copy) is extended with

         copy_n (_InputIter first, _Size count, _OutputIter result);
    ! which copies the first 'count' elements at 'first' into 'result'.

    25.3 (sorting 'n' heaps 'n' stuff) is extended with some helper predicates. Look in the doxygen-generated pages for notes on these.

      !
    • is_heap tests whether or not a range is a heap.
    • is_sorted tests whether or not a range is sorted in ! nondescending order.
    -

    25.3.8 (lexigraphical_compare) is extended with

         lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
                                       _InputIter2 first2, _InputIter2 last2)
    ! which does... what?

    Return to the main extensions page or to the homepage.

    !
    !

    Chapter 26

    26.4, the generalized numeric operations such as accumulate, are extended with the following functions:

         power (x, n);
         power (x, n, moniod_operation);
    ! Returns, in FORTRAN syntax, "x ** n" where n>=0. In the case of n == 0, returns the identity element for the monoid operation. The two-argument signature uses multiplication (for a true "power" implementation), but addition is supported as well. --- 165,217 ----

    !
    !

    Chapter 25

    25.1.6 (count, count_if) is extended with two more versions of count and count_if. The standard versions return their results. The additional signatures return void, but take a final parameter by reference to which they assign their results, e.g., +

         void count (first, last, value, n);

    25.2 (mutating algorithms) is extended with two families of signatures, random_sample and random_sample_n.

    25.2.1 (copy) is extended with +

         copy_n (_InputIter first, _Size count, _OutputIter result);
    !

    which copies the first 'count' elements at 'first' into 'result'.

    25.3 (sorting 'n' heaps 'n' stuff) is extended with some helper predicates. Look in the doxygen-generated pages for notes on these. +

      !
    • is_heap tests whether or not a range is a heap.
    • is_sorted tests whether or not a range is sorted in ! nondescending order.

    25.3.8 (lexigraphical_compare) is extended with +

         lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
                                       _InputIter2 first2, _InputIter2 last2)
    !

    which does... what?

    Return to the main extensions page or to the homepage.

    !
    !

    Chapter 26

    26.4, the generalized numeric operations such as accumulate, are extended with the following functions: +

         power (x, n);
         power (x, n, moniod_operation);
    !

    Returns, in FORTRAN syntax, "x ** n" where n>=0. In the case of n == 0, returns the identity element for the monoid operation. The two-argument signature uses multiplication (for a true "power" implementation), but addition is supported as well. *************** libstdc++-v3 *** 215,223 **** Coolest Name. It "assigns sequentially increasing values to a range. That is, it assigns value to *first, value + 1 to *(first + 1) and so on." Quoted from SGI documentation.

         void iota(_ForwardIter first, _ForwardIter last, _Tp value);
    -

    Return to the main extensions page or to the homepage.

    --- 221,229 ---- Coolest Name. It "assigns sequentially increasing values to a range. That is, it assigns value to *first, value + 1 to *(first + 1) and so on." Quoted from SGI documentation. +

         void iota(_ForwardIter first, _ForwardIter last, _Tp value);

    Return to the main extensions page or to the homepage.

    *************** libstdc++-v3 *** 225,231 **** !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 231,237 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/faq/index.html gcc-3.2.1/libstdc++-v3/docs/html/faq/index.html *** gcc-3.2/libstdc++-v3/docs/html/faq/index.html Sat Jul 20 06:34:51 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/faq/index.html Wed Sep 25 17:52:22 2002 *************** *** 1,10 **** ! ! ! libstdc++-v3 FAQ ! !


    Questions

    1. General Information
        !
      1. What is libstdc++-v3? !
      2. Why should I use libstdc++? !
      3. Who's in charge of it? !
      4. How do I get libstdc++? !
      5. When is libstdc++ going to be finished? !
      6. How do I contribute to the effort? !
      7. What happened to libg++? I need that! !
      8. What if I have more questions? !
      9. What are the license terms for libstdc++-v3?
    2. Installation
        !
      1. How do I install libstdc++-v3? !
      2. [removed]
      3. What is this CVS thing that you keep ! mentioning? !
      4. How do I know if it works? !
      5. This library is HUGE! And what's libsupc++?
    3. Platform-Specific Issues
      1. Can libstdc++-v3 be used with <my ! favorite compiler>? !
      2. [removed] !
      3. [removed] !
      4. I can't use 'long long' on Solaris
      5. _XOPEN_SOURCE / _GNU_SOURCE / etc is always defined !
      6. OS X ctype.h is broken! How can I hack it?
    4. Known Bugs and Non-Bugs
        !
      1. What works already? !
      2. Bugs in gcc/g++ (not libstdc++-v3) !
      3. Bugs in the C++ language/lib specification
      4. Things in libstdc++ that only look like bugs !
      5. Aw, that's easy to fix!
    5. Miscellaneous
      1. string::iterator is not char*; ! vector<T>::iterator is not T* !
      2. What's next after libstdc++-v3? !
      3. What about the STL from SGI? !
      4. Extensions and Backward Compatibility !
      5. [removed] !
      6. Is libstdc++-v3 thread-safe? !
      7. How do I get a copy of the ISO C++ Standard? !
      8. What's an ABI and why is it so messy?
    !
    --- 23,114 ----

    To the libstdc++-v3 homepage. +

    !

    Questions

    1. General Information
        !
      1. What is libstdc++-v3?
      2. !
      3. Why should I use libstdc++?
      4. !
      5. Who's in charge of it?
      6. !
      7. How do I get libstdc++?
      8. !
      9. When is libstdc++ going to be finished?
      10. !
      11. How do I contribute to the effort?
      12. !
      13. What happened to libg++? I need that!
      14. !
      15. What if I have more questions?
      16. !
      17. What are the license terms for libstdc++-v3?
      +
    2. Installation
        !
      1. How do I install libstdc++-v3?
      2. !
      3. [removed]
      4. What is this CVS thing that you keep ! mentioning?
      5. !
      6. How do I know if it works?
      7. !
      8. This library is HUGE! And what's libsupc++?
      +
    3. Platform-Specific Issues
      1. Can libstdc++-v3 be used with <my ! favorite compiler>?
      2. !
      3. [removed]
      4. !
      5. [removed]
      6. !
      7. I can't use 'long long' on Solaris
      8. _XOPEN_SOURCE / _GNU_SOURCE / etc is always defined !
      9. !
      10. OS X ctype.h is broken! How can I hack it?
      +
    4. Known Bugs and Non-Bugs
        !
      1. What works already?
      2. !
      3. Bugs in gcc/g++ (not libstdc++-v3)
      4. !
      5. Bugs in the C++ language/lib specification
      6. Things in libstdc++ that only look like bugs !
      7. !
      8. Aw, that's easy to fix!
      +
    5. Miscellaneous
      1. string::iterator is not char*; ! vector<T>::iterator is not T*
      2. !
      3. What's next after libstdc++-v3?
      4. !
      5. What about the STL from SGI?
      6. !
      7. Extensions and Backward Compatibility
      8. !
      9. [removed]
      10. !
      11. Is libstdc++-v3 thread-safe?
      12. !
      13. How do I get a copy of the ISO C++ Standard?
      14. !
      15. What's an ABI and why is it so messy?
      +
    !
    *************** *** 127,133 **** official 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 --- 135,141 ---- official 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 *************** *** 153,164 **** 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 --- 161,173 ---- 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, Ulrich Drepper, ! Loren James Rittle, and Paolo Carlini 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 *************** *** 167,173 **** If you have questions, ideas, code, or are just curious, sign up!

    !

    1.4 How do I get libstdc++?

    The fourteenth (and latest) snapshot of libstdc++-v3 is available --- 176,182 ---- If you have questions, ideas, code, or are just curious, sign up!

    !

    1.4 How do I get libstdc++?

    The fourteenth (and latest) snapshot of libstdc++-v3 is available *************** *** 182,190 **** of the SGI STL.

    !

    1.5 When is libstdc++ going to be finished?

    ! --- 191,199 ---- of the SGI STL.

    !

    1.5 When is libstdc++ going to be finished?

    ! *************** which is no longer available, thanks dej *** 192,198 **** Usenet article asking this question: Sooner, if you help.

    !

    1.6 How do I contribute to the effort?

    Here is a page devoted to this topic. Subscribing to the mailing --- 201,207 ---- Usenet article asking this question: Sooner, if you help.

    !

    1.6 How do I contribute to the effort?

    Here is a page devoted to this topic. Subscribing to the mailing *************** which is no longer available, thanks dej *** 204,210 **** 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 --- 213,219 ---- 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 *************** which is no longer available, thanks dej *** 243,249 **** describes where to find the last libg++ source.

    !

    1.8 What if I have more questions?

    If you have read the README and RELEASE-NOTES files, and your question remains unanswered, then just ask the mailing list. --- 252,258 ---- describes where to find the last libg++ source.

    !

    1.8 What if I have more questions?

    If you have read the README and RELEASE-NOTES files, and your question remains unanswered, then just ask the mailing list. *************** which is no longer available, thanks dej *** 259,271 **** or Gabriel Dos Reis.

    !

    1.9 What are the license terms for libstdc++-v3?

    See 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 --- 268,280 ---- or Gabriel Dos Reis.

    !

    1.9 What are the license terms for libstdc++-v3?

    See 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 *************** which is no longer available, thanks dej *** 276,284 **** --- 285,296 ---- 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 documentation.html provides a good overview of the steps necessary to build, install, *************** which is no longer available, thanks dej *** 294,311 **** ".../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 CVS entry in the GNU software catalogue has a better description as well as a --- 306,323 ---- ".../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 CVS entry in the GNU software catalogue has a better description as well as a *************** which is no longer available, thanks dej *** 320,326 ****

    !

    2.4 How do I know if it works?

    libstdc++-v3 comes with its own testsuite. You do not need to actually install the library ("make --- 332,338 ----

    !

    2.4 How do I know if it works?

    libstdc++-v3 comes with its own testsuite. You do not need to actually install the library ("make *************** which is no longer available, thanks dej *** 336,342 **** 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 --- 348,354 ---- 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 *************** which is no longer available, thanks dej *** 386,392 **** when building the library.

    !

    3.0 Platform-Specific Issues

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

    --- 398,404 ---- 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 *** 408,426 **** 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 [removed]

    This question has become moot and has been removed. The stub is here to preserve numbering (and hence links/bookmarks).

    !

    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. --- 420,438 ---- 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 [removed]

    This question has become moot and has been removed. The stub is here to preserve numbering (and hence links/bookmarks).

    !

    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. *************** which is no longer available, thanks dej *** 432,438 ****

    This has been fixed for 3.0.3 and onwards.

    !

    3.5 _XOPEN_SOURCE / _GNU_SOURCE / etc is always defined

    On Solaris, g++ (but not gcc) always defines the preprocessor --- 444,450 ----

    This has been fixed for 3.0.3 and onwards.

    !

    3.5 _XOPEN_SOURCE / _GNU_SOURCE / etc is always defined

    On Solaris, g++ (but not gcc) always defines the preprocessor *************** which is no longer available, thanks dej *** 464,476 **** a list of predefined macros for any particular installation.

    This has been discussed on the mailing lists ! quite a bit.

    This method is something of a wart. We'd like to find a cleaner solution, but nobody yet has contributed the time.

    !

    3.6 OS X ctype.h is broken! How can I hack it?

    This is a long-standing bug in the OS X support. Fortunately, the patch is quite simple, and well-known. --- 476,488 ---- a list of predefined macros for any particular installation.

    This has been discussed on the mailing lists ! quite a bit.

    This method is something of a wart. We'd like to find a cleaner solution, but nobody yet has contributed the time.

    !

    3.6 OS X ctype.h is broken! How can I hack it?

    This is a long-standing bug in the OS X support. Fortunately, the patch is quite simple, and well-known. *************** which is no longer available, thanks dej *** 478,484 **** link to the solution.

    !

    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 --- 490,496 ---- link to the solution.

    !

    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 *************** New: *** 570,576 ****
    !

    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 --- 582,588 ----

    !

    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 *************** New: *** 595,601 **** experiences. :-) !


    4.3 Bugs in the C++ language/lib specification

    Yes, unfortunately, there are some. In a message --- 607,613 ---- experiences. :-) !


    4.3 Bugs in the C++ language/lib specification

    Yes, unfortunately, there are some. In a message *************** New: *** 614,641 **** Some of these have resulted in code changes.

    !

    4.4 Things in libstdc++ that only 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. !

    !
    ! !

    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 <fstream>
          ...
          std::fstream  fs("a_file");
    --- 626,651 ----
               Some of these have resulted in code changes.
            

    !

    4.4 Things in libstdc++ that only 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. !

    !

    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 <fstream>
          ...
          std::fstream  fs("a_file");
    *************** New:
    *** 644,702 ****
          // .
          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 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 <iterator> header), ! then you will suddenly be faced with huge numbers of ambiguity ! errors. This was discussed on the -v3 list; Nathan Myers ! sums ! things up here. The collisions with vector/string iterator ! types have been fixed for 3.1. !

    ! !

    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 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 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.
      
      {BH} You are using g++ 2.95.2? After upgrading to glibc 2.2, you need to
    --- 654,707 ----
          // .
          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 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 <iterator> header), ! then you will suddenly be faced with huge numbers of ambiguity ! errors. This was discussed on the -v3 list; Nathan Myers ! sums ! things up here. The collisions with vector/string iterator ! types have been fixed for 3.1. !

    !

    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 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 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.
      
      {BH} You are using g++ 2.95.2? After upgrading to glibc 2.2, you need to
    *************** apply a patch to the include files in /u
    *** 704,737 ****
      type has changed in glibc 2.2.  The patch is at
      http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
         
    ! Note that 2.95.x shipped with the ! 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 ! here. !

    ! ! !

    dlopen/dlsym ! If you are using the C++ library across dynamically-loaded ! objects, make certain that you are passing the correct options ! when compiling and linking: !

          // compile the library components
          g++ -fPIC -c a.cc
          g++ -fPIC -c b.cc
    --- 709,739 ----
      type has changed in glibc 2.2.  The patch is at
      http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
         
    !

    Note that 2.95.x shipped with the ! 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 ! here. !

    !

    dlopen/dlsym ! If you are using the C++ library across dynamically-loaded ! objects, make certain that you are passing the correct options ! when compiling and linking: !

    !
          // compile the library components
          g++ -fPIC -c a.cc
          g++ -fPIC -c b.cc
    *************** http://clisp.cons.org/~haible/gccinclude
    *** 742,751 ****
          g++ -fPIC -shared -rdynamic -o libfoo.so a.o b.o ... z.o
      
          // link the executable
    !     g++ -fPIC -rdynamic -o foo ... -L. -lfoo -ldl

    ! !

    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 --- 744,752 ---- g++ -fPIC -shared -rdynamic -o libfoo.so a.o b.o ... z.o // link the executable ! g++ -fPIC -rdynamic -o foo ... -L. -lfoo -ldl

    !

    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 *************** http://clisp.cons.org/~haible/gccinclude *** 764,770 **** testsuite -- but only if such a test exists.

    !

    5.0 Miscellaneous

    5.1 string::iterator is not char*; vector<T>::iterator is not T*

    --- 765,771 ---- testsuite -- but only if such a test exists.

    !

    5.0 Miscellaneous

    5.1 string::iterator is not char*; vector<T>::iterator is not T*

    *************** http://clisp.cons.org/~haible/gccinclude *** 785,791 **** 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, --- 786,792 ---- 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, *************** http://clisp.cons.org/~haible/gccinclude *** 801,816 **** we add code to the library based on what the current proposed resolution specifies. Those additions are listed in the extensions page. !

  • 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. !

  • An ABI for libstdc++ is being developed, so that multiple binary-incompatible copies of the library can be replaced with a single backwards-compatible library, like libgcc_s.so is. !

  • 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 --- 802,817 ---- we add code to the library based on what the current proposed resolution specifies. Those additions are listed in the extensions page. !

  • 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. !

  • An ABI for libstdc++ is being developed, so that multiple binary-incompatible copies of the library can be replaced with a single backwards-compatible library, like libgcc_s.so is. !

  • 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 *************** http://clisp.cons.org/~haible/gccinclude *** 818,824 **** (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. !

    This question about the next libstdc++ prompted some brief but --- 819,825 ---- (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. !

  • This question about the next libstdc++ prompted some brief but *************** http://clisp.cons.org/~haible/gccinclude *** 826,832 **** speculation.

    !

    5.3 What about the STL from SGI?

    The STL from SGI, version 3.3, was the most recent merge of the STL codebase. The --- 827,833 ---- speculation.

    !

    5.3 What about the STL from SGI?

    The STL from SGI, version 3.3, was the most recent merge of the STL codebase. The *************** http://clisp.cons.org/~haible/gccinclude *** 843,856 **** recommended reading.

    !

    5.4 Extensions and Backward Compatibility

    Headers in the ext and backward subdirectories should be referred to by their relative paths: !

            #include <ext/hash_map> 
    ! rather than using -I or other options. This is more portable and forward-compatible. (The situation is the same as that of other headers whose directories are not searched directly, e.g., <sys/stat.h>, <X11/Xlib.h>. --- 844,858 ---- recommended reading.

    !

    5.4 Extensions and Backward Compatibility

    Headers in the ext and backward subdirectories should be referred to by their relative paths: !

    !
            #include <ext/hash_map> 
    !

    rather than using -I or other options. This is more portable and forward-compatible. (The situation is the same as that of other headers whose directories are not searched directly, e.g., <sys/stat.h>, <X11/Xlib.h>. *************** http://clisp.cons.org/~haible/gccinclude *** 859,871 **** 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 --- 861,873 ---- 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 *************** http://clisp.cons.org/~haible/gccinclude *** 876,882 **** 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;
      
           thread_main () {
    --- 878,885 ----
               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;
      
           thread_main () {
    *************** http://clisp.cons.org/~haible/gccinclude
    *** 886,903 ****
           }
      
           // 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;
             library_class_b *object_b = new library_class_b;
             object_a.add_b (object_b);
             object_a.mutate ();
           } 
    -

    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, --- 889,905 ---- } // 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;
             library_class_b *object_b = new library_class_b;
             object_a.add_b (object_b);
             object_a.mutate ();
           } 

    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, *************** http://clisp.cons.org/~haible/gccinclude *** 912,918 **** 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 --- 914,920 ---- 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 *************** http://clisp.cons.org/~haible/gccinclude *** 930,936 **** 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 --- 932,938 ---- 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 *************** http://clisp.cons.org/~haible/gccinclude *** 979,985 **** !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 981,987 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/faq/index.txt gcc-3.2.1/libstdc++-v3/docs/html/faq/index.txt *** gcc-3.2/libstdc++-v3/docs/html/faq/index.txt Sat Jul 20 06:34:51 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/faq/index.txt Wed Sep 25 17:52:22 2002 *************** *** 106,113 **** 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 --- 106,113 ---- 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, Ulrich Drepper, Loren James Rittle, and Paolo ! Carlini 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 diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/install.html gcc-3.2.1/libstdc++-v3/docs/html/install.html *** gcc-3.2/libstdc++-v3/docs/html/install.html Tue Jul 2 06:22:38 2002 --- gcc-3.2.1/libstdc++-v3/docs/html/install.html Thu Oct 17 02:04:15 2002 *************** *** 1,12 **** - ! ! ! ! libstdc++-v3 Installation Instructions ! --- 1,11 ---- ! ! ! ! libstdc++-v3 Installation Instructions ! *************** *** 18,38 ****

    To the libstdc++-v3 homepage. !


    Contents

    !
    --- 17,38 ----

    To the libstdc++-v3 homepage. +

    !

    Contents

    !
    *************** *** 88,183 **** features if the underlying support is present.

    !

    Finally, a few system-specific requirements: !

    !
    linux !
    If you are using gcc 3.1 or later on linux, and are using ! the gnu locale model (enabled by default for sufficient ! versions of glibc), the following locales are used and tested ! in the libstdc++ testsuites: en_HK, en_US, fr_FR, fr_FR@euro, ! de_DE, de_DE@euro, ja_JP.eucjp, and it_IT. Failure to have the ! underlying "C" library locale information installed will mean ! that C++ named locales for the above regions will not work: ! because of this, the libstdc++ testsuite will not pass the ! named locale tests. If this isn't an issue, don't worry about ! it. If named locales are needed, the underlying locale ! information must be installed. Note that rebuilding libstdc++ ! after locales are installed is not necessary. !

    To install ! support for locales, do only one of the following:

    !

    !

  • install all locales !

    export LC_ALL=C

    !

    rpm -e glibc-common --nodeps

    !

    rpm -i --define "_install_langs all" ! glibc-common-2.2.5-34.i386.rpm

    !
  • !
  • install just the necessary locales !

    localedef -i de_DE -f ISO-8859-1 de_DE

    !
  • !

    !
    ! !
    !

    !

    Setting up the source directories

    The following definitions will be used throughout the rest of this document:

    • gccsrcdir: The directory holding the source of the compiler. It should have several subdirectories like gccsrcdir/libiberty and gccsrcdir/gcc.
    • libsrcdir: The directory holding the source of the C++ library.
    • gccbuilddir: The build directory for the compiler in gccsrcdir. GCC requires that it be built in a different directory than its sources.
    • libbuilddir: The build directory for libstdc++.
    • destdir: The eventual installation directory for the compiler/libraries, set with the --prefix option to the configure script.
    ! Note:
    1. The 3.0 version and following are intended to replace the library that comes with the compiler, so libsrcdir and libbuilddir must be contained under gccsrcdir and gccbuilddir, respectively.
    2. The source, build, and installation directories should not be parents of one another; i.e., these should all be separate directories. Please don't build out of the source directory.
    -

    Check out or download the GCC sources: the resulting source directory (gcc or gcc-3.0.3, for example) is gccsrcdir. Once in gccsrcdir, you'll need to rename or delete the libstdc++-v3 directory which comes with that snapshot: !

         mv libstdc++-v3 libstdc++-v3-previous  [OR]
         rm -r libstdc++-v3
    -

    Next, unpack the libstdc++-v3 library tarball into this gccsrcdir directory; it will create a libsrcdir called libstdc++-version: -

    -    gzip -dc libstdc++-version.tar.gz | tar xf -

    Finally, rename libsrcdir to libstdc++-v3 so that gcc's configure flags will be able to deal with the new library. -

    -    mv libsrcdir libstdc++-v3

    !

    Configuring

    If you have never done this before, you should read the basic GCC Installation --- 88,198 ---- features if the underlying support is present.

    !

    Finally, a few system-specific requirements:

    !
    !
    linux
    !
    If gcc 3.1.0 or later on is being used on linux, an attempt ! will be made to use "C" library functionality necessary for C++ ! named locale support. !

    ! The configure option --enable-clocale can be used force a ! particular behavior. !

    !

    ! If the 'gnu' locale model is being used, the following locales ! are used and tested in the libstdc++ testsuites: en_HK, en_US, ! fr_FR, fr_FR@euro, de_DE, de_DE@euro, ja_JP.eucjp, es_MX, en_PH, ! and it_IT. Failure to have the underlying "C" library locale ! information installed will mean that C++ named locales for the ! above regions will not work: because of this, the libstdc++ ! testsuite will not pass the named locale tests. If this isn't an ! issue, don't worry about it. If named locales are needed, the ! underlying locale information must be installed. Note that ! rebuilding libstdc++ after the "C" locales are installed is not ! necessary. !

    ! !

    To install ! support for locales, do only one of the following:

    !
      !
    • install all locales !

      export LC_ALL=C

      !

      rpm -e glibc-common --nodeps

      !

      rpm -i --define "_install_langs all" ! glibc-common-2.2.5-34.i386.rpm

      !
    • !
    • install just the necessary locales !

      localedef -i de_DE -f ISO-8859-1 de_DE

      !
    • !
    !
    !
    ! !

    Setting up the source directories

    The following definitions will be used throughout the rest of this document: +

    • gccsrcdir: The directory holding the source of the compiler. It should have several subdirectories like gccsrcdir/libiberty and gccsrcdir/gcc. +
    • libsrcdir: The directory holding the source of the C++ library. +
    • gccbuilddir: The build directory for the compiler in gccsrcdir. GCC requires that it be built in a different directory than its sources. +
    • libbuilddir: The build directory for libstdc++. +
    • destdir: The eventual installation directory for the compiler/libraries, set with the --prefix option to the configure script. +
    !

    Note:

    1. The 3.0 version and following are intended to replace the library that comes with the compiler, so libsrcdir and libbuilddir must be contained under gccsrcdir and gccbuilddir, respectively. +
    2. The source, build, and installation directories should not be parents of one another; i.e., these should all be separate directories. Please don't build out of the source directory. +

    Check out or download the GCC sources: the resulting source directory (gcc or gcc-3.0.3, for example) is gccsrcdir. Once in gccsrcdir, you'll need to rename or delete the libstdc++-v3 directory which comes with that snapshot: !

    !
         mv libstdc++-v3 libstdc++-v3-previous  [OR]
         rm -r libstdc++-v3

    Next, unpack the libstdc++-v3 library tarball into this gccsrcdir directory; it will create a libsrcdir called libstdc++-version:

    +
    +    gzip -dc libstdc++-version.tar.gz | tar xf -

    Finally, rename libsrcdir to libstdc++-v3 so that gcc's configure flags will be able to deal with the new library.

    +
    +    mv libsrcdir libstdc++-v3
    !

    Configuring

    If you have never done this before, you should read the basic GCC Installation *************** *** 193,205 **** building the C++ language parts.

    !

         cd gccbuilddir
         gccsrcdir/configure --prefix=destdir --other-opts...
    -

    !

    Building and installing the library

    Now you have a few options:

    [re]building everything

    --- 208,219 ---- building the C++ language parts.

    !
         cd gccbuilddir
         gccsrcdir/configure --prefix=destdir --other-opts...
    !

    Building and installing the library

    Now you have a few options:

    [re]building everything

    *************** *** 214,222 ****

    [re]building only libstdc++

    !

    To rebuild just libstdc++, use: !

         make all-target-libstdc++-v3
    This will configure and build the C++ library in the gccbuilddir/cpu-vendor-os/libstdc++ directory.

    --- 228,237 ----

    [re]building only libstdc++

    !

    To rebuild just libstdc++, use:

    !
         make all-target-libstdc++-v3
    +

    This will configure and build the C++ library in the gccbuilddir/cpu-vendor-os/libstdc++ directory.

    *************** *** 229,277 **** information is causing problems, you can delete it entirely, or simply edit it and remove lines.

    !

    You're done. Now install the rebuilt pieces with !

         make install
    ! or !
         make install-gcc
         make install-target-libstdc++-v3
    -

    !

    Post-installation

    Installation will create the destdir directory and populate it with subdirectories: !

         lib/
    !    include/g++-v3/
            backward/
            bits/
            cpu-vendor-os/bits/
            ext/
    -

    If you used the version-specific-libs configure option, then most of the headers and library files will be moved under lib/gcc-lib/ instead.

    !

    You can check the status of the build without installing it using !

         make check
    ! or you can check the status of the installed library using !
         make check-install
    ! in the libbuilddir directory. These commands will create a 'testsuite' directory underneath libbuilddir containing the results of the tests. We are interested in any strange failures of the testsuite; please see FAQ 2.4 for which files to examine.

    !

    Using the library

    !
  • Find the new library at runtime (shared linking only)

    If you only built a static library (libstdc++.a), or if you specified static linking, you don't have to worry about this. But if you built a shared library (libstdc++.so) and linked --- 244,307 ---- information is causing problems, you can delete it entirely, or simply edit it and remove lines.

    !

    You're done. Now install the rebuilt pieces with

    !
         make install
    !

    or

    !
         make install-gcc
         make install-target-libstdc++-v3
    !

    Post-installation

    Installation will create the destdir directory and populate it with subdirectories: !

    !
         lib/
    !    include/c++/gcc-version
            backward/
            bits/
            cpu-vendor-os/bits/
            ext/

    If you used the version-specific-libs configure option, then most of the headers and library files will be moved under lib/gcc-lib/ instead.

    !

    You can check the status of the build without installing it using

    !
         make check
    !

    or you can check the status of the installed library using

    !
         make check-install
    !

    in the libbuilddir directory. These commands will create a 'testsuite' directory underneath libbuilddir containing the results of the tests. We are interested in any strange failures of the testsuite; please see FAQ 2.4 for which files to examine.

    +

    In addition, there are some testing options that are mostly of + interest to library maintainers and system integrators. As such, + these tests may not work on all cpu and host combinations. These + options include, but are not necessarily limited to, the following: + +

    The library ABI can be tested using

    +
    +    make check-abi
    !

    The library can also be tested using a bash script, instead of ! the default dejagnu test harness

    !
    !    make check-script
    ! or !
    !    make check-script-install
    ! !

    Using the library

    !

    Find the new library at runtime (shared linking only)

    If you only built a static library (libstdc++.a), or if you specified static linking, you don't have to worry about this. But if you built a shared library (libstdc++.so) and linked *************** *** 281,304 ****

    Methods vary for different platforms and different styles, but the usual ones are printed to the screen during installation. They include: !

    • At runtime set LD_LIBRARY_PATH in your environment correctly, so that the shared library for libstdc++ can be found and loaded. Be certain that you understand all of the other implications and behavior of LD_LIBRARY_PATH first (few people do, and they get into trouble).
    • Compile the path to find the library at runtime into the program. This can be done by passing certain options to g++, which will in turn pass them on to the linker. The exact format of the options is dependent on which linker you use:
        !
      • GNU ld (default on Linux): -Wl,--rpath,destdir/lib !
      • IRIX ld: -Wl,-rpath,destdir/lib !
      • Solaris ld: -Wl,-Rdestdir/lib !
      • More...? Let us know!
      !
    !

    Use the ldd(1) utility to show which library the system thinks it will get at runtime.

    --- 311,336 ----

    Methods vary for different platforms and different styles, but the usual ones are printed to the screen during installation. They include: !

    !
    • At runtime set LD_LIBRARY_PATH in your environment correctly, so that the shared library for libstdc++ can be found and loaded. Be certain that you understand all of the other implications and behavior of LD_LIBRARY_PATH first (few people do, and they get into trouble). +
    • Compile the path to find the library at runtime into the program. This can be done by passing certain options to g++, which will in turn pass them on to the linker. The exact format of the options is dependent on which linker you use:
        !
      • GNU ld (default on Linux): -Wl,--rpath,destdir/lib
      • !
      • IRIX ld: -Wl,-rpath,destdir/lib
      • !
      • Solaris ld: -Wl,-Rdestdir/lib
      • !
      • More...? Let us know!
      !
    • !

    Use the ldd(1) utility to show which library the system thinks it will get at runtime.

    *************** *** 306,317 **** you use Libtool to create your executables, these details are taken care of for you.

    - -

    !

    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to --- 350,356 ---- !


    See license.html for copying conditions. Comments and suggestions are welcome, and may be sent to diff -Nrc3pad gcc-3.2/libstdc++-v3/docs/html/makedoc.awk gcc-3.2.1/libstdc++-v3/docs/html/makedoc.awk *** gcc-3.2/libstdc++-v3/docs/html/makedoc.awk Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/docs/html/makedoc.awk Wed Sep 25 17:52:16 2002 *************** *** 0 **** --- 1,69 ---- + # Take apart bits of HTML and puts them back together again in new and + # fascinating ways. Copyright (C) 2002 Free Software Foundation, Inc. + # Contributed by Phil Edwards . Simple two-state automaton + # inspired by Richard Henderson's gcc/mkmap-symver.awk. + + # 'file' is the name of the file on stdin + # 'title' is the text to print at the start of the list + + BEGIN { + state = "looking"; + entries = 0; + printf ("

  • %s\n", title); + printf ("
      \n"); + } + + # Searching for the little table of contents at the top. + state == "looking" && /^

      Contents/ { + state = "entries"; + next; + } + + # Ignore everything else up to that point. + state == "looking" { + next; + } + + # An entry in the table of contents. Pull that line apart. + state == "entries" && /
    • / { + extract_info($0); + next; + } + + # End of the list. Don't bother reading the rest of the file. (It could + # also contain more
    • 's, so that would be incorrect as well as wasteful.) + state == "entries" && /^<\/ul>/ { + exit; + } + + END { + for (i = 0; i < entries; i++) + printf (" %s\n", entry[i]); + printf ("
    \n
  • \n\n"); + } + + function extract_info(line) { + # thistarget will be things like "#5" or "elsewhere.html" + match(line,"href=\".*\""); + thistarget = substr(line,RSTART+6,RLENGTH-7); + + # take apart the filename + split(file,X,"/"); + if (thistarget ~ /^#/) { + # local name, use directory and filename + target = file thistarget + } else { + # different file, only use directory + target = X[1] "/" thistarget + } + + # visible text + gsub("","",line); + start = index(line,"\">") + 2; + thistext = substr(line,start); + + # Assemble and store the HTML for later output. + entry[entries++] = "
  • " thistext "
  • " + } + + # vim:sw=2 diff -Nrc3pad gcc-3.2/libstdc++-v3/include/Makefile.in gcc-3.2.1/libstdc++-v3/include/Makefile.in *** gcc-3.2/libstdc++-v3/include/Makefile.in Fri Jun 28 08:22:32 2002 --- gcc-3.2.1/libstdc++-v3/include/Makefile.in Fri Aug 23 02:43:03 2002 *************** USE_NLS = @USE_NLS@ *** 111,116 **** --- 111,117 ---- VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ WERROR = @WERROR@ + baseline_file = @baseline_file@ check_msgfmt = @check_msgfmt@ enable_shared = @enable_shared@ enable_static = @enable_static@ diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/basic_ios.tcc gcc-3.2.1/libstdc++-v3/include/bits/basic_ios.tcc *** gcc-3.2/libstdc++-v3/include/bits/basic_ios.tcc Fri Jul 26 23:23:44 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/basic_ios.tcc Tue Nov 5 00:51:34 2002 *************** namespace std *** 187,193 **** --- 187,196 ---- // which are defined via explicit instantiations elsewhere. // NB: This syntax is a GNU extension. extern template class basic_ios; + + #ifdef _GLIBCPP_USE_WCHAR_T extern template class basic_ios; + #endif } // namespace std #endif diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/basic_string.tcc gcc-3.2.1/libstdc++-v3/include/bits/basic_string.tcc *** gcc-3.2/libstdc++-v3/include/bits/basic_string.tcc Tue Jun 4 19:03:45 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/basic_string.tcc Tue Nov 5 00:51:34 2002 *************** namespace std *** 139,151 **** { size_type __dnew = static_cast(distance(__beg, __end)); // NB: Not required, but considered best practice. if (__builtin_expect(__beg == _InIter(), 0)) __throw_logic_error("attempt to create string with null pointer"); - if (__beg == __end && __a == _Alloc()) - return _S_empty_rep()._M_refcopy(); - // Check for out_of_range and length_error exceptions. _Rep* __r = _Rep::_S_create(__dnew, __a); try --- 139,151 ---- { size_type __dnew = static_cast(distance(__beg, __end)); + if (__beg == __end && __a == _Alloc()) + return _S_empty_rep()._M_refcopy(); + // NB: Not required, but considered best practice. if (__builtin_expect(__beg == _InIter(), 0)) __throw_logic_error("attempt to create string with null pointer"); // Check for out_of_range and length_error exceptions. _Rep* __r = _Rep::_S_create(__dnew, __a); try *************** namespace std *** 223,230 **** template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _CharT* __s, const _Alloc& __a) ! : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) : 0, ! __a), __a) { } template --- 223,230 ---- template basic_string<_CharT, _Traits, _Alloc>:: basic_string(const _CharT* __s, const _Alloc& __a) ! : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) : ! __s + npos, __a), __a) { } template *************** namespace std *** 497,503 **** this->erase(__n); // else nothing (in particular, avoid calling _M_mutate() unnecessarily.) } - // This is the general replace helper, which currently gets instantiated both // for input iterators and reverse iterators. It buffers internally and then --- 497,502 ---- *************** namespace std *** 885,893 **** compare(const _CharT* __s) const { size_type __size = this->size(); ! int __r = traits_type::compare(_M_data(), __s, __size); if (!__r) ! __r = __size - traits_type::length(__s); return __r; } --- 884,894 ---- compare(const _CharT* __s) const { size_type __size = this->size(); ! size_type __osize = traits_type::length(__s); ! size_type __len = min(__size, __osize); ! int __r = traits_type::compare(_M_data(), __s, __len); if (!__r) ! __r = __size - __osize; return __r; } *************** namespace std *** 958,963 **** --- 959,965 ---- basic_istream& getline(basic_istream&, string&); + #ifdef _GLIBCPP_USE_WCHAR_T extern template class basic_string; extern template basic_istream& *************** namespace std *** 971,976 **** --- 973,979 ---- extern template basic_istream& getline(basic_istream&, wstring&); + #endif } // namespace std #endif diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/c++config gcc-3.2.1/libstdc++-v3/include/bits/c++config *** gcc-3.2/libstdc++-v3/include/bits/c++config Wed Aug 14 07:16:24 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/c++config Tue Nov 19 08:16:43 2002 *************** *** 34,40 **** #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20020814 // This is necessary until GCC supports separate template // compilation. --- 34,40 ---- #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20021119 // This is necessary until GCC supports separate template // compilation. *************** *** 55,60 **** --- 55,63 ---- // Use corrected code from the committee library group's issues list. #define _GLIBCPP_RESOLVE_LIB_DEFECTS 1 + // Hopefully temporary workaround to autoconf/m4 issue with quoting '@'. + #define _GLIBCPP_AT_AT "@@" + // In those parts of the standard C++ library that use a mutex instead // of a spin-lock, we now unconditionally use GCC's gthr.h mutex // abstraction layer. All support to directly map to various diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/codecvt.h gcc-3.2.1/libstdc++-v3/include/bits/codecvt.h *** gcc-3.2/libstdc++-v3/include/bits/codecvt.h Fri Nov 2 17:38:10 2001 --- gcc-3.2.1/libstdc++-v3/include/bits/codecvt.h Tue Sep 17 00:51:50 2002 *************** *** 1,6 **** // Locale support (codecvt) -*- C++ -*- ! // Copyright (C) 2000, 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Locale support (codecvt) -*- C++ -*- ! // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 66,75 **** { public: // Types: ! typedef codecvt_base::result result; ! typedef _InternT intern_type; ! typedef _ExternT extern_type; ! typedef _StateT state_type; // 22.2.1.5.1 codecvt members result --- 66,75 ---- { public: // Types: ! typedef codecvt_base::result result; ! typedef _InternT intern_type; ! typedef _ExternT extern_type; ! typedef _StateT state_type; // 22.2.1.5.1 codecvt members result *************** *** 159,175 **** { public: // Types: ! typedef codecvt_base::result result; ! typedef _InternT intern_type; ! typedef _ExternT extern_type; ! typedef _StateT state_type; ! // Data Members: ! static locale::id id; explicit codecvt(size_t __refs = 0) ! : __codecvt_abstract_base<_InternT,_ExternT,_StateT> (__refs) { } protected: virtual --- 159,175 ---- { public: // Types: ! typedef codecvt_base::result result; ! typedef _InternT intern_type; ! typedef _ExternT extern_type; ! typedef _StateT state_type; ! public: ! static locale::id id; explicit codecvt(size_t __refs = 0) ! : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs) { } protected: virtual *************** *** 215,225 **** { public: // Types: ! typedef char intern_type; ! typedef char extern_type; ! typedef mbstate_t state_type; ! // Data Members: static locale::id id; explicit --- 215,225 ---- { public: // Types: ! typedef char intern_type; ! typedef char extern_type; ! typedef mbstate_t state_type; ! public: static locale::id id; explicit *************** *** 267,278 **** { public: // Types: ! typedef wchar_t intern_type; ! typedef char extern_type; ! typedef mbstate_t state_type; ! // Data Members: ! static locale::id id; explicit codecvt(size_t __refs = 0); --- 267,278 ---- { public: // Types: ! typedef wchar_t intern_type; ! typedef char extern_type; ! typedef mbstate_t state_type; ! public: ! static locale::id id; explicit codecvt(size_t __refs = 0); *************** *** 322,327 **** --- 322,328 ---- explicit codecvt_byname(const char*, size_t __refs = 0) : codecvt<_InternT, _ExternT, _StateT>(__refs) { } + protected: virtual ~codecvt_byname() { } diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/fstream.tcc gcc-3.2.1/libstdc++-v3/include/bits/fstream.tcc *** gcc-3.2/libstdc++-v3/include/bits/fstream.tcc Thu Aug 1 21:29:17 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/fstream.tcc Tue Nov 5 00:51:34 2002 *************** namespace std *** 90,98 **** { _M_allocate_internal_buffer(); _M_mode = __mode; - - // For time being, set both (in/out) sets of pointers. _M_set_indeterminate(); if ((__mode & ios_base::ate) && this->seekoff(0, ios_base::end, __mode) < 0) this->close(); --- 90,97 ---- { _M_allocate_internal_buffer(); _M_mode = __mode; _M_set_indeterminate(); + if ((__mode & ios_base::ate) && this->seekoff(0, ios_base::end, __mode) < 0) this->close(); *************** namespace std *** 147,158 **** bool __testin = _M_mode & ios_base::in; if (__testin && this->is_open()) ! { ! if (_M_in_cur < _M_in_end) ! __ret = _M_in_end - _M_in_cur; ! else ! __ret = 0; ! } _M_last_overflowed = false; return __ret; } --- 146,152 ---- bool __testin = _M_mode & ios_base::in; if (__testin && this->is_open()) ! __ret = _M_in_end - _M_in_cur; _M_last_overflowed = false; return __ret; } *************** namespace std *** 316,322 **** { int_type __ret = traits_type::eof(); bool __testput = _M_out_cur && _M_out_beg < _M_out_end; ! bool __testunbuffered = _M_file.is_open() && !_M_buf_size; if (__testput || __testunbuffered) { --- 310,316 ---- { int_type __ret = traits_type::eof(); bool __testput = _M_out_cur && _M_out_beg < _M_out_end; ! bool __testunbuffered = _M_file.is_open() && !_M_buf_size_opt; if (__testput || __testunbuffered) { *************** namespace std *** 483,495 **** // which are defined via explicit instantiations elsewhere. // NB: This syntax is a GNU extension. extern template class basic_filebuf; - extern template class basic_filebuf; extern template class basic_ifstream; - extern template class basic_ifstream; extern template class basic_ofstream; - extern template class basic_ofstream; extern template class basic_fstream; extern template class basic_fstream; } // namespace std #endif --- 477,492 ---- // which are defined via explicit instantiations elsewhere. // NB: This syntax is a GNU extension. extern template class basic_filebuf; extern template class basic_ifstream; extern template class basic_ofstream; extern template class basic_fstream; + + #ifdef _GLIBCPP_USE_WCHAR_T + extern template class basic_filebuf; + extern template class basic_ifstream; + extern template class basic_ofstream; extern template class basic_fstream; + #endif } // namespace std #endif diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/ios_base.h gcc-3.2.1/libstdc++-v3/include/bits/ios_base.h *** gcc-3.2/libstdc++-v3/include/bits/ios_base.h Mon Apr 1 18:56:28 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/ios_base.h Tue Nov 5 23:48:45 2002 *************** namespace std *** 220,225 **** --- 220,228 ---- typedef int io_state; typedef int open_mode; typedef int seek_dir; + + typedef std::streampos streampos; + typedef std::streamoff streamoff; #endif // Callbacks; diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/istream.tcc gcc-3.2.1/libstdc++-v3/include/bits/istream.tcc *** gcc-3.2/libstdc++-v3/include/bits/istream.tcc Thu Aug 1 21:29:17 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/istream.tcc Wed Nov 6 00:08:37 2002 *************** namespace std *** 722,744 **** { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); ! int_type __c = __sb->sgetc(); __n = min(__n, numeric_limits::max()); while (_M_gcount < __n ! && !traits_type::eq_int_type(__c, __eof) ! && !traits_type::eq_int_type(__c, __delim)) { - __c = __sb->snextc(); ++_M_gcount; } if (traits_type::eq_int_type(__c, __eof)) this->setstate(ios_base::eofbit); - else if (traits_type::eq_int_type(__c, __delim)) - { - __sb->sbumpc(); - ++_M_gcount; - } } catch(exception& __fail) { --- 722,739 ---- { const int_type __eof = traits_type::eof(); __streambuf_type* __sb = this->rdbuf(); ! int_type __c; __n = min(__n, numeric_limits::max()); while (_M_gcount < __n ! && !traits_type::eq_int_type(__c = __sb->sbumpc(), __eof)) { ++_M_gcount; + if (traits_type::eq_int_type(__c, __delim)) + break; } if (traits_type::eq_int_type(__c, __eof)) this->setstate(ios_base::eofbit); } catch(exception& __fail) { *************** namespace std *** 816,823 **** { try { streamsize __num = this->rdbuf()->in_avail(); ! if (__num > 0) { __num = min(__num, __n); if (__num) --- 811,819 ---- { try { + // Cannot compare int_type with streamsize generically. streamsize __num = this->rdbuf()->in_avail(); ! if (__num >= 0) { __num = min(__num, __n); if (__num) *************** namespace std *** 940,962 **** tellg(void) { pos_type __ret = pos_type(-1); ! _M_gcount = 0; ! sentry __cerb(*this, true); ! if (__cerb) ! { ! try ! { ! __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in); ! } ! catch(exception& __fail) ! { ! // 27.6.1.3 paragraph 1 ! // Turn this on without causing an ios::failure to be thrown. ! this->setstate(ios_base::badbit); ! if ((this->exceptions() & ios_base::badbit) != 0) ! __throw_exception_again; ! } ! } return __ret; } --- 936,943 ---- tellg(void) { pos_type __ret = pos_type(-1); ! if (!this->fail()) ! __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in); return __ret; } *************** namespace std *** 967,994 **** seekg(pos_type __pos) { _M_gcount = 0; ! sentry __cerb(*this, true); ! if (__cerb) { - try - { #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS // 136. seekp, seekg setting wrong streams? ! pos_type __err = this->rdbuf()->pubseekpos(__pos, ios_base::in); // 129. Need error indication from seekp() and seekg() ! if (__err == pos_type(off_type(-1))) ! this->setstate(ios_base::failbit); #endif - } - catch(exception& __fail) - { - // 27.6.1.3 paragraph 1 - // Turn this on without causing an ios::failure to be thrown. - this->setstate(ios_base::badbit); - if ((this->exceptions() & ios_base::badbit) != 0) - __throw_exception_again; - } } return *this; } --- 948,963 ---- seekg(pos_type __pos) { _M_gcount = 0; ! if (!this->fail()) { #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS // 136. seekp, seekg setting wrong streams? ! pos_type __err = this->rdbuf()->pubseekpos(__pos, ios_base::in); // 129. Need error indication from seekp() and seekg() ! if (__err == pos_type(off_type(-1))) ! this->setstate(ios_base::failbit); #endif } return *this; } *************** namespace std *** 999,1027 **** seekg(off_type __off, ios_base::seekdir __dir) { _M_gcount = 0; ! sentry __cerb(*this, true); ! if (__cerb) { - try - { #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS // 136. seekp, seekg setting wrong streams? ! pos_type __err = this->rdbuf()->pubseekoff(__off, __dir, ! ios_base::in); // 129. Need error indication from seekp() and seekg() ! if (__err == pos_type(off_type(-1))) ! this->setstate(ios_base::failbit); #endif - } - catch(exception& __fail) - { - // 27.6.1.3 paragraph 1 - // Turn this on without causing an ios::failure to be thrown. - this->setstate(ios_base::badbit); - if ((this->exceptions() & ios_base::badbit) != 0) - __throw_exception_again; - } } return *this; } --- 968,984 ---- seekg(off_type __off, ios_base::seekdir __dir) { _M_gcount = 0; ! if (!this->fail()) { #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS // 136. seekp, seekg setting wrong streams? ! pos_type __err = this->rdbuf()->pubseekoff(__off, __dir, ! ios_base::in); // 129. Need error indication from seekp() and seekg() ! if (__err == pos_type(off_type(-1))) ! this->setstate(ios_base::failbit); #endif } return *this; } *************** namespace std *** 1078,1090 **** int_type __c = __sb->sgetc(); while (__extracted < __num - 1 ! && __c != __eof && !__ctype.is(ctype_base::space, __c)) { *__s++ = __c; ++__extracted; __c = __sb->snextc(); } ! if (__c == __eof) __in.setstate(ios_base::eofbit); #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS --- 1035,1048 ---- int_type __c = __sb->sgetc(); while (__extracted < __num - 1 ! && !_Traits::eq_int_type(__c, __eof) ! && !__ctype.is(ctype_base::space, __c)) { *__s++ = __c; ++__extracted; __c = __sb->snextc(); } ! if (_Traits::eq_int_type(__c, __eof)) __in.setstate(ios_base::eofbit); #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS *************** namespace std *** 1122,1130 **** __streambuf_type* __sb = __in.rdbuf(); __int_type __c = __sb->sgetc(); ! while (__c != __eof && __ctype.is(ctype_base::space, __c)) __c = __sb->snextc(); ! if (__c == __eof) __in.setstate(ios_base::eofbit); return __in; --- 1080,1090 ---- __streambuf_type* __sb = __in.rdbuf(); __int_type __c = __sb->sgetc(); ! while (!_Traits::eq_int_type(__c, __eof) ! && __ctype.is(ctype_base::space, __c)) __c = __sb->snextc(); ! ! if (_Traits::eq_int_type(__c, __eof)) __in.setstate(ios_base::eofbit); return __in; *************** namespace std *** 1158,1170 **** __int_type __c = __sb->sgetc(); while (__extracted < __n ! && __c != __eof && !__ctype.is(ctype_base::space, __c)) { __str += _Traits::to_char_type(__c); ++__extracted; __c = __sb->snextc(); } ! if (__c == __eof) __in.setstate(ios_base::eofbit); __in.width(0); } --- 1118,1131 ---- __int_type __c = __sb->sgetc(); while (__extracted < __n ! && !_Traits::eq_int_type(__c, __eof) ! && !__ctype.is(ctype_base::space, __c)) { __str += _Traits::to_char_type(__c); ++__extracted; __c = __sb->snextc(); } ! if (_Traits::eq_int_type(__c, __eof)) __in.setstate(ios_base::eofbit); __in.width(0); } diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/locale_facets.h gcc-3.2.1/libstdc++-v3/include/bits/locale_facets.h *** gcc-3.2/libstdc++-v3/include/bits/locale_facets.h Thu Aug 1 21:29:17 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/locale_facets.h Thu Oct 17 02:04:16 2002 *************** namespace std *** 525,531 **** // For use at construction time only. void ! _M_initialize_numpunct(__c_locale __cloc = _S_c_locale); }; template --- 525,531 ---- // For use at construction time only. void ! _M_initialize_numpunct(__c_locale __cloc = NULL); }; template *************** namespace std *** 847,853 **** : locale::facet(__refs) { _M_c_locale_collate = _S_c_locale; } - // Non-standard. explicit collate(__c_locale __cloc, size_t __refs = 0) : locale::facet(__refs) --- 847,852 ---- *************** namespace std *** 876,885 **** protected: virtual ~collate() ! { ! if (_M_c_locale_collate != _S_c_locale) ! _S_destroy_c_locale(_M_c_locale_collate); ! } virtual int do_compare(const _CharT* __lo1, const _CharT* __hi1, --- 875,881 ---- protected: virtual ~collate() ! { _S_destroy_c_locale(_M_c_locale_collate); } virtual int do_compare(const _CharT* __lo1, const _CharT* __hi1, *************** namespace std *** 925,932 **** collate_byname(const char* __s, size_t __refs = 0) : collate<_CharT>(__refs) { ! if (_M_c_locale_collate != _S_c_locale) ! _S_destroy_c_locale(_M_c_locale_collate); _S_create_c_locale(_M_c_locale_collate, __s); } --- 921,927 ---- collate_byname(const char* __s, size_t __refs = 0) : collate<_CharT>(__refs) { ! _S_destroy_c_locale(_M_c_locale_collate); _S_create_c_locale(_M_c_locale_collate, __s); } *************** namespace std *** 957,963 **** protected: __c_locale _M_c_locale_timepunct; ! const char* _M_name_timepunct; const _CharT* _M_date_format; const _CharT* _M_date_era_format; const _CharT* _M_time_format; --- 952,958 ---- protected: __c_locale _M_c_locale_timepunct; ! char* _M_name_timepunct; const _CharT* _M_date_format; const _CharT* _M_date_era_format; const _CharT* _M_time_format; *************** namespace std *** 1017,1029 **** public: explicit __timepunct(size_t __refs = 0) ! : locale::facet(__refs), _M_name_timepunct("C") ! { _M_initialize_timepunct(); } explicit __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0) ! : locale::facet(__refs), _M_name_timepunct(__s) ! { _M_initialize_timepunct(__cloc); } void _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, --- 1012,1032 ---- public: explicit __timepunct(size_t __refs = 0) ! : locale::facet(__refs) ! { ! _M_name_timepunct = new char[2]; ! strcpy(_M_name_timepunct, "C"); ! _M_initialize_timepunct(); ! } explicit __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0) ! : locale::facet(__refs) ! { ! _M_name_timepunct = new char[strlen(__s) + 1]; ! strcpy(_M_name_timepunct, __s); ! _M_initialize_timepunct(__cloc); ! } void _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format, *************** namespace std *** 1120,1139 **** protected: virtual ! ~__timepunct(); // For use at construction time only. void ! _M_initialize_timepunct(__c_locale __cloc = _S_c_locale); }; template locale::id __timepunct<_CharT>::id; // Specializations. - template<> - __timepunct::~__timepunct(); - template<> const char* __timepunct::_S_timezones[14]; --- 1123,1143 ---- protected: virtual ! ~__timepunct() ! { ! delete [] _M_name_timepunct; ! _S_destroy_c_locale(_M_c_locale_timepunct); ! } // For use at construction time only. void ! _M_initialize_timepunct(__c_locale __cloc = NULL); }; template locale::id __timepunct<_CharT>::id; // Specializations. template<> const char* __timepunct::_S_timezones[14]; *************** namespace std *** 1147,1155 **** __timepunct::_M_put(char*, size_t, const char*, const tm*) const; #ifdef _GLIBCPP_USE_WCHAR_T - template<> - __timepunct::~__timepunct(); - template<> const wchar_t* __timepunct::_S_timezones[14]; --- 1151,1156 ---- *************** namespace std *** 1460,1466 **** // For use at construction time only. void ! _M_initialize_moneypunct(__c_locale __cloc = _S_c_locale, const char* __name = NULL); }; --- 1461,1467 ---- // For use at construction time only. void ! _M_initialize_moneypunct(__c_locale __cloc = NULL, const char* __name = NULL); }; *************** namespace std *** 1629,1635 **** __c_locale _M_c_locale_messages; #if 1 // Only needed if glibc < 2.3 ! const char* _M_name_messages; #endif public: --- 1630,1636 ---- __c_locale _M_c_locale_messages; #if 1 // Only needed if glibc < 2.3 ! char* _M_name_messages; #endif public: *************** namespace std *** 1637,1651 **** explicit messages(size_t __refs = 0) ! : locale::facet(__refs), _M_name_messages("C") ! { _M_c_locale_messages = _S_c_locale; } // Non-standard. explicit ! messages(__c_locale __cloc, const char* __name, size_t __refs = 0) : locale::facet(__refs) { ! _M_name_messages = __name; _M_c_locale_messages = _S_clone_c_locale(__cloc); } --- 1638,1657 ---- explicit messages(size_t __refs = 0) ! : locale::facet(__refs) ! { ! _M_name_messages = new char[2]; ! strcpy(_M_name_messages, "C"); ! _M_c_locale_messages = _S_c_locale; ! } // Non-standard. explicit ! messages(__c_locale __cloc, const char* __s, size_t __refs = 0) : locale::facet(__refs) { ! _M_name_messages = new char[strlen(__s) + 1]; ! strcpy(_M_name_messages, __s); _M_c_locale_messages = _S_clone_c_locale(__cloc); } *************** namespace std *** 1669,1676 **** virtual ~messages() { ! if (_M_c_locale_messages != _S_c_locale) ! _S_destroy_c_locale(_M_c_locale_messages); } virtual catalog --- 1675,1682 ---- virtual ~messages() { ! delete [] _M_name_messages; ! _S_destroy_c_locale(_M_c_locale_messages); } virtual catalog *************** namespace std *** 1739,1744 **** --- 1745,1756 ---- string messages::do_get(catalog, int, int, const string&) const; + #ifdef _GLIBCPP_USE_WCHAR_T + template<> + wstring + messages::do_get(catalog, int, int, const wstring&) const; + #endif + // Include host and configuration specific messages virtual functions. #include *************** namespace std *** 1753,1761 **** messages_byname(const char* __s, size_t __refs = 0) : messages<_CharT>(__refs) { ! _M_name_messages = __s; ! if (_M_c_locale_messages != _S_c_locale) ! _S_destroy_c_locale(_M_c_locale_messages); _S_create_c_locale(_M_c_locale_messages, __s); } --- 1765,1774 ---- messages_byname(const char* __s, size_t __refs = 0) : messages<_CharT>(__refs) { ! delete [] _M_name_messages; ! _M_name_messages = new char[strlen(__s) + 1]; ! strcpy(_M_name_messages, __s); ! _S_destroy_c_locale(_M_c_locale_messages); _S_create_c_locale(_M_c_locale_messages, __s); } diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/locale_facets.tcc gcc-3.2.1/libstdc++-v3/include/bits/locale_facets.tcc *** gcc-3.2/libstdc++-v3/include/bits/locale_facets.tcc Thu Aug 1 21:29:17 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/locale_facets.tcc Tue Nov 5 00:51:34 2002 *************** namespace std *** 798,805 **** // By itself __add_grouping cannot deal correctly with __ws when // ios::showbase is set and ios_base::oct || ios_base::hex. // Therefore we take care "by hand" of the initial 0, 0x or 0X. streamsize __off = 0; ! if (__io.flags() & ios_base::showbase) if (__basefield == ios_base::oct) { __off = 1; --- 798,807 ---- // By itself __add_grouping cannot deal correctly with __ws when // ios::showbase is set and ios_base::oct || ios_base::hex. // Therefore we take care "by hand" of the initial 0, 0x or 0X. + // However, remember that the latter do not occur if the number + // printed is '0' (__len == 1). streamsize __off = 0; ! if ((__io.flags() & ios_base::showbase) && __len > 1) if (__basefield == ios_base::oct) { __off = 1; *************** namespace std *** 1969,2009 **** // Convert numeric value of type _Tv to string and return length of string. // If snprintf is available use it, otherwise fall back to the unsafe sprintf // which, in general, can be dangerous and should be avoided. - #ifdef _GLIBCPP_USE_C99 template int __convert_from_v(char* __out, const int __size, const char* __fmt, ! _Tv __v, const __c_locale&, int __prec = -1) ! { ! int __ret; ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); ! if (__prec >= 0) ! __ret = snprintf(__out, __size, __fmt, __prec, __v); ! else ! __ret = snprintf(__out, __size, __fmt, __v); ! setlocale(LC_ALL, __old); ! free(__old); ! return __ret; ! } ! #else ! template ! int ! __convert_from_v(char* __out, const int, const char* __fmt, _Tv __v, ! const __c_locale&, int __prec = -1) ! { ! int __ret; ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); ! if (__prec >= 0) ! __ret = sprintf(__out, __fmt, __prec, __v); ! else ! __ret = sprintf(__out, __fmt, __v); ! setlocale(LC_ALL, __old); ! free(__old); ! return __ret; ! } ! #endif // Construct correctly padded string, as per 22.2.2.2.2 // Assumes --- 1971,1980 ---- // Convert numeric value of type _Tv to string and return length of string. // If snprintf is available use it, otherwise fall back to the unsafe sprintf // which, in general, can be dangerous and should be avoided. template int __convert_from_v(char* __out, const int __size, const char* __fmt, ! _Tv __v, const __c_locale&, int __prec = -1); // Construct correctly padded string, as per 22.2.2.2.2 // Assumes *************** namespace std *** 2169,2210 **** extern template class moneypunct_byname; extern template class money_get; extern template class money_put; - extern template class moneypunct; - extern template class moneypunct; - extern template class moneypunct_byname; - extern template class moneypunct_byname; - extern template class money_get; - extern template class money_put; extern template class numpunct; extern template class numpunct_byname; extern template class num_get; extern template class num_put; - extern template class numpunct; - extern template class numpunct_byname; - extern template class num_get; - extern template class num_put; extern template class __timepunct; extern template class time_put; extern template class time_put_byname; extern template class time_get; extern template class time_get_byname; - extern template class __timepunct; - extern template class time_put; - extern template class time_put_byname; - extern template class time_get; - extern template class time_get_byname; extern template class messages; extern template class messages_byname; - extern template class messages; - extern template class messages_byname; extern template class ctype_byname; - extern template class ctype_byname; extern template class codecvt_byname; - extern template class codecvt_byname; extern template class collate; extern template class collate_byname; - extern template class collate; - extern template class collate_byname; extern template const codecvt& --- 2140,2160 ---- *************** namespace std *** 2258,2316 **** const messages& use_facet >(const locale&); - extern template - const codecvt& - use_facet >(locale const&); - - extern template - const collate& - use_facet >(const locale&); - - extern template - const numpunct& - use_facet >(const locale&); - - extern template - const num_put& - use_facet >(const locale&); - - extern template - const num_get& - use_facet >(const locale&); - - extern template - const moneypunct& - use_facet >(const locale&); - - extern template - const moneypunct& - use_facet >(const locale&); - - extern template - const money_put& - use_facet >(const locale&); - - extern template - const money_get& - use_facet >(const locale&); - - extern template - const __timepunct& - use_facet<__timepunct >(const locale&); - - extern template - const time_put& - use_facet >(const locale&); - - extern template - const time_get& - use_facet >(const locale&); - - extern template - const messages& - use_facet >(const locale&); - - extern template bool has_facet >(const locale&); --- 2208,2213 ---- *************** namespace std *** 2363,2368 **** --- 2260,2340 ---- bool has_facet >(const locale&); + #ifdef _GLIBCPP_USE_WCHAR_T + extern template class moneypunct; + extern template class moneypunct; + extern template class moneypunct_byname; + extern template class moneypunct_byname; + extern template class money_get; + extern template class money_put; + extern template class numpunct; + extern template class numpunct_byname; + extern template class num_get; + extern template class num_put; + extern template class __timepunct; + extern template class time_put; + extern template class time_put_byname; + extern template class time_get; + extern template class time_get_byname; + extern template class messages; + extern template class messages_byname; + extern template class ctype_byname; + extern template class codecvt_byname; + extern template class collate; + extern template class collate_byname; + + extern template + const codecvt& + use_facet >(locale const&); + + extern template + const collate& + use_facet >(const locale&); + + extern template + const numpunct& + use_facet >(const locale&); + + extern template + const num_put& + use_facet >(const locale&); + + extern template + const num_get& + use_facet >(const locale&); + + extern template + const moneypunct& + use_facet >(const locale&); + + extern template + const moneypunct& + use_facet >(const locale&); + + extern template + const money_put& + use_facet >(const locale&); + + extern template + const money_get& + use_facet >(const locale&); + + extern template + const __timepunct& + use_facet<__timepunct >(const locale&); + + extern template + const time_put& + use_facet >(const locale&); + + extern template + const time_get& + use_facet >(const locale&); + + extern template + const messages& + use_facet >(const locale&); + extern template bool has_facet >(const locale&); *************** namespace std *** 2414,2419 **** --- 2386,2392 ---- extern template bool has_facet >(const locale&); + #endif } // namespace std #endif diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/localefwd.h gcc-3.2.1/libstdc++-v3/include/bits/localefwd.h *** gcc-3.2/libstdc++-v3/include/bits/localefwd.h Fri Apr 19 08:28:15 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/localefwd.h Thu Oct 17 02:04:16 2002 *************** namespace std *** 207,214 **** static const category time = 1L << 3; static const category monetary = 1L << 4; static const category messages = 1L << 5; ! static const category all = (collate | ctype | monetary | ! numeric | time | messages); // Construct/copy/destroy: locale() throw(); --- 207,214 ---- static const category time = 1L << 3; static const category monetary = 1L << 4; static const category messages = 1L << 5; ! static const category all = (ctype | numeric | collate | ! time | monetary | messages); // Construct/copy/destroy: locale() throw(); *************** namespace std *** 267,273 **** // Current global reference locale static _Impl* _S_global; ! static const size_t _S_num_categories = 6; explicit locale(_Impl*) throw(); --- 267,292 ---- // Current global reference locale static _Impl* _S_global; ! // Number of standard categories. For C++, these categories are ! // collate, ctype, monetary, numeric, time, and messages. These ! // directly correspond to ISO C99 macros LC_COLLATE, LC_CTYPE, ! // LC_MONETARY, LC_NUMERIC, and LC_TIME. In addition, POSIX (IEEE ! // 1003.1-2001) specifies LC_MESSAGES. ! static const size_t _S_categories_size = 6; ! ! // In addition to the standard categories, the underlying ! // operating system is allowed to define extra LC_* ! // macros. For GNU systems, the following are also valid: ! // LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT, ! // and LC_IDENTIFICATION. ! static const size_t _S_extra_categories_size = _GLIBCPP_NUM_CATEGORIES; ! ! // Names of underlying locale categories. ! // NB: locale::global() has to know how to modify all the ! // underlying categories, not just the ones required by the C++ ! // standard. ! static const char* _S_categories[_S_categories_size ! + _S_extra_categories_size]; explicit locale(_Impl*) throw(); *************** namespace std *** 308,314 **** _Atomic_word _M_references; facet** _M_facets; size_t _M_facets_size; ! const char* _M_names[_S_num_categories]; static const locale::id* const _S_id_ctype[]; static const locale::id* const _S_id_numeric[]; static const locale::id* const _S_id_collate[]; --- 327,335 ---- _Atomic_word _M_references; facet** _M_facets; size_t _M_facets_size; ! ! char* _M_names[_S_categories_size ! + _S_extra_categories_size]; static const locale::id* const _S_id_ctype[]; static const locale::id* const _S_id_numeric[]; static const locale::id* const _S_id_collate[]; *************** namespace std *** 348,355 **** _M_check_same_name() { bool __ret = true; ! for (size_t i = 0; __ret && i < _S_num_categories - 1; ++i) ! __ret &= (strcmp(_M_names[i], _M_names[i + 1]) == 0); return __ret; } --- 369,378 ---- _M_check_same_name() { bool __ret = true; ! for (size_t __i = 0; ! __ret && __i < _S_categories_size + _S_extra_categories_size - 1; ! ++__i) ! __ret &= (strcmp(_M_names[__i], _M_names[__i + 1]) == 0); return __ret; } *************** namespace std *** 376,383 **** { _M_impl = new _Impl(*__other._M_impl, 1); _M_impl->_M_install_facet(&_Facet::id, __f); ! for (size_t __i = 0; __i < _S_num_categories; ++__i) ! _M_impl->_M_names[__i] = "*"; } // 22.1.1.1.2 Class locale::facet --- 399,412 ---- { _M_impl = new _Impl(*__other._M_impl, 1); _M_impl->_M_install_facet(&_Facet::id, __f); ! for (size_t __i = 0; ! __i < _S_categories_size + _S_extra_categories_size; ++__i) ! { ! delete [] _M_impl->_M_names[__i]; ! char* __new = new char[2]; ! strcpy(__new, "*"); ! _M_impl->_M_names[__i] = __new; ! } } // 22.1.1.1.2 Class locale::facet diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/sstream.tcc gcc-3.2.1/libstdc++-v3/include/bits/sstream.tcc *** gcc-3.2/libstdc++-v3/include/bits/sstream.tcc Thu Aug 1 21:29:18 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/sstream.tcc Tue Nov 5 00:51:35 2002 *************** namespace std *** 226,238 **** // which are defined via explicit instantiations elsewhere. // NB: This syntax is a GNU extension. extern template class basic_stringbuf; - extern template class basic_stringbuf; extern template class basic_istringstream; - extern template class basic_istringstream; extern template class basic_ostringstream; - extern template class basic_ostringstream; extern template class basic_stringstream; extern template class basic_stringstream; } // namespace std #endif --- 226,241 ---- // which are defined via explicit instantiations elsewhere. // NB: This syntax is a GNU extension. extern template class basic_stringbuf; extern template class basic_istringstream; extern template class basic_ostringstream; extern template class basic_stringstream; + + #ifdef _GLIBCPP_USE_WCHAR_T + extern template class basic_stringbuf; + extern template class basic_istringstream; + extern template class basic_ostringstream; extern template class basic_stringstream; + #endif } // namespace std #endif diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/stl_deque.h gcc-3.2.1/libstdc++-v3/include/bits/stl_deque.h *** gcc-3.2/libstdc++-v3/include/bits/stl_deque.h Fri Jul 26 23:23:44 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/stl_deque.h Wed Oct 2 00:58:52 2002 *************** public: // Basic *** 665,671 **** void _M_range_check(size_type __n) const { if (__n >= this->size()) ! __throw_range_error("deque"); } reference at(size_type __n) --- 665,671 ---- void _M_range_check(size_type __n) const { if (__n >= this->size()) ! __throw_out_of_range("deque"); } reference at(size_type __n) diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/streambuf.tcc gcc-3.2.1/libstdc++-v3/include/bits/streambuf.tcc *** gcc-3.2/libstdc++-v3/include/bits/streambuf.tcc Fri Jul 26 23:23:44 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/streambuf.tcc Tue Nov 5 00:51:35 2002 *************** namespace std *** 208,226 **** try { while (__testput && __bufsize != -1) ! { ! __xtrct = __sbout->sputn(__sbin->gptr(), __bufsize); ! __ret += __xtrct; ! __sbin->_M_in_cur_move(__xtrct); ! if (__xtrct == __bufsize) { ! if (_Traits::eq_int_type(__sbin->sgetc(), _Traits::eof())) break; - __bufsize = __sbin->in_avail(); } ! else ! break; ! } } catch(exception& __fail) { --- 208,235 ---- try { while (__testput && __bufsize != -1) ! { ! if (__bufsize != 0 && __sbin->gptr() != NULL) { ! __xtrct = __sbout->sputn(__sbin->gptr(), __bufsize); ! __ret += __xtrct; ! __sbin->_M_in_cur_move(__xtrct); ! if (__xtrct != __bufsize) break; } ! else ! { ! _CharT __buf[256]; ! streamsize __charsread = __sbin->sgetn(__buf, sizeof(__buf)); ! __xtrct = __sbout->sputn(__buf, __charsread); ! __ret += __xtrct; ! if (__xtrct != __charsread) ! break; ! } ! if (_Traits::eq_int_type(__sbin->sgetc(), _Traits::eof())) ! break; ! __bufsize = __sbin->in_avail(); ! } } catch(exception& __fail) { *************** namespace std *** 240,250 **** --- 249,261 ---- __copy_streambufs(basic_ios&, basic_streambuf*, basic_streambuf*); + #ifdef _GLIBCPP_USE_WCHAR_T extern template class basic_streambuf; extern template streamsize __copy_streambufs(basic_ios&, basic_streambuf*, basic_streambuf*); + #endif } // namespace std #endif diff -Nrc3pad gcc-3.2/libstdc++-v3/include/bits/stringfwd.h gcc-3.2.1/libstdc++-v3/include/bits/stringfwd.h *** gcc-3.2/libstdc++-v3/include/bits/stringfwd.h Sat Feb 16 02:41:09 2002 --- gcc-3.2.1/libstdc++-v3/include/bits/stringfwd.h Tue Nov 5 00:51:35 2002 *************** *** 45,67 **** namespace std { - template - struct char_traits; - - template<> struct char_traits; - #ifdef _GLIBCPP_USE_WCHAR_T - template<> struct char_traits; - #endif - template class allocator; template, typename _Alloc = allocator<_CharT> > class basic_string; typedef basic_string string; typedef basic_string wstring; } // namespace std #endif // _CPP_BITS_STRINGFWD_H --- 45,69 ---- namespace std { template class allocator; + template + struct char_traits; + template, typename _Alloc = allocator<_CharT> > class basic_string; + + template<> struct char_traits; typedef basic_string string; + + #ifdef _GLIBCPP_USE_WCHAR_T + template<> struct char_traits; + typedef basic_string wstring; + #endif } // namespace std #endif // _CPP_BITS_STRINGFWD_H diff -Nrc3pad gcc-3.2/libstdc++-v3/include/ext/stdio_filebuf.h gcc-3.2.1/libstdc++-v3/include/ext/stdio_filebuf.h *** gcc-3.2/libstdc++-v3/include/ext/stdio_filebuf.h Tue May 21 21:26:28 2002 --- gcc-3.2.1/libstdc++-v3/include/ext/stdio_filebuf.h Thu Aug 15 22:51:01 2002 *************** namespace __gnu_cxx *** 123,138 **** if (this->is_open()) { _M_mode = __mode; - _M_buf_size_opt = __size; - if (__size > 0 && __size < 4) { _M_buf = _M_unbuf; _M_buf_size = __size; } else ! _M_allocate_internal_buffer(); ! _M_set_indeterminate(); } } --- 123,140 ---- if (this->is_open()) { _M_mode = __mode; if (__size > 0 && __size < 4) { + // Specify unbuffered. _M_buf = _M_unbuf; _M_buf_size = __size; + _M_buf_size_opt = 0; } else ! { ! _M_buf_size_opt = __size; ! _M_allocate_internal_buffer(); ! } _M_set_indeterminate(); } } *************** namespace __gnu_cxx *** 146,161 **** if (this->is_open()) { _M_mode = __mode; - _M_buf_size_opt = __size; - if (__size > 0 && __size < 4) { _M_buf = _M_unbuf; _M_buf_size = __size; } else ! _M_allocate_internal_buffer(); ! _M_set_indeterminate(); } } --- 148,165 ---- if (this->is_open()) { _M_mode = __mode; if (__size > 0 && __size < 4) { + // Specify unbuffered. _M_buf = _M_unbuf; _M_buf_size = __size; + _M_buf_size_opt = 0; } else ! { ! _M_buf_size_opt = __size; ! _M_allocate_internal_buffer(); ! } _M_set_indeterminate(); } } diff -Nrc3pad gcc-3.2/libstdc++-v3/include/ext/stl_rope.h gcc-3.2.1/libstdc++-v3/include/ext/stl_rope.h *** gcc-3.2/libstdc++-v3/include/ext/stl_rope.h Tue Jul 2 06:22:39 2002 --- gcc-3.2.1/libstdc++-v3/include/ext/stl_rope.h Tue Sep 17 02:21:37 2002 *************** class rope : public _Rope_base<_CharT,_A *** 1375,1381 **** static _RopeLeaf* _S_new_RopeLeaf(__GC_CONST _CharT *__s, size_t __size, allocator_type __a) { ! _RopeLeaf* __space = _LAllocator(__a).allocate(1); return new(__space) _RopeLeaf(__s, __size, __a); } --- 1375,1381 ---- static _RopeLeaf* _S_new_RopeLeaf(__GC_CONST _CharT *__s, size_t __size, allocator_type __a) { ! _RopeLeaf* __space = typename _Base::_LAllocator(__a).allocate(1); return new(__space) _RopeLeaf(__s, __size, __a); } *************** class rope : public _Rope_base<_CharT,_A *** 1383,1396 **** _RopeRep* __left, _RopeRep* __right, allocator_type __a) { ! _RopeConcatenation* __space = _CAllocator(__a).allocate(1); return new(__space) _RopeConcatenation(__left, __right, __a); } static _RopeFunction* _S_new_RopeFunction(char_producer<_CharT>* __f, size_t __size, bool __d, allocator_type __a) { ! _RopeFunction* __space = _FAllocator(__a).allocate(1); return new(__space) _RopeFunction(__f, __size, __d, __a); } --- 1383,1396 ---- _RopeRep* __left, _RopeRep* __right, allocator_type __a) { ! _RopeConcatenation* __space = typename _Base::_CAllocator(__a).allocate(1); return new(__space) _RopeConcatenation(__left, __right, __a); } static _RopeFunction* _S_new_RopeFunction(char_producer<_CharT>* __f, size_t __size, bool __d, allocator_type __a) { ! _RopeFunction* __space = typename _Base::_FAllocator(__a).allocate(1); return new(__space) _RopeFunction(__f, __size, __d, __a); } *************** class rope : public _Rope_base<_CharT,_A *** 1398,1404 **** _Rope_RopeRep<_CharT,_Alloc>* __b, size_t __s, size_t __l, allocator_type __a) { ! _RopeSubstring* __space = _SAllocator(__a).allocate(1); return new(__space) _RopeSubstring(__b, __s, __l, __a); } --- 1398,1404 ---- _Rope_RopeRep<_CharT,_Alloc>* __b, size_t __s, size_t __l, allocator_type __a) { ! _RopeSubstring* __space = typename _Base::_SAllocator(__a).allocate(1); return new(__space) _RopeSubstring(__b, __s, __l, __a); } diff -Nrc3pad gcc-3.2/libstdc++-v3/include/std/std_iomanip.h gcc-3.2.1/libstdc++-v3/include/std/std_iomanip.h *** gcc-3.2/libstdc++-v3/include/std/std_iomanip.h Wed Feb 20 00:58:13 2002 --- gcc-3.2.1/libstdc++-v3/include/std/std_iomanip.h Tue Nov 5 00:51:35 2002 *************** namespace std *** 225,249 **** extern template ostream& operator<<(ostream&, _Setbase); extern template ostream& operator<<(ostream&, _Setprecision); extern template ostream& operator<<(ostream&, _Setw); - extern template wostream& operator<<(wostream&, _Setfill); - extern template wostream& operator<<(wostream&, _Setiosflags); - extern template wostream& operator<<(wostream&, _Resetiosflags); - extern template wostream& operator<<(wostream&, _Setbase); - extern template wostream& operator<<(wostream&, _Setprecision); - extern template wostream& operator<<(wostream&, _Setw); - extern template istream& operator>>(istream&, _Setfill); extern template istream& operator>>(istream&, _Setiosflags); extern template istream& operator>>(istream&, _Resetiosflags); extern template istream& operator>>(istream&, _Setbase); extern template istream& operator>>(istream&, _Setprecision); extern template istream& operator>>(istream&, _Setw); extern template wistream& operator>>(wistream&, _Setfill); extern template wistream& operator>>(wistream&, _Setiosflags); extern template wistream& operator>>(wistream&, _Resetiosflags); extern template wistream& operator>>(wistream&, _Setbase); extern template wistream& operator>>(wistream&, _Setprecision); extern template wistream& operator>>(wistream&, _Setw); } // namespace std #endif --- 225,251 ---- extern template ostream& operator<<(ostream&, _Setbase); extern template ostream& operator<<(ostream&, _Setprecision); extern template ostream& operator<<(ostream&, _Setw); extern template istream& operator>>(istream&, _Setfill); extern template istream& operator>>(istream&, _Setiosflags); extern template istream& operator>>(istream&, _Resetiosflags); extern template istream& operator>>(istream&, _Setbase); extern template istream& operator>>(istream&, _Setprecision); extern template istream& operator>>(istream&, _Setw); + + #ifdef _GLIBCPP_USE_WCHAR_T + extern template wostream& operator<<(wostream&, _Setfill); + extern template wostream& operator<<(wostream&, _Setiosflags); + extern template wostream& operator<<(wostream&, _Resetiosflags); + extern template wostream& operator<<(wostream&, _Setbase); + extern template wostream& operator<<(wostream&, _Setprecision); + extern template wostream& operator<<(wostream&, _Setw); extern template wistream& operator>>(wistream&, _Setfill); extern template wistream& operator>>(wistream&, _Setiosflags); extern template wistream& operator>>(wistream&, _Resetiosflags); extern template wistream& operator>>(wistream&, _Setbase); extern template wistream& operator>>(wistream&, _Setprecision); extern template wistream& operator>>(wistream&, _Setw); + #endif } // namespace std #endif diff -Nrc3pad gcc-3.2/libstdc++-v3/include/std/std_iosfwd.h gcc-3.2.1/libstdc++-v3/include/std/std_iosfwd.h *** gcc-3.2/libstdc++-v3/include/std/std_iosfwd.h Sat Feb 16 02:41:10 2002 --- gcc-3.2.1/libstdc++-v3/include/std/std_iosfwd.h Tue Nov 5 00:51:35 2002 *************** namespace std *** 116,121 **** --- 116,122 ---- typedef basic_ofstream ofstream; typedef basic_fstream fstream; + #ifdef _GLIBCPP_USE_WCHAR_T typedef basic_ios wios; typedef basic_streambuf wstreambuf; typedef basic_istream wistream; *************** namespace std *** 129,134 **** --- 130,136 ---- typedef basic_ifstream wifstream; typedef basic_ofstream wofstream; typedef basic_fstream wfstream; + #endif } // namespace std #endif diff -Nrc3pad gcc-3.2/libstdc++-v3/include/std/std_iostream.h gcc-3.2.1/libstdc++-v3/include/std/std_iostream.h *** gcc-3.2/libstdc++-v3/include/std/std_iostream.h Mon Jan 28 22:13:10 2002 --- gcc-3.2.1/libstdc++-v3/include/std/std_iostream.h Tue Nov 5 00:51:35 2002 *************** namespace std *** 51,56 **** --- 51,57 ---- extern ostream cout; extern ostream cerr; extern ostream clog; + #ifdef _GLIBCPP_USE_WCHAR_T extern wistream wcin; extern wostream wcout; diff -Nrc3pad gcc-3.2/libstdc++-v3/include/std/std_limits.h gcc-3.2.1/libstdc++-v3/include/std/std_limits.h *** gcc-3.2/libstdc++-v3/include/std/std_limits.h Thu Apr 4 05:34:55 2002 --- gcc-3.2.1/libstdc++-v3/include/std/std_limits.h Fri Oct 11 20:20:47 2002 *************** *** 292,303 **** #define __glibcpp_char_min (char)__glibcpp_signed_char_min #define __glibcpp_char_max (char)__glibcpp_signed_char_max #define __glibcpp_char_digits __glibcpp_signed_char_digits ! #define __glibcpp_char_digits10 __glibcpp_signed_char_digits #else #define __glibcpp_char_min (char)__glibcpp_unsigned_char_min #define __glibcpp_char_max (char)__glibcpp_unsigned_char_max #define __glibcpp_char_digits __glibcpp_unsigned_char_digits ! #define __glibcpp_char_digits10 __glibcpp_unsigned_char_digits #endif // short --- 292,303 ---- #define __glibcpp_char_min (char)__glibcpp_signed_char_min #define __glibcpp_char_max (char)__glibcpp_signed_char_max #define __glibcpp_char_digits __glibcpp_signed_char_digits ! #define __glibcpp_char_digits10 __glibcpp_signed_char_digits10 #else #define __glibcpp_char_min (char)__glibcpp_unsigned_char_min #define __glibcpp_char_max (char)__glibcpp_unsigned_char_max #define __glibcpp_char_digits __glibcpp_unsigned_char_digits ! #define __glibcpp_char_digits10 __glibcpp_unsigned_char_digits10 #endif // short diff -Nrc3pad gcc-3.2/libstdc++-v3/include/std/std_sstream.h gcc-3.2.1/libstdc++-v3/include/std/std_sstream.h *** gcc-3.2/libstdc++-v3/include/std/std_sstream.h Fri Mar 8 19:28:31 2002 --- gcc-3.2.1/libstdc++-v3/include/std/std_sstream.h Wed Nov 6 00:22:38 2002 *************** namespace std *** 105,111 **** void str(const __string_type& __s) { ! _M_string = __s; _M_stringbuf_init(_M_mode); } --- 105,112 ---- void str(const __string_type& __s) { ! // Cannot use _M_string = __s, since v3 strings are COW. ! _M_string.assign(__s.data(), __s.size()); _M_stringbuf_init(_M_mode); } diff -Nrc3pad gcc-3.2/libstdc++-v3/libio/ChangeLog gcc-3.2.1/libstdc++-v3/libio/ChangeLog *** gcc-3.2/libstdc++-v3/libio/ChangeLog Wed Aug 14 09:01:10 2002 --- gcc-3.2.1/libstdc++-v3/libio/ChangeLog Tue Nov 19 17:50:14 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/libstdc++-v3/libio/Makefile.in gcc-3.2.1/libstdc++-v3/libio/Makefile.in *** gcc-3.2/libstdc++-v3/libio/Makefile.in Fri Jun 28 08:22:36 2002 --- gcc-3.2.1/libstdc++-v3/libio/Makefile.in Fri Aug 23 02:43:03 2002 *************** USE_NLS = @USE_NLS@ *** 109,114 **** --- 109,115 ---- VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ WERROR = @WERROR@ + baseline_file = @baseline_file@ check_msgfmt = @check_msgfmt@ enable_shared = @enable_shared@ enable_static = @enable_static@ diff -Nrc3pad gcc-3.2/libstdc++-v3/libmath/Makefile.am gcc-3.2.1/libstdc++-v3/libmath/Makefile.am *** gcc-3.2/libstdc++-v3/libmath/Makefile.am Mon Mar 25 21:02:20 2002 --- gcc-3.2.1/libstdc++-v3/libmath/Makefile.am Fri Sep 13 02:25:49 2002 *************** libmath_la_DEPENDENCIES = $(libmath_la_L *** 34,45 **** libmath_la_SOURCES = stubs.c - LINK = \ - $(LIBTOOL) --tag CC --mode=link "$(CCLD)" \ - $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ - # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ INCLUDES = \ $(TOPLEVEL_INCLUDES) --- 34,44 ---- libmath_la_SOURCES = stubs.c # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ INCLUDES = \ $(TOPLEVEL_INCLUDES) + + # Only compiling "C" sources in this directory. + LIBTOOL = @LIBTOOL@ --tag CC \ No newline at end of file diff -Nrc3pad gcc-3.2/libstdc++-v3/libmath/Makefile.in gcc-3.2.1/libstdc++-v3/libmath/Makefile.in *** gcc-3.2/libstdc++-v3/libmath/Makefile.in Fri Jun 28 08:22:37 2002 --- gcc-3.2.1/libstdc++-v3/libmath/Makefile.in Fri Sep 13 02:25:49 2002 *************** LIBMATHOBJS = @LIBMATHOBJS@ *** 92,98 **** LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@ - LIBTOOL = @LIBTOOL@ LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ LN_S = @LN_S@ MAINT = @MAINT@ --- 92,97 ---- *************** USE_NLS = @USE_NLS@ *** 111,116 **** --- 110,116 ---- VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ WERROR = @WERROR@ + baseline_file = @baseline_file@ check_msgfmt = @check_msgfmt@ enable_shared = @enable_shared@ enable_static = @enable_static@ *************** libmath_la_DEPENDENCIES = $(libmath_la_L *** 143,159 **** libmath_la_SOURCES = stubs.c - LINK = \ - $(LIBTOOL) --tag CC --mode=link "$(CCLD)" \ - $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ - - # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ INCLUDES = \ $(TOPLEVEL_INCLUDES) CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) --- 143,157 ---- libmath_la_SOURCES = stubs.c # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ INCLUDES = \ $(TOPLEVEL_INCLUDES) + + # Only compiling "C" sources in this directory. + LIBTOOL = @LIBTOOL@ --tag CC CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) *************** CFLAGS = @CFLAGS@ *** 169,174 **** --- 167,173 ---- COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) + LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ DIST_COMMON = Makefile.am Makefile.in diff -Nrc3pad gcc-3.2/libstdc++-v3/libsupc++/Makefile.in gcc-3.2.1/libstdc++-v3/libsupc++/Makefile.in *** gcc-3.2/libstdc++-v3/libsupc++/Makefile.in Fri Jun 28 08:22:38 2002 --- gcc-3.2.1/libstdc++-v3/libsupc++/Makefile.in Fri Aug 23 02:43:04 2002 *************** USE_NLS = @USE_NLS@ *** 107,112 **** --- 107,113 ---- VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ WERROR = @WERROR@ + baseline_file = @baseline_file@ check_msgfmt = @check_msgfmt@ enable_shared = @enable_shared@ enable_static = @enable_static@ diff -Nrc3pad gcc-3.2/libstdc++-v3/po/Makefile.in gcc-3.2.1/libstdc++-v3/po/Makefile.in *** gcc-3.2/libstdc++-v3/po/Makefile.in Fri Jun 28 08:22:39 2002 --- gcc-3.2.1/libstdc++-v3/po/Makefile.in Fri Aug 23 02:43:04 2002 *************** USE_NLS = @USE_NLS@ *** 111,116 **** --- 111,117 ---- VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ WERROR = @WERROR@ + baseline_file = @baseline_file@ check_msgfmt = @check_msgfmt@ enable_shared = @enable_shared@ enable_static = @enable_static@ diff -Nrc3pad gcc-3.2/libstdc++-v3/src/Makefile.am gcc-3.2.1/libstdc++-v3/src/Makefile.am *** gcc-3.2/libstdc++-v3/src/Makefile.am Thu Aug 1 21:29:14 2002 --- gcc-3.2.1/libstdc++-v3/src/Makefile.am Fri Sep 13 02:25:49 2002 *************** *** 22,33 **** ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. ! AUTOMAKE_OPTIONS = 1.3 gnits MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ! # Cross compiler and multilib support. CXX = @glibcpp_CXX@ toolexecdir = @glibcpp_toolexecdir@ toolexeclibdir = @glibcpp_toolexeclibdir@ --- 22,33 ---- ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. ! AUTOMAKE_OPTIONS = 1.3 cygnus MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ! # Cross compiler support. CXX = @glibcpp_CXX@ toolexecdir = @glibcpp_toolexecdir@ toolexeclibdir = @glibcpp_toolexeclibdir@ *************** INCLUDES = \ *** 60,76 **** $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \ $(TOPLEVEL_INCLUDES) sources = \ - globals.cc limits.cc \ - basic_file.cc complex_io.cc ios.cc strstream.cc \ bitset.cc \ ! functexcept.cc stdexcept.cc vterminate.cc \ ! c++locale.cc locale.cc localename.cc codecvt.cc \ ! collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ ! concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc \ ! fstream.cc fstream-inst.cc io-inst.cc istream-inst.cc \ ! ostream-inst.cc streambuf-inst.cc sstream-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) --- 60,113 ---- $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \ $(TOPLEVEL_INCLUDES) + # Source files linked in via configuration magic for a particular target. + target_sources = \ + codecvt_members.cc \ + collate_members.cc \ + ctype_members.cc \ + messages_members.cc \ + monetary_members.cc \ + numeric_members.cc \ + time_members.cc + + # Source files linked in via configuration magic for a particular + # target, but with ad hoc naming rules. + target_sources_extra = \ + basic_file.cc \ + c++locale.cc + + # Sources present in the src directory. sources = \ bitset.cc \ ! codecvt.cc \ ! complex_io.cc \ ! concept-inst.cc \ ! ctype.cc \ ! ext-inst.cc \ ! fstream.cc \ ! fstream-inst.cc \ ! functexcept.cc \ ! globals.cc \ ! io-inst.cc \ ! ios.cc \ ! istream-inst.cc \ ! limits.cc \ ! locale.cc \ ! locale-inst.cc \ ! localename.cc \ ! misc-inst.cc \ ! ostream-inst.cc \ ! sstream-inst.cc \ ! stdexcept.cc \ ! stl-inst.cc \ ! streambuf-inst.cc \ ! string-inst.cc \ ! strstream.cc \ ! valarray-inst.cc \ ! vterminate.cc \ ! wstring-inst.cc \ ! ${target_sources} \ ! ${target_sources_extra} VPATH = $(top_srcdir)/src:$(top_srcdir) diff -Nrc3pad gcc-3.2/libstdc++-v3/src/Makefile.in gcc-3.2.1/libstdc++-v3/src/Makefile.in *** gcc-3.2/libstdc++-v3/src/Makefile.in Thu Aug 1 21:29:15 2002 --- gcc-3.2.1/libstdc++-v3/src/Makefile.in Fri Sep 13 02:25:49 2002 *************** USE_NLS = @USE_NLS@ *** 104,109 **** --- 104,110 ---- VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ WERROR = @WERROR@ + baseline_file = @baseline_file@ check_msgfmt = @check_msgfmt@ enable_shared = @enable_shared@ enable_static = @enable_static@ *************** libio_la = @libio_la@ *** 124,135 **** libtool_VERSION = @libtool_VERSION@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = 1.3 gnits MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ! # Cross compiler and multilib support. CXX = @glibcpp_CXX@ toolexecdir = @glibcpp_toolexecdir@ toolexeclibdir = @glibcpp_toolexeclibdir@ --- 125,136 ---- libtool_VERSION = @libtool_VERSION@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = 1.3 cygnus MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ! # Cross compiler support. CXX = @glibcpp_CXX@ toolexecdir = @glibcpp_toolexecdir@ toolexeclibdir = @glibcpp_toolexeclibdir@ *************** INCLUDES = \ *** 165,181 **** $(TOPLEVEL_INCLUDES) sources = \ - globals.cc limits.cc \ - basic_file.cc complex_io.cc ios.cc strstream.cc \ bitset.cc \ ! functexcept.cc stdexcept.cc vterminate.cc \ ! c++locale.cc locale.cc localename.cc codecvt.cc \ ! collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ ! concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc \ ! fstream.cc fstream-inst.cc io-inst.cc istream-inst.cc \ ! ostream-inst.cc streambuf-inst.cc sstream-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) --- 166,221 ---- $(TOPLEVEL_INCLUDES) + # Source files linked in via configuration magic for a particular target. + target_sources = \ + codecvt_members.cc \ + collate_members.cc \ + ctype_members.cc \ + messages_members.cc \ + monetary_members.cc \ + numeric_members.cc \ + time_members.cc + + + # Source files linked in via configuration magic for a particular + # target, but with ad hoc naming rules. + target_sources_extra = \ + basic_file.cc \ + c++locale.cc + + + # Sources present in the src directory. sources = \ bitset.cc \ ! codecvt.cc \ ! complex_io.cc \ ! concept-inst.cc \ ! ctype.cc \ ! ext-inst.cc \ ! fstream.cc \ ! fstream-inst.cc \ ! functexcept.cc \ ! globals.cc \ ! io-inst.cc \ ! ios.cc \ ! istream-inst.cc \ ! limits.cc \ ! locale.cc \ ! locale-inst.cc \ ! localename.cc \ ! misc-inst.cc \ ! ostream-inst.cc \ ! sstream-inst.cc \ ! stdexcept.cc \ ! stl-inst.cc \ ! streambuf-inst.cc \ ! string-inst.cc \ ! strstream.cc \ ! valarray-inst.cc \ ! vterminate.cc \ ! wstring-inst.cc \ ! ${target_sources} \ ! ${target_sources_extra} VPATH = $(top_srcdir)/src:$(top_srcdir) *************** DEFS = @DEFS@ -I. -I$(srcdir) -I.. *** 253,265 **** CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ ! libstdc___la_OBJECTS = globals.lo limits.lo basic_file.lo complex_io.lo \ ! ios.lo strstream.lo bitset.lo functexcept.lo stdexcept.lo vterminate.lo \ ! c++locale.lo locale.lo localename.lo codecvt.lo collate.lo ctype.lo \ ! messages.lo monetary.lo numeric.lo time.lo concept-inst.lo \ ! locale-inst.lo misc-inst.lo stl-inst.lo string-inst.lo wstring-inst.lo \ ! valarray-inst.lo ext-inst.lo fstream.lo fstream-inst.lo io-inst.lo \ ! istream-inst.lo ostream-inst.lo streambuf-inst.lo sstream-inst.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) --- 293,307 ---- CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ ! libstdc___la_OBJECTS = bitset.lo codecvt.lo complex_io.lo \ ! concept-inst.lo ctype.lo ext-inst.lo fstream.lo fstream-inst.lo \ ! functexcept.lo globals.lo io-inst.lo ios.lo istream-inst.lo limits.lo \ ! locale.lo locale-inst.lo localename.lo misc-inst.lo ostream-inst.lo \ ! sstream-inst.lo stdexcept.lo stl-inst.lo streambuf-inst.lo \ ! string-inst.lo strstream.lo valarray-inst.lo vterminate.lo \ ! wstring-inst.lo codecvt_members.lo collate_members.lo ctype_members.lo \ ! messages_members.lo monetary_members.lo numeric_members.lo \ ! time_members.lo basic_file.lo c++locale.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) diff -Nrc3pad gcc-3.2/libstdc++-v3/src/bitset.cc gcc-3.2.1/libstdc++-v3/src/bitset.cc *** gcc-3.2/libstdc++-v3/src/bitset.cc Tue Apr 9 07:40:09 2002 --- gcc-3.2.1/libstdc++-v3/src/bitset.cc Fri Sep 13 01:21:42 2002 *************** *** 2,23 **** // Copyright (C) 2001, 2002 Free Software Foundation // ! // 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. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate --- 2,22 ---- // Copyright (C) 2001, 2002 Free Software Foundation // ! // This file is part of the GNU ISO C++ Library. This library is free ! // software; you can redistribute it and/or modify it under the ! // terms of the GNU General Public License as published by the ! // Free Software Foundation; either version 2, or (at your option) // any later version. ! ! // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. ! ! // You should have received a copy of the GNU General Public License along ! // with this library; see the file COPYING. If not, write to the Free ! // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ! // USA. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate diff -Nrc3pad gcc-3.2/libstdc++-v3/src/codecvt.cc gcc-3.2.1/libstdc++-v3/src/codecvt.cc *** gcc-3.2/libstdc++-v3/src/codecvt.cc Fri Feb 8 01:34:40 2002 --- gcc-3.2.1/libstdc++-v3/src/codecvt.cc Thu Oct 17 02:04:17 2002 *************** *** 31,36 **** --- 31,43 ---- namespace std { + // Definitions for locale::id of standard facets that are specialized. + locale::id codecvt::id; + + #ifdef _GLIBCPP_USE_WCHAR_T + locale::id codecvt::id; + #endif + #ifdef _GLIBCPP_USE___ENC_TRAITS // Definitions for static const data members of __enc_traits. const int __enc_traits::_S_max_size; *************** namespace std *** 42,48 **** { } codecvt:: ! ~codecvt() { } codecvt_base::result codecvt:: --- 49,56 ---- { } codecvt:: ! ~codecvt() ! { } codecvt_base::result codecvt:: *************** namespace std *** 106,144 **** // codecvt required specialization codecvt:: codecvt(size_t __refs) ! : __codecvt_abstract_base(__refs) { } codecvt:: ! ~codecvt() { } ! ! codecvt_base::result ! codecvt:: ! do_out(state_type& __state, const intern_type* __from, ! const intern_type* __from_end, const intern_type*& __from_next, ! extern_type* __to, extern_type* __to_end, ! extern_type*& __to_next) const ! { ! result __ret = error; ! size_t __len = min(__from_end - __from, __to_end - __to); ! size_t __conv = wcsrtombs(__to, &__from, __len, &__state); ! ! if (__conv == __len) ! { ! __from_next = __from; ! __to_next = __to + __conv; ! __ret = ok; ! } ! else if (__conv > 0 && __conv < __len) ! { ! __from_next = __from; ! __to_next = __to + __conv; ! __ret = partial; ! } ! else ! __ret = error; ! ! return __ret; ! } codecvt_base::result codecvt:: --- 114,125 ---- // codecvt required specialization codecvt:: codecvt(size_t __refs) ! : __codecvt_abstract_base(__refs) ! { } codecvt:: ! ~codecvt() ! { } codecvt_base::result codecvt:: *************** namespace std *** 149,183 **** return noconv; } - codecvt_base::result - codecvt:: - do_in(state_type& __state, const extern_type* __from, - const extern_type* __from_end, const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const - { - result __ret = error; - size_t __len = min(__from_end - __from, __to_end - __to); - size_t __conv = mbsrtowcs(__to, &__from, __len, &__state); - - if (__conv == __len) - { - __from_next = __from; - __to_next = __to + __conv; - __ret = ok; - } - else if (__conv > 0 && __conv < __len) - { - __from_next = __from; - __to_next = __to + __conv; - __ret = partial; - } - else - __ret = error; - - return __ret; - } - int codecvt:: do_encoding() const throw() --- 130,135 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/src/concept-inst.cc gcc-3.2.1/libstdc++-v3/src/concept-inst.cc *** gcc-3.2/libstdc++-v3/src/concept-inst.cc Fri Apr 19 08:28:18 2002 --- gcc-3.2.1/libstdc++-v3/src/concept-inst.cc Fri Sep 13 01:21:42 2002 *************** *** 2,23 **** // Copyright (C) 2001, 2002 Free Software Foundation // ! // 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. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate --- 2,22 ---- // Copyright (C) 2001, 2002 Free Software Foundation // ! // This file is part of the GNU ISO C++ Library. This library is free ! // software; you can redistribute it and/or modify it under the ! // terms of the GNU General Public License as published by the ! // Free Software Foundation; either version 2, or (at your option) // any later version. ! ! // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. ! ! // You should have received a copy of the GNU General Public License along ! // with this library; see the file COPYING. If not, write to the Free ! // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ! // USA. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate diff -Nrc3pad gcc-3.2/libstdc++-v3/src/ctype.cc gcc-3.2.1/libstdc++-v3/src/ctype.cc *** gcc-3.2/libstdc++-v3/src/ctype.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/src/ctype.cc Thu Oct 17 02:04:17 2002 *************** *** 0 **** --- 1,148 ---- + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #include + + namespace std + { + // XXX At some point, just rename this file to ctype_members_char.cc + // and compile it as a separate file instead of including it here. + // Platform-specific initialization code for ctype tables. + #include + + // Definitions for locale::id of standard facets that are specialized. + locale::id ctype::id; + + #ifdef _GLIBCPP_USE_WCHAR_T + locale::id ctype::id; + #endif + + template<> + const ctype& + use_facet >(const locale& __loc) + { + size_t __i = ctype::id._M_id(); + const locale::_Impl* __tmp = __loc._M_impl; + return static_cast&>(*(__tmp->_M_facets[__i])); + } + + #ifdef _GLIBCPP_USE_WCHAR_T + template<> + const ctype& + use_facet >(const locale& __loc) + { + size_t __i = ctype::id._M_id(); + const locale::_Impl* __tmp = __loc._M_impl; + return static_cast&>(*(__tmp->_M_facets[__i])); + } + #endif + + // Definitions for static const data members of ctype_base. + const ctype_base::mask ctype_base::space; + const ctype_base::mask ctype_base::print; + const ctype_base::mask ctype_base::cntrl; + const ctype_base::mask ctype_base::upper; + const ctype_base::mask ctype_base::lower; + const ctype_base::mask ctype_base::alpha; + const ctype_base::mask ctype_base::digit; + const ctype_base::mask ctype_base::punct; + const ctype_base::mask ctype_base::xdigit; + const ctype_base::mask ctype_base::alnum; + const ctype_base::mask ctype_base::graph; + + const size_t ctype::table_size; + + ctype::~ctype() + { + _S_destroy_c_locale(_M_c_locale_ctype); + if (_M_del) + delete[] this->table(); + } + + // These are dummy placeholders as these virtual functions are never called. + bool + ctype::do_is(mask, char_type) const + { return false; } + + const char* + ctype::do_is(const char_type* __c, const char_type*, mask*) const + { return __c; } + + const char* + ctype::do_scan_is(mask, const char_type* __c, const char_type*) const + { return __c; } + + const char* + ctype::do_scan_not(mask, const char_type* __c, const char_type*) const + { return __c; } + + char + ctype::do_widen(char __c) const + { return __c; } + + const char* + ctype::do_widen(const char* __lo, const char* __hi, char* __dest) const + { + memcpy(__dest, __lo, __hi - __lo); + return __hi; + } + + char + ctype::do_narrow(char __c, char /*__dfault*/) const + { return __c; } + + const char* + ctype::do_narrow(const char* __lo, const char* __hi, + char /*__dfault*/, char* __dest) const + { + memcpy(__dest, __lo, __hi - __lo); + return __hi; + } + + #ifdef _GLIBCPP_USE_WCHAR_T + ctype::ctype(size_t __refs) + : __ctype_abstract_base(__refs) + { _M_c_locale_ctype = _S_c_locale; } + + ctype::ctype(__c_locale __cloc, size_t __refs) + : __ctype_abstract_base(__refs) + { _M_c_locale_ctype = _S_clone_c_locale(__cloc); } + + ctype::~ctype() + { _S_destroy_c_locale(_M_c_locale_ctype); } + + template<> + ctype_byname::ctype_byname(const char* __s, size_t __refs) + : ctype(__refs) + { + _S_destroy_c_locale(_M_c_locale_ctype); + _S_create_c_locale(_M_c_locale_ctype, __s); + } + #endif + } // namespace std + diff -Nrc3pad gcc-3.2/libstdc++-v3/src/globals.cc gcc-3.2.1/libstdc++-v3/src/globals.cc *** gcc-3.2/libstdc++-v3/src/globals.cc Tue Apr 30 19:05:46 2002 --- gcc-3.2.1/libstdc++-v3/src/globals.cc Thu Oct 17 02:04:17 2002 *************** *** 44,206 **** // Because declares the standard streams to be [io]stream // types instead of say [io]fstream types, it is also necessary to // allocate the actual file buffers in this file. ! namespace std { ! // Standard "C" locale. ! typedef char fake_locale[sizeof(locale)] ! __attribute__ ((aligned(__alignof__(locale)))); ! fake_locale c_locale; typedef char fake_locale_Impl[sizeof(locale::_Impl)] __attribute__ ((aligned(__alignof__(locale::_Impl)))); fake_locale_Impl c_locale_impl; ! typedef char fake_facet_vec[sizeof(locale::facet*)] __attribute__ ((aligned(__alignof__(locale::facet*)))); fake_facet_vec facet_vec[_GLIBCPP_NUM_FACETS]; typedef char fake_ctype_c[sizeof(std::ctype)] __attribute__ ((aligned(__alignof__(std::ctype)))); fake_ctype_c ctype_c; typedef char fake_collate_c[sizeof(std::collate)] __attribute__ ((aligned(__alignof__(std::collate)))); fake_collate_c collate_c; typedef char fake_numpunct_c[sizeof(numpunct)] __attribute__ ((aligned(__alignof__(numpunct)))); fake_numpunct_c numpunct_c; typedef char fake_num_get_c[sizeof(num_get)] __attribute__ ((aligned(__alignof__(num_get)))); fake_num_get_c num_get_c; typedef char fake_num_put_c[sizeof(num_put)] __attribute__ ((aligned(__alignof__(num_put)))); fake_num_put_c num_put_c; typedef char fake_codecvt_c[sizeof(codecvt)] __attribute__ ((aligned(__alignof__(codecvt)))); fake_codecvt_c codecvt_c; typedef char fake_moneypunct_c[sizeof(moneypunct)] __attribute__ ((aligned(__alignof__(moneypunct)))); fake_moneypunct_c moneypunct_tc; fake_moneypunct_c moneypunct_fc; typedef char fake_money_get_c[sizeof(money_get)] __attribute__ ((aligned(__alignof__(money_get)))); fake_money_get_c money_get_c; typedef char fake_money_put_c[sizeof(money_put)] __attribute__ ((aligned(__alignof__(money_put)))); fake_money_put_c money_put_c; typedef char fake_timepunct_c[sizeof(__timepunct)] __attribute__ ((aligned(__alignof__(__timepunct)))); fake_timepunct_c timepunct_c; typedef char fake_time_get_c[sizeof(time_get)] __attribute__ ((aligned(__alignof__(time_get)))); fake_time_get_c time_get_c; typedef char fake_time_put_c[sizeof(time_put)] __attribute__ ((aligned(__alignof__(time_put)))); fake_time_put_c time_put_c; typedef char fake_messages_c[sizeof(messages)] __attribute__ ((aligned(__alignof__(messages)))); fake_messages_c messages_c; #ifdef _GLIBCPP_USE_WCHAR_T typedef char fake_wtype_w[sizeof(std::ctype)] __attribute__ ((aligned(__alignof__(std::ctype)))); fake_wtype_w ctype_w; typedef char fake_wollate_w[sizeof(std::collate)] __attribute__ ((aligned(__alignof__(std::collate)))); fake_wollate_w collate_w; typedef char fake_numpunct_w[sizeof(numpunct)] __attribute__ ((aligned(__alignof__(numpunct)))); fake_numpunct_w numpunct_w; typedef char fake_num_get_w[sizeof(num_get)] __attribute__ ((aligned(__alignof__(num_get)))); fake_num_get_w num_get_w; typedef char fake_num_put_w[sizeof(num_put)] __attribute__ ((aligned(__alignof__(num_put)))); fake_num_put_w num_put_w; typedef char fake_wodecvt_w[sizeof(codecvt)] __attribute__ ((aligned(__alignof__(codecvt)))); fake_wodecvt_w codecvt_w; typedef char fake_moneypunct_w[sizeof(moneypunct)] __attribute__ ((aligned(__alignof__(moneypunct)))); fake_moneypunct_w moneypunct_tw; fake_moneypunct_w moneypunct_fw; typedef char fake_money_get_w[sizeof(money_get)] __attribute__ ((aligned(__alignof__(money_get)))); fake_money_get_w money_get_w; typedef char fake_money_put_w[sizeof(money_put)] __attribute__ ((aligned(__alignof__(money_put)))); fake_money_put_w money_put_w; typedef char fake_timepunct_w[sizeof(__timepunct)] __attribute__ ((aligned(__alignof__(__timepunct)))); fake_timepunct_w timepunct_w; typedef char fake_time_get_w[sizeof(time_get)] __attribute__ ((aligned(__alignof__(time_get)))); fake_time_get_w time_get_w; typedef char fake_time_put_w[sizeof(time_put)] __attribute__ ((aligned(__alignof__(time_put)))); fake_time_put_w time_put_w; typedef char fake_messages_w[sizeof(messages)] __attribute__ ((aligned(__alignof__(messages)))); fake_messages_w messages_w; #endif ! // Standard stream objects. ! typedef char fake_istream[sizeof(istream)] ! __attribute__ ((aligned(__alignof__(istream)))); ! typedef char fake_ostream[sizeof(ostream)] ! __attribute__ ((aligned(__alignof__(ostream)))); ! fake_istream cin; ! fake_ostream cout; ! fake_ostream cerr; ! fake_ostream clog; ! ! typedef char fake_filebuf[sizeof(__gnu_cxx::stdio_filebuf)] ! __attribute__ ((aligned(__alignof__(__gnu_cxx::stdio_filebuf)))); fake_filebuf buf_cout; fake_filebuf buf_cin; fake_filebuf buf_cerr; #ifdef _GLIBCPP_USE_WCHAR_T ! typedef char fake_wistream[sizeof(wistream)] ! __attribute__ ((aligned(__alignof__(wistream)))); ! typedef char fake_wostream[sizeof(wostream)] ! __attribute__ ((aligned(__alignof__(wostream)))); ! fake_wistream wcin; ! fake_wostream wcout; ! fake_wostream wcerr; ! fake_wostream wclog; ! ! typedef char fake_wfilebuf[sizeof(__gnu_cxx::stdio_filebuf)] ! __attribute__ ((aligned(__alignof__(__gnu_cxx::stdio_filebuf)))); fake_wfilebuf buf_wcout; fake_wfilebuf buf_wcin; fake_wfilebuf buf_wcerr; #endif ! // Globals for once-only runtime initialization of mutex objects. This // allows static initialization of these objects on systems that need a // function call to initialize a mutex. For example, see stl_threads.h. --- 44,252 ---- // Because declares the standard streams to be [io]stream // types instead of say [io]fstream types, it is also necessary to // allocate the actual file buffers in this file. ! namespace __gnu_cxx { ! using namespace std; ! ! typedef char fake_facet_name[sizeof(char*)] ! __attribute__ ((aligned(__alignof__(char*)))); ! fake_facet_name facet_name[6 + _GLIBCPP_NUM_CATEGORIES]; typedef char fake_locale_Impl[sizeof(locale::_Impl)] __attribute__ ((aligned(__alignof__(locale::_Impl)))); fake_locale_Impl c_locale_impl; ! ! ! // NB: The asm directives renames these non-exported, namespace ! // __gnu_cxx symbols into the mistakenly exported, namespace std ! // symbols in GLIBCPP_3.2. ! // The rename syntax is ! // asm (".symver currentname,oldname@@GLIBCPP_3.2") ! // At the same time, these new __gnu_cxx symbols are not exported. ! // In the future, GLIBCXX_ABI > 5 should remove all uses of ! // _GLIBCPP_ASM_SYMVER in this file. ! typedef char fake_locale[sizeof(locale)] ! __attribute__ ((aligned(__alignof__(locale)))); ! fake_locale c_locale; ! _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8c_localeE, _ZSt8c_locale, GLIBCPP_3.2) ! ! // GLIBCXX_ABI > 5 will not need this symbol at all. ! // It's here just as a placeholder, as the size of this exported ! // object changed. The new symbol is not exported. ! const int o = sizeof(locale::_Impl) - sizeof(char*[_GLIBCPP_NUM_CATEGORIES]); ! typedef char fake_locale_Impl_compat[o] ! __attribute__ ((aligned(__alignof__(o)))); ! fake_locale_Impl_compat c_locale_impl_compat; ! _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx20c_locale_impl_compatE, _ZSt13c_locale_impl, GLIBCPP_3.2) ! typedef char fake_facet_vec[sizeof(locale::facet*)] __attribute__ ((aligned(__alignof__(locale::facet*)))); fake_facet_vec facet_vec[_GLIBCPP_NUM_FACETS]; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9facet_vecE, _ZSt9facet_vec, GLIBCPP_3.2) typedef char fake_ctype_c[sizeof(std::ctype)] __attribute__ ((aligned(__alignof__(std::ctype)))); fake_ctype_c ctype_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7ctype_cE, _ZSt7ctype_c, GLIBCPP_3.2) typedef char fake_collate_c[sizeof(std::collate)] __attribute__ ((aligned(__alignof__(std::collate)))); fake_collate_c collate_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9collate_cE, _ZSt9collate_c, GLIBCPP_3.2) typedef char fake_numpunct_c[sizeof(numpunct)] __attribute__ ((aligned(__alignof__(numpunct)))); fake_numpunct_c numpunct_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10numpunct_cE, _ZSt10numpunct_c, GLIBCPP_3.2) typedef char fake_num_get_c[sizeof(num_get)] __attribute__ ((aligned(__alignof__(num_get)))); fake_num_get_c num_get_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_get_cE, _ZSt9num_get_c, GLIBCPP_3.2) typedef char fake_num_put_c[sizeof(num_put)] __attribute__ ((aligned(__alignof__(num_put)))); fake_num_put_c num_put_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_put_cE, _ZSt9num_put_c, GLIBCPP_3.2) typedef char fake_codecvt_c[sizeof(codecvt)] __attribute__ ((aligned(__alignof__(codecvt)))); fake_codecvt_c codecvt_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9codecvt_cE, _ZSt9codecvt_c, GLIBCPP_3.2) typedef char fake_moneypunct_c[sizeof(moneypunct)] __attribute__ ((aligned(__alignof__(moneypunct)))); fake_moneypunct_c moneypunct_tc; fake_moneypunct_c moneypunct_fc; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_tcE,\ + _ZSt13moneypunct_tc, GLIBCPP_3.2) + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_fcE,\ + _ZSt13moneypunct_fc, GLIBCPP_3.2) typedef char fake_money_get_c[sizeof(money_get)] __attribute__ ((aligned(__alignof__(money_get)))); fake_money_get_c money_get_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_get_cE, _ZSt11money_get_c, GLIBCPP_3.2) typedef char fake_money_put_c[sizeof(money_put)] __attribute__ ((aligned(__alignof__(money_put)))); fake_money_put_c money_put_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_put_cE, _ZSt11money_put_c, GLIBCPP_3.2) typedef char fake_timepunct_c[sizeof(__timepunct)] __attribute__ ((aligned(__alignof__(__timepunct)))); fake_timepunct_c timepunct_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11timepunct_cE, _ZSt11timepunct_c, GLIBCPP_3.2) typedef char fake_time_get_c[sizeof(time_get)] __attribute__ ((aligned(__alignof__(time_get)))); fake_time_get_c time_get_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_get_cE, _ZSt10time_get_c, GLIBCPP_3.2) typedef char fake_time_put_c[sizeof(time_put)] __attribute__ ((aligned(__alignof__(time_put)))); fake_time_put_c time_put_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_put_cE, _ZSt10time_put_c, GLIBCPP_3.2) typedef char fake_messages_c[sizeof(messages)] __attribute__ ((aligned(__alignof__(messages)))); fake_messages_c messages_c; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_cE, _ZSt10messages_c, GLIBCPP_3.2) #ifdef _GLIBCPP_USE_WCHAR_T typedef char fake_wtype_w[sizeof(std::ctype)] __attribute__ ((aligned(__alignof__(std::ctype)))); fake_wtype_w ctype_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7ctype_wE, _ZSt7ctype_w, GLIBCPP_3.2) typedef char fake_wollate_w[sizeof(std::collate)] __attribute__ ((aligned(__alignof__(std::collate)))); fake_wollate_w collate_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9collate_wE, _ZSt9collate_w, GLIBCPP_3.2) typedef char fake_numpunct_w[sizeof(numpunct)] __attribute__ ((aligned(__alignof__(numpunct)))); fake_numpunct_w numpunct_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10numpunct_wE, _ZSt10numpunct_w, GLIBCPP_3.2) typedef char fake_num_get_w[sizeof(num_get)] __attribute__ ((aligned(__alignof__(num_get)))); fake_num_get_w num_get_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_get_wE, _ZSt9num_get_w, GLIBCPP_3.2) typedef char fake_num_put_w[sizeof(num_put)] __attribute__ ((aligned(__alignof__(num_put)))); fake_num_put_w num_put_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9num_put_wE, _ZSt9num_put_w, GLIBCPP_3.2) typedef char fake_wodecvt_w[sizeof(codecvt)] __attribute__ ((aligned(__alignof__(codecvt)))); fake_wodecvt_w codecvt_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9codecvt_wE, _ZSt9codecvt_w, GLIBCPP_3.2) typedef char fake_moneypunct_w[sizeof(moneypunct)] __attribute__ ((aligned(__alignof__(moneypunct)))); fake_moneypunct_w moneypunct_tw; fake_moneypunct_w moneypunct_fw; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_twE,\ + _ZSt13moneypunct_tw, GLIBCPP_3.2) + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx13moneypunct_fwE,\ + _ZSt13moneypunct_fw, GLIBCPP_3.2) typedef char fake_money_get_w[sizeof(money_get)] __attribute__ ((aligned(__alignof__(money_get)))); fake_money_get_w money_get_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_get_wE, _ZSt11money_get_w, GLIBCPP_3.2) typedef char fake_money_put_w[sizeof(money_put)] __attribute__ ((aligned(__alignof__(money_put)))); fake_money_put_w money_put_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11money_put_wE, _ZSt11money_put_w, GLIBCPP_3.2) typedef char fake_timepunct_w[sizeof(__timepunct)] __attribute__ ((aligned(__alignof__(__timepunct)))); fake_timepunct_w timepunct_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx11timepunct_wE, _ZSt11timepunct_w, GLIBCPP_3.2) typedef char fake_time_get_w[sizeof(time_get)] __attribute__ ((aligned(__alignof__(time_get)))); fake_time_get_w time_get_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_get_wE, _ZSt10time_get_w, GLIBCPP_3.2) typedef char fake_time_put_w[sizeof(time_put)] __attribute__ ((aligned(__alignof__(time_put)))); fake_time_put_w time_put_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10time_put_wE, _ZSt10time_put_w, GLIBCPP_3.2) typedef char fake_messages_w[sizeof(messages)] __attribute__ ((aligned(__alignof__(messages)))); fake_messages_w messages_w; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_wE, _ZSt10messages_w, GLIBCPP_3.2) #endif ! typedef char fake_filebuf[sizeof(stdio_filebuf)] ! __attribute__ ((aligned(__alignof__(stdio_filebuf)))); fake_filebuf buf_cout; fake_filebuf buf_cin; fake_filebuf buf_cerr; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_coutE, _ZSt8buf_cout, GLIBCPP_3.2) + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx7buf_cinE, _ZSt7buf_cin, GLIBCPP_3.2) + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_cerrE, _ZSt8buf_cerr, GLIBCPP_3.2) #ifdef _GLIBCPP_USE_WCHAR_T ! typedef char fake_wfilebuf[sizeof(stdio_filebuf)] ! __attribute__ ((aligned(__alignof__(stdio_filebuf)))); fake_wfilebuf buf_wcout; fake_wfilebuf buf_wcin; fake_wfilebuf buf_wcerr; + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcoutE, _ZSt9buf_wcout, GLIBCPP_3.2) + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8buf_wcinE, _ZSt8buf_wcin, GLIBCPP_3.2) + _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9buf_wcerrE, _ZSt9buf_wcerr, GLIBCPP_3.2) #endif + } // namespace __gnu_cxx ! namespace std ! { // Globals for once-only runtime initialization of mutex objects. This // allows static initialization of these objects on systems that need a // function call to initialize a mutex. For example, see stl_threads.h. *************** namespace std *** 223,226 **** _GLIBCPP_mutex_address_init () { __GTHREAD_MUTEX_INIT_FUNCTION (_GLIBCPP_mutex_address); } #endif ! } --- 269,293 ---- _GLIBCPP_mutex_address_init () { __GTHREAD_MUTEX_INIT_FUNCTION (_GLIBCPP_mutex_address); } #endif ! ! // Standard stream objects. ! typedef char fake_istream[sizeof(istream)] ! __attribute__ ((aligned(__alignof__(istream)))); ! typedef char fake_ostream[sizeof(ostream)] ! __attribute__ ((aligned(__alignof__(ostream)))); ! fake_istream cin; ! fake_ostream cout; ! fake_ostream cerr; ! fake_ostream clog; ! ! #ifdef _GLIBCPP_USE_WCHAR_T ! typedef char fake_wistream[sizeof(wistream)] ! __attribute__ ((aligned(__alignof__(wistream)))); ! typedef char fake_wostream[sizeof(wostream)] ! __attribute__ ((aligned(__alignof__(wostream)))); ! fake_wistream wcin; ! fake_wostream wcout; ! fake_wostream wcerr; ! fake_wostream wclog; ! #endif ! } // namespace std diff -Nrc3pad gcc-3.2/libstdc++-v3/src/ios.cc gcc-3.2.1/libstdc++-v3/src/ios.cc *** gcc-3.2/libstdc++-v3/src/ios.cc Tue Apr 30 19:05:46 2002 --- gcc-3.2.1/libstdc++-v3/src/ios.cc Thu Oct 17 02:04:17 2002 *************** *** 39,66 **** #include #include ! namespace std { // Extern declarations for global objects in src/globals.cc. extern istream cin; extern ostream cout; extern ostream cerr; extern ostream clog; - using __gnu_cxx::stdio_filebuf; - extern stdio_filebuf buf_cout; - extern stdio_filebuf buf_cin; - extern stdio_filebuf buf_cerr; - #ifdef _GLIBCPP_USE_WCHAR_T extern wistream wcin; extern wostream wcout; extern wostream wcerr; extern wostream wclog; - - extern stdio_filebuf buf_wcout; - extern stdio_filebuf buf_wcin; - extern stdio_filebuf buf_wcerr; #endif // Definitions for static const data members of __ios_flags. --- 39,72 ---- #include #include ! namespace __gnu_cxx { // Extern declarations for global objects in src/globals.cc. + extern stdio_filebuf buf_cout; + extern stdio_filebuf buf_cin; + extern stdio_filebuf buf_cerr; + + #ifdef _GLIBCPP_USE_WCHAR_T + extern stdio_filebuf buf_wcout; + extern stdio_filebuf buf_wcin; + extern stdio_filebuf buf_wcerr; + #endif + } // namespace __gnu_cxx + + namespace std + { + using namespace __gnu_cxx; + extern istream cin; extern ostream cout; extern ostream cerr; extern ostream clog; #ifdef _GLIBCPP_USE_WCHAR_T extern wistream wcin; extern wostream wcout; extern wostream wcerr; extern wostream wclog; #endif // Definitions for static const data members of __ios_flags. diff -Nrc3pad gcc-3.2/libstdc++-v3/src/locale-inst.cc gcc-3.2.1/libstdc++-v3/src/locale-inst.cc *** gcc-3.2/libstdc++-v3/src/locale-inst.cc Thu Aug 1 21:29:15 2002 --- gcc-3.2.1/libstdc++-v3/src/locale-inst.cc Thu Oct 17 02:04:17 2002 *************** *** 35,45 **** #include #include #include - #include - #include #include - #include - #include namespace std { --- 35,41 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/src/locale.cc gcc-3.2.1/libstdc++-v3/src/locale.cc *** gcc-3.2/libstdc++-v3/src/locale.cc Thu Aug 1 21:29:15 2002 --- gcc-3.2.1/libstdc++-v3/src/locale.cc Thu Oct 17 02:04:17 2002 *************** *** 31,49 **** #include #include #include // For towupper, etc. - #include - #include #include - #include - #include #include ! namespace std { // Defined in globals.cc. ! extern locale c_locale; ! extern locale::_Impl c_locale_impl; ! extern locale::facet** facet_vec; // Definitions for static const data members of locale. const locale::category locale::none; --- 31,49 ---- #include #include #include // For towupper, etc. #include #include ! namespace __gnu_cxx { // Defined in globals.cc. ! extern std::locale c_locale; ! extern std::locale::_Impl c_locale_impl; ! } // namespace __gnu_cxx ! ! namespace std ! { ! using namespace __gnu_cxx; // Definitions for static const data members of locale. const locale::category locale::none; *************** namespace std *** 55,72 **** const locale::category locale::messages; const locale::category locale::all; locale::_Impl* locale::_S_classic; locale::_Impl* locale::_S_global; ! const size_t locale::_S_num_categories; ! ! // Definitions for locale::id of standard facets that are specialized. ! locale::id ctype::id; ! locale::id codecvt::id; ! ! #ifdef _GLIBCPP_USE_WCHAR_T ! locale::id ctype::id; ! locale::id codecvt::id; ! #endif // Definitions for static const data members of locale::id _Atomic_word locale::id::_S_highwater; // init'd to 0 by linker --- 55,68 ---- const locale::category locale::messages; const locale::category locale::all; + // In the future, GLIBCXX_ABI > 5 should remove all uses of + // _GLIBCPP_ASM_SYMVER in this file, and remove exports of any + // static data members of locale. locale::_Impl* locale::_S_classic; locale::_Impl* locale::_S_global; ! const size_t locale::_S_categories_size; ! _GLIBCPP_ASM_SYMVER(_ZNSt6locale18_S_categories_sizeE, _ZNSt6locale17_S_num_categoriesE, GLIBCPP_3.2) ! const size_t locale::_S_extra_categories_size; // Definitions for static const data members of locale::id _Atomic_word locale::id::_S_highwater; // init'd to 0 by linker *************** namespace std *** 155,185 **** locale::_Impl::_S_id_ctype, locale::_Impl::_S_id_numeric, locale::_Impl::_S_id_collate, - locale::_Impl::_S_id_monetary, locale::_Impl::_S_id_time, locale::_Impl::_S_id_messages, 0 }; - locale::~locale() throw() - { _M_impl->_M_remove_reference(); } - - void - locale::_M_coalesce(const locale& __base, const locale& __add, - category __cat) - { - __cat = _S_normalize_category(__cat); - _M_impl = new _Impl(*__base._M_impl, 1); - - try - { _M_impl->_M_replace_categories(__add._M_impl, __cat); } - catch (...) - { - _M_impl->_M_remove_reference(); - __throw_exception_again; - } - } - locale::locale() throw() { _S_initialize(); --- 151,162 ---- locale::_Impl::_S_id_ctype, locale::_Impl::_S_id_numeric, locale::_Impl::_S_id_collate, locale::_Impl::_S_id_time, + locale::_Impl::_S_id_monetary, locale::_Impl::_S_id_messages, 0 }; locale::locale() throw() { _S_initialize(); *************** namespace std *** 191,196 **** --- 168,174 ---- // This is used to initialize global and classic locales, and // assumes that the _Impl objects are constructed correctly. + // The lack of a reference increment is intentional. locale::locale(_Impl* __ip) throw() : _M_impl(__ip) { } *************** namespace std *** 201,210 **** _S_initialize(); if (strcmp(__s, "C") == 0 || strcmp(__s, "POSIX") == 0) (_M_impl = _S_classic)->_M_add_reference(); ! else if (strcmp(__s, "") == 0) ! _M_impl = new _Impl(setlocale(LC_ALL, NULL), 1); ! else _M_impl = new _Impl(__s, 1); } else __throw_runtime_error("attempt to create locale from NULL name"); --- 179,288 ---- _S_initialize(); if (strcmp(__s, "C") == 0 || strcmp(__s, "POSIX") == 0) (_M_impl = _S_classic)->_M_add_reference(); ! else if (strcmp(__s, "") != 0) _M_impl = new _Impl(__s, 1); + else + { + // Get it from the environment. + char* __env = getenv("LC_ALL"); + // If LC_ALL is set we are done. + if (__env && strcmp(__env, "") != 0) + { + if (strcmp(__env, "C") == 0 || strcmp(__env, "POSIX") == 0) + (_M_impl = _S_classic)->_M_add_reference(); + else + _M_impl = new _Impl(__env, 1); + } + else + { + char* __res; + // LANG may set a default different from "C". + char* __env = getenv("LANG"); + if (!__env || strcmp(__env, "") == 0 || strcmp(__env, "C") == 0 + || strcmp(__env, "POSIX") == 0) + __res = strdup("C"); + else + __res = strdup(__env); + + // Scan the categories looking for the first one + // different from LANG. + size_t __i = 0; + if (strcmp(__res, "C") == 0) + for (__i = 0; + __i < _S_categories_size + _S_extra_categories_size; + ++__i) + { + __env = getenv(_S_categories[__i]); + if (__env && strcmp(__env, "") != 0 + && strcmp(__env, "C") != 0 + && strcmp(__env, "POSIX") != 0) + break; + } + else + for (__i = 0; + __i < _S_categories_size + _S_extra_categories_size; + ++__i) + { + __env = getenv(_S_categories[__i]); + if (__env && strcmp(__env, "") != 0 + && strcmp(__env, __res) != 0) + break; + } + + // If one is found, build the complete string of + // the form LC_CTYPE=xxx;LC_NUMERIC=yyy; and so on... + if (__i < _S_categories_size + _S_extra_categories_size) + { + string __str; + for (size_t __j = 0; __j < __i; ++__j) + { + __str += _S_categories[__j]; + __str += "="; + __str += __res; + __str += ";"; + } + __str += _S_categories[__i]; + __str += "="; + __str += __env; + __str += ";"; + __i++; + for (; __i < _S_categories_size + + _S_extra_categories_size; ++__i) + { + __env = getenv(_S_categories[__i]); + if (!__env || strcmp(__env, "") == 0) + { + __str += _S_categories[__i]; + __str += '='; + __str += __res; + __str += ';'; + } + else if (strcmp(__env, "C") == 0 + || strcmp(__env, "POSIX") == 0) + { + __str += _S_categories[__i]; + __str += "=C;"; + } + else + { + __str += _S_categories[__i]; + __str += "="; + __str += __env; + __str += ";"; + } + } + __str.erase(__str.end() - 1); + _M_impl = new _Impl(__str.c_str(), 1); + } + // ... otherwise either an additional instance of + // the "C" locale or LANG. + else if (strcmp(__res, "C") == 0) + (_M_impl = _S_classic)->_M_add_reference(); + else + _M_impl = new _Impl(__res, 1); + free(__res); + } + } } else __throw_runtime_error("attempt to create locale from NULL name"); *************** namespace std *** 222,227 **** --- 300,308 ---- locale::locale(const locale& __base, const locale& __add, category __cat) { _M_coalesce(__base, __add, __cat); } + locale::~locale() throw() + { _M_impl->_M_remove_reference(); } + bool locale::operator==(const locale& __rhs) const throw() { *************** namespace std *** 262,281 **** string locale::name() const { - // Need some kind of separator character. This one was pretty much - // arbitrarily chosen as to not conflict with glibc locales: the - // exact formatting is not set in stone. - const char __separator = '|'; - string __ret; if (_M_impl->_M_check_same_name()) __ret = _M_impl->_M_names[0]; else { ! for (size_t i = 0; i < _S_num_categories; ++i) { ! __ret += __separator; ! __ret += _M_impl->_M_names[i]; } } return __ret; --- 343,364 ---- string locale::name() const { string __ret; if (_M_impl->_M_check_same_name()) __ret = _M_impl->_M_names[0]; else { ! __ret += _S_categories[0]; ! __ret += "="; ! __ret += _M_impl->_M_names[0]; ! for (size_t __i = 1; ! __i < _S_categories_size + _S_extra_categories_size; ! ++__i) { ! __ret += ";"; ! __ret += _S_categories[__i]; ! __ret += "="; ! __ret += _M_impl->_M_names[__i]; } } return __ret; *************** namespace std *** 284,303 **** const locale& locale::classic() { if (!_S_classic) { - static _STL_mutex_lock __lock __STL_MUTEX_INITIALIZER; - _STL_auto_lock __auto(__lock); - try { // 26 Standard facets, 2 references. ! // One reference for _M_classic, one for _M_global ! facet** f = new(&facet_vec) facet*[_GLIBCPP_NUM_FACETS]; ! for (size_t __i = 0; __i < _GLIBCPP_NUM_FACETS; ++__i) ! f[__i] = 0; ! ! _S_classic = new (&c_locale_impl) _Impl(f, 2, true); _S_global = _S_classic; new (&c_locale) locale(_S_classic); } --- 367,382 ---- const locale& locale::classic() { + static _STL_mutex_lock __lock __STL_MUTEX_INITIALIZER; + _STL_auto_lock __auto(__lock); + if (!_S_classic) { try { // 26 Standard facets, 2 references. ! // One reference for _S_classic, one for _S_global ! _S_classic = new (&c_locale_impl) _Impl(0, 2, true); _S_global = _S_classic; new (&c_locale) locale(_S_classic); } *************** namespace std *** 314,319 **** --- 393,414 ---- return c_locale; } + void + locale::_M_coalesce(const locale& __base, const locale& __add, + category __cat) + { + __cat = _S_normalize_category(__cat); + _M_impl = new _Impl(*__base._M_impl, 1); + + try + { _M_impl->_M_replace_categories(__add._M_impl, __cat); } + catch (...) + { + _M_impl->_M_remove_reference(); + __throw_exception_again; + } + } + locale::category locale::_S_normalize_category(category __cat) { *************** namespace std *** 362,372 **** ~facet() { } locale::facet:: ! facet(size_t __refs) throw() : _M_references(__refs) ! { ! if (!_S_c_locale) ! _S_create_c_locale(_S_c_locale, "C"); ! } void locale::facet:: --- 457,464 ---- ~facet() { } locale::facet:: ! facet(size_t __refs) throw() : _M_references(__refs ? 1 : 0) ! { } void locale::facet:: *************** namespace std *** 377,383 **** locale::facet:: _M_remove_reference() throw() { ! if (__exchange_and_add(&_M_references, -1) == 0) { try { delete this; } --- 469,475 ---- locale::facet:: _M_remove_reference() throw() { ! if (__exchange_and_add(&_M_references, -1) == 1) { try { delete this; } *************** namespace std *** 389,485 **** locale::id::id() { } - // Definitions for static const data members of ctype_base. - const ctype_base::mask ctype_base::space; - const ctype_base::mask ctype_base::print; - const ctype_base::mask ctype_base::cntrl; - const ctype_base::mask ctype_base::upper; - const ctype_base::mask ctype_base::lower; - const ctype_base::mask ctype_base::alpha; - const ctype_base::mask ctype_base::digit; - const ctype_base::mask ctype_base::punct; - const ctype_base::mask ctype_base::xdigit; - const ctype_base::mask ctype_base::alnum; - const ctype_base::mask ctype_base::graph; - - // Platform-specific initialization code for ctype tables. - #include - - const size_t ctype::table_size; - - ctype::~ctype() - { - if (_M_c_locale_ctype != _S_c_locale) - _S_destroy_c_locale(_M_c_locale_ctype); - if (_M_del) - delete[] this->table(); - } - - // These are dummy placeholders as these virtual functions are never called. - bool - ctype::do_is(mask, char_type) const - { return false; } - - const char* - ctype::do_is(const char_type* __c, const char_type*, mask*) const - { return __c; } - - const char* - ctype::do_scan_is(mask, const char_type* __c, const char_type*) const - { return __c; } - - const char* - ctype::do_scan_not(mask, const char_type* __c, const char_type*) const - { return __c; } - - char - ctype::do_widen(char __c) const - { return __c; } - - const char* - ctype::do_widen(const char* __lo, const char* __hi, char* __dest) const - { - memcpy(__dest, __lo, __hi - __lo); - return __hi; - } - - char - ctype::do_narrow(char __c, char /*__dfault*/) const - { return __c; } - - const char* - ctype::do_narrow(const char* __lo, const char* __hi, - char /*__dfault*/, char* __dest) const - { - memcpy(__dest, __lo, __hi - __lo); - return __hi; - } - - #ifdef _GLIBCPP_USE_WCHAR_T - ctype::ctype(size_t __refs) - : __ctype_abstract_base(__refs) - { _M_c_locale_ctype = _S_c_locale; } - - ctype::ctype(__c_locale __cloc, size_t __refs) - : __ctype_abstract_base(__refs) - { _M_c_locale_ctype = _S_clone_c_locale(__cloc); } - - ctype::~ctype() - { - if (_M_c_locale_ctype != _S_c_locale) - _S_destroy_c_locale(_M_c_locale_ctype); - } - - template<> - ctype_byname::ctype_byname(const char* __s, size_t __refs) - : ctype(__refs) - { - if (_M_c_locale_ctype != _S_c_locale) - _S_destroy_c_locale(_M_c_locale_ctype); - _S_create_c_locale(_M_c_locale_ctype, __s); - } - #endif - // Definitions for static const data members of time_base template<> const char* --- 481,486 ---- *************** namespace std *** 503,528 **** const money_base::pattern money_base::_S_default_pattern = { {symbol, sign, none, value} }; - template<> - const ctype& - use_facet >(const locale& __loc) - { - size_t __i = ctype::id._M_id(); - const locale::_Impl* __tmp = __loc._M_impl; - return static_cast&>(*(__tmp->_M_facets[__i])); - } - - #ifdef _GLIBCPP_USE_WCHAR_T - template<> - const ctype& - use_facet >(const locale& __loc) - { - size_t __i = ctype::id._M_id(); - const locale::_Impl* __tmp = __loc._M_impl; - return static_cast&>(*(__tmp->_M_facets[__i])); - } - #endif - const char __num_base::_S_atoms[] = "0123456789eEabcdfABCDF"; bool --- 504,509 ---- diff -Nrc3pad gcc-3.2/libstdc++-v3/src/localename.cc gcc-3.2.1/libstdc++-v3/src/localename.cc *** gcc-3.2/libstdc++-v3/src/localename.cc Fri Jul 26 23:23:42 2002 --- gcc-3.2.1/libstdc++-v3/src/localename.cc Thu Oct 17 02:04:17 2002 *************** *** 30,38 **** #include #include ! namespace std { // Defined in globals.cc. extern std::ctype ctype_c; extern std::collate collate_c; extern numpunct numpunct_c; --- 30,43 ---- #include #include ! namespace __gnu_cxx { + using namespace std; + // Defined in globals.cc. + extern locale::facet** facet_vec; + extern char* facet_name[6 + _GLIBCPP_NUM_CATEGORIES]; + extern std::ctype ctype_c; extern std::collate collate_c; extern numpunct numpunct_c; *************** namespace std *** 63,68 **** --- 68,78 ---- extern time_put time_put_w; extern std::messages messages_w; #endif + } // namespace __gnu_cxx + + namespace std + { + using namespace __gnu_cxx; locale::_Impl:: ~_Impl() throw() *************** namespace std *** 71,76 **** --- 81,90 ---- if (_M_facets[__i]) _M_facets[__i]->_M_remove_reference(); delete [] _M_facets; + + for (size_t __i = 0; + __i < _S_categories_size + _S_extra_categories_size; ++__i) + delete [] _M_names[__i]; } // Clone existing _Impl object. *************** namespace std *** 95,108 **** if (_M_facets[__i]) _M_facets[__i]->_M_add_reference(); } ! for (size_t __i = 0; __i < _S_num_categories; ++__i) ! _M_names[__i] = __imp._M_names[__i]; } // Construct named _Impl. locale::_Impl:: _Impl(const char* __s, size_t __refs) ! : _M_references(__refs), _M_facets_size(_GLIBCPP_NUM_FACETS) // XXX { // Initialize the underlying locale model, which also checks // to see if the given name is valid. --- 109,127 ---- if (_M_facets[__i]) _M_facets[__i]->_M_add_reference(); } ! for (size_t __i = 0; ! __i < _S_categories_size + _S_extra_categories_size; ++__i) ! { ! char* __new = new char[strlen(__imp._M_names[__i]) + 1]; ! strcpy(__new, __imp._M_names[__i]); ! _M_names[__i] = __new; ! } } // Construct named _Impl. locale::_Impl:: _Impl(const char* __s, size_t __refs) ! : _M_references(__refs), _M_facets_size(_GLIBCPP_NUM_FACETS) { // Initialize the underlying locale model, which also checks // to see if the given name is valid. *************** namespace std *** 122,132 **** } // Name all the categories. ! for (size_t i = 0; i < _S_num_categories; ++i) ! _M_names[i] = __s; ! // Construct all standard facets and add them to _M_facets. ! _M_init_facet(new std::ctype(__cloc)); _M_init_facet(new codecvt); _M_init_facet(new numpunct(__cloc)); _M_init_facet(new num_get); --- 141,180 ---- } // Name all the categories. ! if (!strchr(__s, ';')) ! { ! size_t __len = strlen(__s) + 1; ! for (size_t __i = 0; ! __i < _S_categories_size + _S_extra_categories_size; ++__i) ! { ! _M_names[__i] = new char[__len]; ! strcpy(_M_names[__i], __s); ! } ! } ! else ! { ! char* __tmp = strdup(__s); ! __tmp[strlen(__tmp)] = ';'; ! strtok(__tmp, "=;"); ! for (size_t __i = 0; ! __i < _S_categories_size + _S_extra_categories_size - 1; ++__i) ! { ! char* __src = strtok(NULL, "=;"); ! char* __new = new char[strlen(__src) + 1]; ! strcpy(__new, __src); ! _M_names[__i] = __new; ! strtok(NULL, "=;"); ! } ! char* __src = strtok(NULL, "=;"); ! char* __new = new char[strlen(__src) + 1]; ! strcpy(__new, __src); ! _M_names[_S_categories_size + _S_extra_categories_size - 1] = __new; ! free(__tmp); ! } ! ! // Construct all standard facets and add them to _M_facets. ! _M_init_facet(new std::ctype(__cloc, 0, false)); _M_init_facet(new codecvt); _M_init_facet(new numpunct(__cloc)); _M_init_facet(new num_get); *************** namespace std *** 162,208 **** // Construct "C" _Impl. locale::_Impl:: ! _Impl(facet** __f, size_t __refs, bool) ! : _M_references(__refs), _M_facets(__f), _M_facets_size(_GLIBCPP_NUM_FACETS) { // Name all the categories. ! for (size_t i = 0; i < _S_num_categories; ++i) ! _M_names[i] = "C"; // This is needed as presently the C++ version of "C" locales // != data in the underlying locale model for __timepunct, // numpunct, and moneypunct. Also, the "C" locales must be // constructed in a way such that they are pre-allocated. ! _M_init_facet(new (&ctype_c) std::ctype); ! _M_init_facet(new (&codecvt_c) codecvt); ! _M_init_facet(new (&numpunct_c) numpunct); ! _M_init_facet(new (&num_get_c) num_get); ! _M_init_facet(new (&num_put_c) num_put); ! _M_init_facet(new (&collate_c) std::collate); ! _M_init_facet(new (&moneypunct_fc) moneypunct); ! _M_init_facet(new (&moneypunct_tc) moneypunct); ! _M_init_facet(new (&money_get_c) money_get); ! _M_init_facet(new (&money_put_c) money_put); ! _M_init_facet(new (&timepunct_c) __timepunct); ! _M_init_facet(new (&time_get_c) time_get); ! _M_init_facet(new (&time_put_c) time_put); ! _M_init_facet(new (&messages_c) std::messages); #ifdef _GLIBCPP_USE_WCHAR_T ! _M_init_facet(new (&ctype_w) std::ctype); ! _M_init_facet(new (&codecvt_w) codecvt); ! _M_init_facet(new (&numpunct_w) numpunct); ! _M_init_facet(new (&num_get_w) num_get); ! _M_init_facet(new (&num_put_w) num_put); ! _M_init_facet(new (&collate_w) std::collate); ! _M_init_facet(new (&moneypunct_fw) moneypunct); ! _M_init_facet(new (&moneypunct_tw) moneypunct); ! _M_init_facet(new (&money_get_w) money_get); ! _M_init_facet(new (&money_put_w) money_put); ! _M_init_facet(new (&timepunct_w) __timepunct); ! _M_init_facet(new (&time_get_w) time_get); ! _M_init_facet(new (&time_put_w) time_put); ! _M_init_facet(new (&messages_w) std::messages); ! #endif } void --- 210,270 ---- // Construct "C" _Impl. locale::_Impl:: ! _Impl(facet**, size_t __refs, bool) ! : _M_references(__refs), _M_facets_size(_GLIBCPP_NUM_FACETS) { + // Initialize the underlying locale model. + locale::facet::_S_create_c_locale(locale::facet::_S_c_locale, "C"); + + _M_facets = new(&facet_vec) facet*[_M_facets_size]; + for (size_t __i = 0; __i < _M_facets_size; ++__i) + _M_facets[__i] = 0; + // Name all the categories. ! for (size_t __i = 0; ! __i < _S_categories_size + _S_extra_categories_size; ++__i) ! { ! _M_names[__i] = new (&facet_name[__i]) char[2]; ! strcpy(_M_names[__i], "C"); ! } // This is needed as presently the C++ version of "C" locales // != data in the underlying locale model for __timepunct, // numpunct, and moneypunct. Also, the "C" locales must be // constructed in a way such that they are pre-allocated. ! // NB: Set locale::facets(ref) count to one so that each individual ! // facet is not destroyed when the locale (and thus locale::_Impl) is ! // destroyed. ! _M_init_facet(new (&ctype_c) std::ctype(0, false, 1)); ! _M_init_facet(new (&codecvt_c) codecvt(1)); ! _M_init_facet(new (&numpunct_c) numpunct(1)); ! _M_init_facet(new (&num_get_c) num_get(1)); ! _M_init_facet(new (&num_put_c) num_put(1)); ! _M_init_facet(new (&collate_c) std::collate(1)); ! _M_init_facet(new (&moneypunct_fc) moneypunct(1)); ! _M_init_facet(new (&moneypunct_tc) moneypunct(1)); ! _M_init_facet(new (&money_get_c) money_get(1)); ! _M_init_facet(new (&money_put_c) money_put(1)); ! _M_init_facet(new (&timepunct_c) __timepunct(1)); ! _M_init_facet(new (&time_get_c) time_get(1)); ! _M_init_facet(new (&time_put_c) time_put(1)); ! _M_init_facet(new (&messages_c) std::messages(1)); #ifdef _GLIBCPP_USE_WCHAR_T ! _M_init_facet(new (&ctype_w) std::ctype(1)); ! _M_init_facet(new (&codecvt_w) codecvt(1)); ! _M_init_facet(new (&numpunct_w) numpunct(1)); ! _M_init_facet(new (&num_get_w) num_get(1)); ! _M_init_facet(new (&num_put_w) num_put(1)); ! _M_init_facet(new (&collate_w) std::collate(1)); ! _M_init_facet(new (&moneypunct_fw) moneypunct(1)); ! _M_init_facet(new (&moneypunct_tw) moneypunct(1)); ! _M_init_facet(new (&money_get_w) money_get(1)); ! _M_init_facet(new (&money_put_w) money_put(1)); ! _M_init_facet(new (&timepunct_w) __timepunct(1)); ! _M_init_facet(new (&time_get_w) time_get(1)); ! _M_init_facet(new (&time_put_w) time_put(1)); ! _M_init_facet(new (&messages_w) std::messages(1)); ! #endif } void *************** namespace std *** 210,216 **** _M_replace_categories(const _Impl* __imp, category __cat) { category __mask; ! for (unsigned int __ix = 0; __ix < _S_num_categories; ++__ix) { __mask = 1 << __ix; if (__mask & __cat) --- 272,278 ---- _M_replace_categories(const _Impl* __imp, category __cat) { category __mask; ! for (size_t __ix = 0; __ix < _S_categories_size; ++__ix) { __mask = 1 << __ix; if (__mask & __cat) *************** namespace std *** 220,226 **** // If both have names, go ahead and mangle. if (strcmp(_M_names[__ix], "*") != 0 && strcmp(__imp->_M_names[__ix], "*") != 0) ! _M_names[__ix] = __imp->_M_names[__ix]; } } } --- 282,293 ---- // If both have names, go ahead and mangle. if (strcmp(_M_names[__ix], "*") != 0 && strcmp(__imp->_M_names[__ix], "*") != 0) ! { ! delete [] _M_names[__ix]; ! char* __new = new char[strlen(__imp->_M_names[__ix]) + 1]; ! strcpy(__new, __imp->_M_names[__ix]); ! _M_names[__ix] = __new; ! } } } } *************** namespace std *** 250,255 **** --- 317,324 ---- if (__fp) { size_t __index = __idp->_M_id(); + + // Check size of facet vector to ensure adequate room. if (__index > _M_facets_size - 1) { facet** __old = _M_facets; *************** namespace std *** 266,276 **** delete [] __old; } facet*& __fpr = _M_facets[__index]; if (__fpr) { // Replacing an existing facet. Order matters. - __fp->_M_add_reference(); __fpr->_M_remove_reference(); __fpr = __fp; } --- 335,345 ---- delete [] __old; } + __fp->_M_add_reference(); facet*& __fpr = _M_facets[__index]; if (__fpr) { // Replacing an existing facet. Order matters. __fpr->_M_remove_reference(); __fpr = __fp; } diff -Nrc3pad gcc-3.2/libstdc++-v3/src/misc-inst.cc gcc-3.2.1/libstdc++-v3/src/misc-inst.cc *** gcc-3.2/libstdc++-v3/src/misc-inst.cc Mon May 27 15:07:11 2002 --- gcc-3.2.1/libstdc++-v3/src/misc-inst.cc Mon Sep 9 20:58:40 2002 *************** namespace std *** 70,93 **** #if 1 // XXX ! // 2002-05-24 These are no longer needed and should be deleted. ! ! // algorithm ! typedef _Char_traits_match > char_match; ! ! template ! const char* ! find_if ! (const char *, const char *, char_match, random_access_iterator_tag); ! ! #ifdef _GLIBCPP_USE_WCHAR_T ! typedef _Char_traits_match > wchar_match; ! ! template const wchar_t* ! find_if ! (const wchar_t*, const wchar_t*, wchar_match, random_access_iterator_tag); ! #endif ! template string* __uninitialized_fill_n_aux --- 70,76 ---- #if 1 // XXX ! // 2002-05-24 These are no longer needed and should eventually be deleted. template string* __uninitialized_fill_n_aux diff -Nrc3pad gcc-3.2/libstdc++-v3/src/string-inst.cc gcc-3.2.1/libstdc++-v3/src/string-inst.cc *** gcc-3.2/libstdc++-v3/src/string-inst.cc Tue Apr 16 02:53:22 2002 --- gcc-3.2.1/libstdc++-v3/src/string-inst.cc Tue Nov 5 00:51:35 2002 *************** *** 22,28 **** // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate // templates or use macros or inline functions from this file, or you compile ! // this file and link it with other files to produce an executable, this// file does not by itself cause the resulting executable to be covered by // the GNU General Public License. This exception does not however // invalidate any other reasons why the executable file might be covered by // the GNU General Public License. --- 22,29 ---- // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate // templates or use macros or inline functions from this file, or you compile ! // this file and link it with other files to produce an executable, this ! // file does not by itself cause the resulting executable to be covered by // the GNU General Public License. This exception does not however // invalidate any other reasons why the executable file might be covered by // the GNU General Public License. *************** namespace std *** 48,53 **** --- 49,55 ---- template class basic_string; template S operator+(const C*, const S&); template S operator+(C, const S&); + template S operator+(const S&, const S&); } // namespace std namespace __gnu_cxx diff -Nrc3pad gcc-3.2/libstdc++-v3/src/strstream.cc gcc-3.2.1/libstdc++-v3/src/strstream.cc *** gcc-3.2/libstdc++-v3/src/strstream.cc Wed Aug 7 05:13:08 2002 --- gcc-3.2.1/libstdc++-v3/src/strstream.cc Fri Sep 13 01:21:42 2002 *************** *** 2,23 **** // Copyright (C) 2001, 2002 Free Software Foundation // ! // 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. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate --- 2,22 ---- // Copyright (C) 2001, 2002 Free Software Foundation // ! // This file is part of the GNU ISO C++ Library. This library is free ! // software; you can redistribute it and/or modify it under the ! // terms of the GNU General Public License as published by the ! // Free Software Foundation; either version 2, or (at your option) // any later version. ! ! // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. ! ! // You should have received a copy of the GNU General Public License along ! // with this library; see the file COPYING. If not, write to the Free ! // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ! // USA. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate diff -Nrc3pad gcc-3.2/libstdc++-v3/src/vterminate.cc gcc-3.2.1/libstdc++-v3/src/vterminate.cc *** gcc-3.2/libstdc++-v3/src/vterminate.cc Mon Apr 1 22:09:28 2002 --- gcc-3.2.1/libstdc++-v3/src/vterminate.cc Fri Sep 13 01:21:42 2002 *************** *** 2,23 **** // Copyright (C) 2001, 2002 Free Software Foundation // ! // 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. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate --- 2,22 ---- // Copyright (C) 2001, 2002 Free Software Foundation // ! // This file is part of the GNU ISO C++ Library. This library is free ! // software; you can redistribute it and/or modify it under the ! // terms of the GNU General Public License as published by the ! // Free Software Foundation; either version 2, or (at your option) // any later version. ! ! // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. ! ! // You should have received a copy of the GNU General Public License along ! // with this library; see the file COPYING. If not, write to the Free ! // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ! // USA. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc gcc-3.2.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc *** gcc-3.2/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc Tue Jun 4 19:03:49 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc Tue Oct 29 08:08:40 2002 *************** *** 22,27 **** --- 22,28 ---- #include #include + #include #include #include *************** void test04() *** 214,219 **** --- 215,229 ---- VERIFY( str02 == "onifotrop" ); } + // libstdc++/8347 + void test05() + { + bool test = true; + + std::vector empty; + std::string empty2(empty.begin(), empty.end()); + } + int main() { __set_testsuite_memlimit(); *************** int main() *** 221,225 **** --- 231,236 ---- test02(); test03(); test04(); + test05(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc gcc-3.2.1/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc *** gcc-3.2/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc Thu Aug 1 21:29:16 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc Thu Oct 17 02:04:18 2002 *************** void test01() *** 121,127 **** string str1, str2; // construct a locale object with the C facet ! const locale& loc01 = locale::classic(); // 1 // template locale(const locale& other, Facet* f) --- 121,127 ---- string str1, str2; // construct a locale object with the C facet ! const locale loc01 = locale::classic(); // 1 // template locale(const locale& other, Facet* f) *************** void test02() *** 310,315 **** --- 310,497 ---- VERIFY( loc_1 == loc_2 ); } + // libstdc++/7811 + void test03() + { + bool test = true; + #ifdef _GLIBCPP_HAVE_SETENV + const char* LC_ALL_orig = getenv("LC_ALL"); + if (!setenv("LC_ALL", "it_IT", 1)) + { + std::locale loc(""); + VERIFY( loc.name() == "it_IT" ); + setenv("LC_ALL", LC_ALL_orig ? LC_ALL_orig : "", 1); + } + #endif + } + + + // More tests for locale("") == POSIX locale::name. + void test04() + { + bool test = true; + using namespace std; + + #ifdef _GLIBCPP_HAVE_SETENV + + const char* LANG_orig = getenv("LANG") ? strdup(getenv("LANG")) : ""; + const char* LC_ALL_orig = getenv("LC_ALL") ? strdup(getenv("LC_ALL")) : ""; + const char* LC_CTYPE_orig = + getenv("LC_CTYPE") ? strdup(getenv("LC_CTYPE")) : ""; + const char* LC_NUMERIC_orig = + getenv("LC_NUMERIC") ? strdup(getenv("LC_NUMERIC")) : ""; + const char* LC_COLLATE_orig = + getenv("LC_COLLATE") ? strdup(getenv("LC_COLLATE")) : ""; + const char* LC_TIME_orig = + getenv("LC_TIME") ? strdup(getenv("LC_TIME")) : ""; + const char* LC_MONETARY_orig = + getenv("LC_MONETARY") ? strdup(getenv("LC_MONETARY")) : ""; + const char* LC_MESSAGES_orig = + getenv("LC_MESSAGES") ? strdup(getenv("LC_MESSAGES")) : ""; + #if _GLIBCPP_NUM_CATEGORIES + const char* LC_PAPER_orig = + getenv("LC_PAPER") ? strdup(getenv("LC_PAPER")) : ""; + const char* LC_NAME_orig = + getenv("LC_NAME") ? strdup(getenv("LC_NAME")) : ""; + const char* LC_ADDRESS_orig = + getenv("LC_ADDRESS") ? strdup(getenv("LC_ADDRESS")) : ""; + const char* LC_TELEPHONE_orig = + getenv("LC_TELEPHONE") ? strdup(getenv("LC_TELEPHONE")) : ""; + const char* LC_MEASUREMENT_orig = + getenv("LC_MEASUREMENT") ? strdup(getenv("LC_MEASUREMENT")) : ""; + const char* LC_IDENTIFICATION_orig = + getenv("LC_IDENTIFICATION") ? strdup(getenv("LC_IDENTIFICATION")) : ""; + #endif + + // Check that a "POSIX" LC_ALL is equivalent to "C". + if (!setenv("LC_ALL", "POSIX", 1)) + { + locale loc(""); + VERIFY( loc.name() == "C" ); + } + setenv("LC_ALL", "", 1); + + // Check that a "en_PH" LC_ALL is equivalent to "en_PH". + if (!setenv("LC_ALL", "en_PH", 1)) + { + locale loc(""); + VERIFY( loc.name() == "en_PH" ); + } + setenv("LC_ALL", "", 1); + + // Explicit check that LC_ALL sets regardless of LC_* and LANG. + if (!setenv("LANG", "es_MX", 1) && !setenv("LC_COLLATE", "de_DE", 1)) + { + if (!setenv("LC_ALL", "en_PH", 1)) + { + locale loc(""); + VERIFY( loc.name() == "en_PH" ); + } + setenv("LC_ALL", "", 1); + setenv("LANG", LANG_orig ? LANG_orig : "", 1); + setenv("LC_COLLATE", LC_COLLATE_orig ? LC_COLLATE_orig : "", 1); + } + + // NB: LANG checks all LC_* macro settings. As such, all LC_* macros + // must be cleared for these tests, and then restored. + setenv("LC_ALL", "", 1); + setenv("LC_CTYPE", "", 1); + setenv("LC_NUMERIC", "", 1); + setenv("LC_COLLATE", "", 1); + setenv("LC_TIME", "", 1); + setenv("LC_MONETARY", "", 1); + setenv("LC_MESSAGES", "", 1); + #if _GLIBCPP_NUM_CATEGORIES + setenv("LC_PAPER", "", 1); + setenv("LC_NAME", "", 1); + setenv("LC_ADDRESS", "", 1); + setenv("LC_TELEPHONE", "", 1); + setenv("LC_MEASUREMENT", "", 1); + setenv("LC_IDENTIFICATION", "", 1); + #endif + + // Check the default set by LANG. + if (!setenv("LANG", "fr_FR", 1)) + { + locale loc(""); + VERIFY( loc.name() == "fr_FR" ); + } + + // Check that a "POSIX" LANG is equivalent to "C". + if (!setenv("LANG", "POSIX", 1)) + { + locale loc(""); + VERIFY( loc.name() == "C" ); + } + + // Setting a category in the "C" default. + if (!setenv("LC_COLLATE", "de_DE", 1)) + { + locale loc(""); + + #if _GLIBCPP_NUM_CATEGORIES + VERIFY( loc.name() == "LC_CTYPE=C;LC_NUMERIC=C;LC_COLLATE=de_DE;" + "LC_TIME=C;LC_MONETARY=C;LC_MESSAGES=C;LC_PAPER=C;" + "LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;" + "LC_IDENTIFICATION=C" ); + #else + VERIFY( loc.name() == "LC_CTYPE=C;LC_NUMERIC=C;LC_COLLATE=de_DE;" + "LC_TIME=C;LC_MONETARY=C;LC_MESSAGES=C" ); + #endif + } + + // Changing the LANG default while LC_COLLATE is set. + if (!setenv("LANG", "fr_FR", 1)) + { + locale loc(""); + #if _GLIBCPP_NUM_CATEGORIES + VERIFY( loc.name() == "LC_CTYPE=fr_FR;LC_NUMERIC=fr_FR;" + "LC_COLLATE=de_DE;LC_TIME=fr_FR;LC_MONETARY=fr_FR;" + "LC_MESSAGES=fr_FR;LC_PAPER=fr_FR;LC_NAME=fr_FR;" + "LC_ADDRESS=fr_FR;LC_TELEPHONE=fr_FR;LC_MEASUREMENT=fr_FR;" + "LC_IDENTIFICATION=fr_FR" ); + #else + VERIFY( loc.name() == "LC_CTYPE=fr_FR;LC_NUMERIC=fr_FR;" + "LC_COLLATE=de_DE;LC_TIME=fr_FR;LC_MONETARY=fr_FR;" + "LC_MESSAGES=fr_FR" ); + #endif + } + + // Changing another (C only) category. + #if _GLIBCPP_NUM_CATEGORIES + if (!setenv("LC_IDENTIFICATION", "it_IT", 1)) + { + locale loc(""); + VERIFY( loc.name() == "LC_CTYPE=fr_FR;LC_NUMERIC=fr_FR;" + "LC_COLLATE=de_DE;LC_TIME=fr_FR;LC_MONETARY=fr_FR;" + "LC_MESSAGES=fr_FR;LC_PAPER=fr_FR;LC_NAME=fr_FR;" + "LC_ADDRESS=fr_FR;LC_TELEPHONE=fr_FR;LC_MEASUREMENT=fr_FR;" + "LC_IDENTIFICATION=it_IT" ); + } + #endif + + // Restore the environment. + setenv("LANG", LANG_orig ? LANG_orig : "", 1); + setenv("LC_ALL", LC_ALL_orig ? LC_ALL_orig : "", 1); + setenv("LC_CTYPE", LC_CTYPE_orig ? LC_CTYPE_orig : "", 1); + setenv("LC_NUMERIC", LC_NUMERIC_orig ? LC_NUMERIC_orig : "", 1); + setenv("LC_COLLATE", LC_COLLATE_orig ? LC_COLLATE_orig : "", 1); + setenv("LC_TIME", LC_TIME_orig ? LC_TIME_orig : "", 1); + setenv("LC_MONETARY", LC_MONETARY_orig ? LC_MONETARY_orig : "", 1); + setenv("LC_MESSAGES", LC_MESSAGES_orig ? LC_MESSAGES_orig : "", 1); + #if _GLIBCPP_NUM_CATEGORIES + setenv("LC_PAPER", LC_PAPER_orig ? LC_PAPER_orig : "", 1); + setenv("LC_NAME", LC_NAME_orig ? LC_NAME_orig : "", 1); + setenv("LC_ADDRESS", LC_ADDRESS_orig ? LC_ADDRESS_orig : "", 1); + setenv("LC_TELEPHONE", LC_TELEPHONE_orig ? LC_TELEPHONE_orig : "", 1); + setenv("LC_MEASUREMENT", LC_MEASUREMENT_orig ? LC_MEASUREMENT_orig : "", 1); + setenv("LC_IDENTIFICATION", + LC_IDENTIFICATION_orig ? LC_IDENTIFICATION_orig : "", 1); + #endif + + #endif + } + int main() { test00(); *************** int main() *** 319,324 **** --- 501,508 ---- #endif test02(); + test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/22_locale/facet.cc gcc-3.2.1/libstdc++-v3/testsuite/22_locale/facet.cc *** gcc-3.2/libstdc++-v3/testsuite/22_locale/facet.cc Sat Dec 15 07:05:04 2001 --- gcc-3.2.1/libstdc++-v3/testsuite/22_locale/facet.cc Thu Oct 17 02:04:18 2002 *************** *** 1,6 **** // 2000-08-31 Benjamin Kosnik ! // Copyright (C) 2000 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2000-08-31 Benjamin Kosnik ! // Copyright (C) 2000, 2002 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 25,30 **** --- 25,31 ---- #include #include #include + #include #include // 1 a class if a facet if it is publicly derived from another facet *************** void test01() *** 233,241 **** --- 234,302 ---- } } + // Static counter for use in checking ctors/dtors. + static std::size_t counter; + + class surf : public std::locale::facet + { + public: + static std::locale::id id; + surf(size_t refs = 0): std::locale::facet(refs) { ++counter; } + ~surf() { --counter; } + }; + + std::locale::id surf::id; + + typedef surf facet_type; + + void test02() + { + using namespace std; + bool test = true; + + // 1: Destroyed when out of scope. + VERIFY( counter == 0 ); + { + locale loc01(locale::classic(), new facet_type); + VERIFY( counter == 1 ); + } + VERIFY( counter == 0 ); + + // 2: Not destroyed when out of scope, deliberately leaked. + VERIFY( counter == 0 ); + { + // Default refs argument is zero. + locale loc02(locale::classic(), new facet_type(1)); + VERIFY( counter == 1 ); + } + VERIFY( counter == 1 ); + + // 3: Pathological. + counter = 0; + { + // Test bounds. + facet_type* f = new facet_type(numeric_limits::max()); + VERIFY( counter == 1 ); + // Add a reference. + locale loc01(locale::classic(), f); + { + // Add another reference... + locale loc02(locale::classic(), f); + } + VERIFY( counter == 1 ); + } + + // 4: Named locale should destroy facets when it goes out of scope. + // Not quite sure how to test for this w/o valgrind at the moment. + { + locale loc03("es_MX"); + } + } + int main () { test01(); + test02(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc gcc-3.2.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc *** gcc-3.2/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc Fri Jun 28 08:22:43 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc Wed Oct 23 15:47:17 2002 *************** void test01() *** 202,209 **** result1 = oss.str(); // No grouping characters. VERIFY( !char_traits::find(result1.c_str(), ! numpunct_de.decimal_point(), ! result1.size()) ); // Should contain an 'x'. VERIFY( result1.find('x') == 1 ); --- 202,209 ---- result1 = oss.str(); // No grouping characters. VERIFY( !char_traits::find(result1.c_str(), ! result1.size(), ! numpunct_de.decimal_point()) ); // Should contain an 'x'. VERIFY( result1.find('x') == 1 ); *************** void test04() *** 326,337 **** --- 326,375 ---- } } + // Make sure that, in a locale that expects grouping, when showbase + // is true, an hexadecimal or octal zero is correctly output (the case + // of zero is special since there is no 0x, 0 respectively, prefix) + void test05() + { + using namespace std; + bool test = true; + + // A locale that expects grouping. + locale loc_de("de_DE"); + + const string empty; + string result; + + ostringstream oss; + oss.imbue(loc_de); + const num_put& np = use_facet >(oss.getloc()); + + long l = 0; + + oss.str(empty); + oss.clear(); + oss.setf(ios::showbase); + oss.setf(ios::hex, ios::basefield); + np.put(oss.rdbuf(), oss, '+', l); + result = oss.str(); + VERIFY( result == "0" ); + + oss.str(empty); + oss.clear(); + oss.setf(ios::showbase); + oss.setf(ios::oct, ios::basefield); + np.put(oss.rdbuf(), oss, '+', l); + result = oss.str(); + VERIFY( result == "0" ); + } + int main() { test01(); test02(); test03(); test04(); + test05(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc gcc-3.2.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc *** gcc-3.2/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc Fri Jun 28 08:22:43 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc Wed Oct 23 15:47:17 2002 *************** void test01() *** 203,210 **** result1 = oss.str(); // No grouping characters. VERIFY( !char_traits::find(result1.c_str(), ! numpunct_de.decimal_point(), ! result1.size()) ); // Should contain an 'x'. VERIFY( result1.find(L'x') == 1 ); --- 203,210 ---- result1 = oss.str(); // No grouping characters. VERIFY( !char_traits::find(result1.c_str(), ! result1.size(), ! numpunct_de.decimal_point()) ); // Should contain an 'x'. VERIFY( result1.find(L'x') == 1 ); *************** void test04() *** 325,330 **** --- 325,367 ---- VERIFY( preLANG == postLANG ); } } + + // Make sure that, in a locale that expects grouping, when showbase + // is true, an hexadecimal or octal zero is correctly output (the case + // of zero is special since there is no 0x, 0 respectively, prefix) + void test05() + { + using namespace std; + bool test = true; + + // A locale that expects grouping. + locale loc_de("de_DE"); + + const wstring empty; + wstring result; + + wostringstream oss; + oss.imbue(loc_de); + const num_put& np = use_facet >(oss.getloc()); + + long l = 0; + + oss.str(empty); + oss.clear(); + oss.setf(ios::showbase); + oss.setf(ios::hex, ios::basefield); + np.put(oss.rdbuf(), oss, L'+', l); + result = oss.str(); + VERIFY( result == L"0" ); + + oss.str(empty); + oss.clear(); + oss.setf(ios::showbase); + oss.setf(ios::oct, ios::basefield); + np.put(oss.rdbuf(), oss, L'+', l); + result = oss.str(); + VERIFY( result == L"0" ); + } #endif int main() *************** int main() *** 334,339 **** --- 371,377 ---- test02(); test03(); test04(); + test05(); #endif return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/22_locale/static_members.cc gcc-3.2.1/libstdc++-v3/testsuite/22_locale/static_members.cc *** gcc-3.2/libstdc++-v3/testsuite/22_locale/static_members.cc Tue Aug 7 03:38:29 2001 --- gcc-3.2.1/libstdc++-v3/testsuite/22_locale/static_members.cc Thu Oct 17 02:04:18 2002 *************** *** 1,6 **** // 2000-09-13 Benjamin Kosnik ! // Copyright (C) 2000 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2000-09-13 Benjamin Kosnik ! // Copyright (C) 2000, 2002 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 22,27 **** --- 22,28 ---- #include // for mbstate_t #include + #include #include typedef std::codecvt ccodecvt; *************** class gnu_codecvt: public ccodecvt { }; *** 30,43 **** void test01() { using namespace std; - bool test = true; string str1, str2; ! // construct a locale object with the C facet ! const locale& loc01 = locale::classic(); ! // construct a locale object with the specialized facet. ! locale loc02(locale::classic(), new gnu_codecvt); VERIFY ( loc01 != loc02 ); VERIFY ( !(loc01 == loc02) ); --- 31,45 ---- void test01() { using namespace std; bool test = true; + string str1, str2; ! // Construct a locale object with the C facet. ! const locale loc01 = locale::classic(); ! ! // Construct a locale object with the specialized facet. ! locale loc02(locale::classic(), new gnu_codecvt); VERIFY ( loc01 != loc02 ); VERIFY ( !(loc01 == loc02) ); *************** void test01() *** 50,64 **** // global locale loc03; VERIFY ( loc03 == loc01); ! locale loc04 = locale::global(loc02); locale loc05; VERIFY (loc05 != loc03); VERIFY (loc05 == loc02); } int main () { test01(); return 0; } --- 52,194 ---- // global locale loc03; VERIFY ( loc03 == loc01); ! locale global_orig = locale::global(loc02); locale loc05; VERIFY (loc05 != loc03); VERIFY (loc05 == loc02); + + // Reset global settings. + locale::global(global_orig); + } + + // Sanity check locale::global(loc) and setlocale. + void test02() + { + using namespace std; + bool test = true; + + const string ph("en_PH"); + const string mx("es_MX"); + const char* orig = setlocale(LC_ALL, NULL); + const char* testph = setlocale(LC_ALL, ph.c_str()); + const char* testmx = setlocale(LC_ALL, mx.c_str()); + setlocale(LC_ALL, orig); + + // If the underlying locale doesn't support these names, setlocale + // won't be reset. Therefore, disable unless we know these specific + // named locales work. + if (testph && testmx) + { + const locale loc_ph(ph.c_str()); + const locale loc_mx(mx.c_str()); + + // Use setlocale between two calls to locale("") + const locale loc_env_1(""); + setlocale(LC_ALL, ph.c_str()); + const locale loc_env_2(""); + VERIFY( loc_env_1 == loc_env_2 ); + + // Change global locale. + locale global_orig = locale::global(loc_mx); + const char* lc_all_mx = setlocale(LC_ALL, NULL); + if (lc_all_mx) + { + cout << "lc_all_mx is " << lc_all_mx << endl; + VERIFY( mx == lc_all_mx ); + } + + // Restore global settings. + locale::global(global_orig); + } + } + + // Static counter for use in checking ctors/dtors. + static std::size_t counter; + + class surf : public std::locale::facet + { + public: + static std::locale::id id; + surf(size_t refs = 0): std::locale::facet(refs) { ++counter; } + ~surf() { --counter; } + }; + + std::locale::id surf::id; + + typedef surf facet_type; + + // Verify lifetimes of global objects. + void test03() + { + using namespace std; + bool test = true; + + string name; + locale global_orig; + // 1: Destroyed when out of scope. + { + { + { + VERIFY( counter == 0 ); + { + locale loc01(locale::classic(), new facet_type); + VERIFY( counter == 1 ); + global_orig = locale::global(loc01); + name = loc01.name(); + } + VERIFY( counter == 1 ); + locale loc02 = locale(); + // Weak, but it's something... + VERIFY( loc02.name() == name ); + } + VERIFY( counter == 1 ); + // NB: loc03 should be a copy of the previous global locale. + locale loc03 = locale::global(global_orig); + VERIFY( counter == 1 ); + VERIFY( loc03.name() == name ); + } + VERIFY( counter == 0 ); + locale loc04 = locale(); + VERIFY( loc04 == global_orig ); + } + + // 2: Not destroyed when out of scope, deliberately leaked. + { + { + { + VERIFY( counter == 0 ); + { + locale loc01(locale::classic(), new facet_type(1)); + VERIFY( counter == 1 ); + global_orig = locale::global(loc01); + name = loc01.name(); + } + VERIFY( counter == 1 ); + locale loc02 = locale(); + // Weak, but it's something... + VERIFY( loc02.name() == name ); + } + VERIFY( counter == 1 ); + // NB: loc03 should be a copy of the previous global locale. + locale loc03 = locale::global(global_orig); + VERIFY( counter == 1 ); + VERIFY( loc03.name() == name ); + } + VERIFY( counter == 1 ); + locale loc04 = locale(); + VERIFY( loc04 == global_orig ); + } + VERIFY( counter == 1 ); + + // Restore global settings. + locale::global(global_orig); } int main () { test01(); + test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/27_io/ios_base_type.cc gcc-3.2.1/libstdc++-v3/testsuite/27_io/ios_base_type.cc *** gcc-3.2/libstdc++-v3/testsuite/27_io/ios_base_type.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/testsuite/27_io/ios_base_type.cc Tue Nov 5 23:48:45 2002 *************** *** 0 **** --- 1,39 ---- + // Copyright (C) 2002 Free Software Foundation + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // 27.4.2.1 - Types [lib.ios.types] + + #include + + #include + + // libstdc++/7219 + // Annex D, deprecated. + void test01() + { + #if _GLIBCPP_DEPRECATED + std::ios_base::streampos spos; + std::ios_base::streamoff soff; + #endif + } + + int main(void) + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/27_io/istream_seeks.cc gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc *** gcc-3.2/libstdc++-v3/testsuite/27_io/istream_seeks.cc Fri Jun 28 08:22:45 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc Fri Nov 1 16:27:30 2002 *************** bool test01() *** 55,65 **** p4 = ifs2.tellg(); VERIFY( p3 == p4 ); - - #ifdef DEBUG_ASSERT - assert(test); - #endif - return test; } --- 55,60 ---- *************** void test04(void) *** 237,246 **** if01.peek(); pos02 = if01.tellg(); VERIFY( pos02 == pos01 ); - - #ifdef DEBUG_ASSERT - assert(test); - #endif } // stringstreams --- 232,237 ---- *************** void test05(void) *** 351,360 **** VERIFY( state01 == state02 ); pos06 = is03.tellg(); VERIFY( pos05 == pos06 ); ! #ifdef DEBUG_ASSERT ! assert(test); ! #endif } int main() --- 342,391 ---- VERIFY( state01 == state02 ); pos06 = is03.tellg(); VERIFY( pos05 == pos06 ); + } ! // libstdc++/8348 ! void test06(void) ! { ! using namespace std; ! bool test = true; ! string num1("555"); ! ! // tellg ! { ! istringstream iss(num1); ! istream::pos_type pos1 = iss.tellg(); ! int asNum = 0; ! iss >> asNum; ! VERIFY( test = iss.eof() ); ! VERIFY( test = !iss.fail() ); ! iss.tellg(); ! VERIFY( test = !iss.fail() ); ! } ! ! // seekg ! { ! istringstream iss(num1); ! istream::pos_type pos1 = iss.tellg(); ! int asNum = 0; ! iss >> asNum; ! VERIFY( test = iss.eof() ); ! VERIFY( test = !iss.fail() ); ! iss.seekg(0, ios_base::beg); ! VERIFY( test = !iss.fail() ); ! } ! ! // seekg ! { ! istringstream iss(num1); ! istream::pos_type pos1 = iss.tellg(); ! int asNum = 0; ! iss >> asNum; ! VERIFY( test = iss.eof() ); ! VERIFY( test = !iss.fail() ); ! iss.seekg(pos1); ! VERIFY( test = !iss.fail() ); ! } } int main() *************** int main() *** 366,371 **** --- 397,404 ---- test04(); test05(); + + test06(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/27_io/istream_unformatted.cc gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_unformatted.cc *** gcc-3.2/libstdc++-v3/testsuite/27_io/istream_unformatted.cc Fri Jul 26 23:23:44 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/27_io/istream_unformatted.cc Wed Nov 6 00:08:37 2002 *************** test10() *** 551,556 **** --- 551,575 ---- VERIFY( test ); } + + // libstdc++/8258 + class mybuf : public std::basic_streambuf + { }; + + void test11() + { + bool test = true; + using namespace std; + char arr[10]; + mybuf sbuf; + basic_istream > istr(&sbuf); + + VERIFY(istr.rdstate() == ios_base::goodbit); + VERIFY(istr.readsome(arr, 10) == 0); + VERIFY(istr.rdstate() == ios_base::goodbit); + } + + int main() { *************** main() *** 564,569 **** test08(); test09(); test10(); ! return 0; } --- 583,588 ---- test08(); test09(); test10(); ! test11(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc gcc-3.2.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc *** gcc-3.2/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc Fri May 17 11:43:43 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc Thu Aug 15 22:25:10 2002 *************** *** 66,72 **** #include #include #include ! #include // Include iostream last, just to make is as difficult as possible to // properly initialize the standard iostream objects. --- 66,73 ---- #include #include #include ! //#include ! #define VERIFY(x) x // Include iostream last, just to make is as difficult as possible to // properly initialize the standard iostream objects. *************** void test03() *** 116,134 **** // Interactive test, to be exercised as follows: // assign stderr to stdout in shell command line, // pipe stdout to cat process and/or redirect stdout to file. ! // "hello fine world\n" should be written to stdout in proper order. ! // This is a version of the scott snyder test taken from: ! // http://gcc.gnu.org/ml/libstdc++/1999-q4/msg00108.html void test04() { using namespace std; cout << "hello "; ! cout.flush (); cerr << "fine "; ! cerr.flush (); cout << "world" << endl; ! cout.flush (); } // Interactive test, to be exercised as follows: --- 117,136 ---- // Interactive test, to be exercised as follows: // assign stderr to stdout in shell command line, // pipe stdout to cat process and/or redirect stdout to file. ! // a.out >& output ! // "hello fine world\n" should be written to stdout, and output, in ! // proper order. This is a version of the scott snyder test taken ! // from: http://gcc.gnu.org/ml/libstdc++/1999-q4/msg00108.html void test04() { using namespace std; cout << "hello "; ! cout.flush(); cerr << "fine "; ! cerr.flush(); cout << "world" << endl; ! cout.flush(); } // Interactive test, to be exercised as follows: *************** void test04() *** 138,144 **** // depending upon buffering mode enforced. void test05() { ! std::cout << "hello" << ' ' << "world" <> s; --- 140,146 ---- // depending upon buffering mode enforced. void test05() { ! std::cout << "hello" << ' ' << "world" << std::endl; std::cout << "Enter your name: "; std::string s; std::cin >> s; *************** void test06() *** 169,175 **** void test07() { bool test = true; ! std::cout << "Please, enter 'test':"; std::string s; std::getline(std::cin, s, '\n'); VERIFY( s == "test" ); --- 171,177 ---- void test07() { bool test = true; ! std::cout << "Enter 'test':"; std::string s; std::getline(std::cin, s, '\n'); VERIFY( s == "test" ); *************** void test08() *** 188,197 **** void test09() { bool test = true; ! std::cout << "Enter name: "; std::cin.ignore(2048, '\n'); } int main() { --- 190,210 ---- void test09() { bool test = true; ! std::cout << "Enter favorite beach: "; std::cin.ignore(2048, '\n'); } + // http://gcc.gnu.org/ml/libstdc++/2002-08/msg00060.html + // Should only have to hit enter once. + void + test10() + { + using namespace std; + cout << "Press ENTER once\n"; + cin.ignore(1); + cout << "_M_gcount: "<< cin.gcount() << endl; + } + int main() { *************** main() *** 205,209 **** --- 218,223 ---- // test07(); // test08(); // test09(); + // test10(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc gcc-3.2.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc *** gcc-3.2/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc Fri May 24 15:57:47 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc Fri Oct 11 08:15:58 2002 *************** void test04() *** 149,154 **** --- 149,247 ---- VERIFY( test ); } + + class test_buffer_1 : public std::streambuf + { + public: + test_buffer_1(const std::string& s) : str(s), it(str.begin()) { } + + protected: + virtual int underflow() { return (it != str.end() ? *it : EOF); } + virtual int uflow() { return (it != str.end() ? *it++ : EOF); } + + private: + const std::string str; + std::string::const_iterator it; + }; + + + class test_buffer_2 : public std::streambuf + { + public: + test_buffer_2(const std::string& s) : str(s), it(str.begin()) { } + + protected: + virtual int underflow() { return (it != str.end() ? *it : EOF); } + virtual int uflow() { return (it != str.end() ? *it++ : EOF); } + virtual std::streamsize showmanyc() { return std::distance(it, str.end()); } + private: + const std::string str; + std::string::const_iterator it; + }; + + + class test_buffer_3 : public std::streambuf + { + public: + test_buffer_3(const std::string& s) : str(s), it(str.begin()) { } + + protected: + virtual int underflow() { return (it != str.end() ? *it : EOF); } + virtual int uflow() { return (it != str.end() ? *it++ : EOF); } + virtual std::streamsize showmanyc() + { + std::streamsize ret = std::distance(it, str.end()); + return ret > 0 ? ret : -1; + } + private: + const std::string str; + std::string::const_iterator it; + }; + + + void test(const std::string& str, std::streambuf& buf) + { + bool test = true; + + std::ostringstream out; + std::istream in(&buf); + + out << in.rdbuf(); + + if (out.str() != str) + VERIFY( false ); + } + + // libstdc++/6745 + // libstdc++/8071 + // libstdc++/8127 + // Jonathan Lennox + void test05() + { + std::ostringstream out_1, out_2, out_3, out_4; + + std::string string_a("Hello, world!"); + std::string string_b(""); + + test_buffer_1 buf1a(string_a); + test_buffer_1 buf1b(string_b); + + test_buffer_2 buf2a(string_a); + test_buffer_2 buf2b(string_b); + + test_buffer_3 buf3a(string_a); + test_buffer_3 buf3b(string_b); + + test(string_a, buf1a); + test(string_b, buf1b); + + test(string_a, buf2a); + test(string_b, buf2b); + + test(string_a, buf3a); + test(string_b, buf3b); + } + int main() { *************** main() *** 156,161 **** test02(); test03(); test04(); ! return 0; } --- 249,255 ---- test02(); test03(); test04(); ! ! test05(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/27_io/stringstream_members.cc gcc-3.2.1/libstdc++-v3/testsuite/27_io/stringstream_members.cc *** gcc-3.2/libstdc++-v3/testsuite/27_io/stringstream_members.cc Fri Jul 26 23:23:43 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/27_io/stringstream_members.cc Tue Nov 5 23:35:40 2002 *************** test03() *** 177,186 **** --- 177,202 ---- std::stringstream ss2(str3, std::ios_base::in|std::ios_base::out); } + // libstdc++/8466 + void test04() + { + bool test = true; + + const char* strlit00 = "orvieto"; + const std::string str00 = strlit00; + + std::ostringstream oss; + + oss.str(str00); + oss << "cortona"; + VERIFY( str00 == strlit00 ); + } + int main() { test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/Makefile.am gcc-3.2.1/libstdc++-v3/testsuite/Makefile.am *** gcc-3.2/libstdc++-v3/testsuite/Makefile.am Mon May 14 01:15:35 2001 --- gcc-3.2.1/libstdc++-v3/testsuite/Makefile.am Fri Sep 6 02:37:44 2002 *************** *** 1,6 **** ## Makefile for the testsuite subdirectory of the GNU C++ Standard library. ## ! ## Copyright (C) 2001 Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## Process this file with automake to produce Makefile.in. --- 1,6 ---- ## Makefile for the testsuite subdirectory of the GNU C++ Standard library. ## ! ## Copyright (C) 2001, 2002 Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## Process this file with automake to produce Makefile.in. *************** *** 21,27 **** ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. ! AUTOMAKE_OPTIONS = foreign dejagnu DEJATOOL = libstdc++-v3 --- 21,27 ---- ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. ! AUTOMAKE_OPTIONS = cygnus dejagnu DEJATOOL = libstdc++-v3 *************** RUNTEST = `if [ -f @glibcpp_srcdir@/../d *** 35,37 **** --- 35,58 ---- RUNTESTFLAGS = + ## CXX is actually a "C" compiler. These are real C++ programs. + ## Do the same thing as `testsuite_flags --build-cxx` + CXX_fake = @glibcpp_CXX@ + CXX=`echo $(CXX_fake) | sed 's/xgcc/g++/g'` + CXXLINK = \ + LD_RUN_PATH=${LD_RUN_PATH:+$LD_RUN_PATH:}${glibcpp_builddir}/src/.libs\ + $(LIBTOOL) --tag=CXX --mode=link $(CXX) \ + $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ + + INCLUDES = \ + -nostdinc++ \ + @GLIBCPP_INCLUDES@ @LIBSUPCXX_INCLUDES@ @TOPLEVEL_INCLUDES@ + + ## Build support utilities. + ## Only build this as native, as need to find startup files and libc to link. + if GLIBCPP_BUILD_ABI_CHECK + noinst_PROGRAMS = abi_check + else + noinst_PROGRAMS = + endif + abi_check_SOURCES = abi_check.cc diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/Makefile.in gcc-3.2.1/libstdc++-v3/testsuite/Makefile.in *** gcc-3.2/libstdc++-v3/testsuite/Makefile.in Fri Jun 28 08:22:41 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/Makefile.in Fri Sep 13 01:21:42 2002 *************** CMESSAGES_H = @CMESSAGES_H@ *** 76,82 **** CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ CSTDIO_H = @CSTDIO_H@ - CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ DEBUG_FLAGS = @DEBUG_FLAGS@ --- 76,81 ---- *************** USE_NLS = @USE_NLS@ *** 112,117 **** --- 111,117 ---- VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ WERROR = @WERROR@ + baseline_file = @baseline_file@ check_msgfmt = @check_msgfmt@ enable_shared = @enable_shared@ enable_static = @enable_static@ *************** libio_la = @libio_la@ *** 132,138 **** libtool_VERSION = @libtool_VERSION@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = foreign dejagnu DEJATOOL = libstdc++-v3 --- 132,138 ---- libtool_VERSION = @libtool_VERSION@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = cygnus dejagnu DEJATOOL = libstdc++-v3 *************** RUNTEST = `if [ -f @glibcpp_srcdir@/../d *** 147,155 **** --- 147,187 ---- RUNTESTFLAGS = + + CXX_fake = @glibcpp_CXX@ + CXX = `echo $(CXX_fake) | sed 's/xgcc/g++/g'` + CXXLINK = \ + LD_RUN_PATH=${LD_RUN_PATH:+$LD_RUN_PATH:}${glibcpp_builddir}/src/.libs\ + $(LIBTOOL) --tag=CXX --mode=link $(CXX) \ + $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ + + + INCLUDES = \ + -nostdinc++ \ + @GLIBCPP_INCLUDES@ @LIBSUPCXX_INCLUDES@ @TOPLEVEL_INCLUDES@ + + @GLIBCPP_BUILD_ABI_CHECK_TRUE@noinst_PROGRAMS = @GLIBCPP_BUILD_ABI_CHECK_TRUE@abi_check + @GLIBCPP_BUILD_ABI_CHECK_FALSE@noinst_PROGRAMS = + abi_check_SOURCES = abi_check.cc mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = + @GLIBCPP_BUILD_ABI_CHECK_FALSE@noinst_PROGRAMS = + PROGRAMS = $(noinst_PROGRAMS) + + + DEFS = @DEFS@ -I. -I$(srcdir) -I.. + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ + LIBS = @LIBS@ + abi_check_OBJECTS = abi_check.$(OBJEXT) + abi_check_LDADD = $(LDADD) + abi_check_DEPENDENCIES = + abi_check_LDFLAGS = + CXXFLAGS = @CXXFLAGS@ + CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) + LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) + CXXLD = $(CXX) DIST_COMMON = README Makefile.am Makefile.in *************** DISTFILES = $(DIST_COMMON) $(SOURCES) $( *** 157,164 **** --- 189,200 ---- TAR = gtar GZIP_ENV = --best + SOURCES = $(abi_check_SOURCES) + OBJECTS = $(abi_check_OBJECTS) + all: all-redirect .SUFFIXES: + .SUFFIXES: .S .c .cc .lo .o .obj .s $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --cygnus testsuite/Makefile *************** Makefile: $(srcdir)/Makefile.in $(top_b *** 166,174 **** cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status tags: TAGS - TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) --- 202,299 ---- cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + mostlyclean-noinstPROGRAMS: + + clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) + + distclean-noinstPROGRAMS: + + maintainer-clean-noinstPROGRAMS: + + .c.o: + $(COMPILE) -c $< + + # FIXME: We should only use cygpath when building on Windows, + # and only if it is available. + .c.obj: + $(COMPILE) -c `cygpath -w $<` + + .s.o: + $(COMPILE) -c $< + + .S.o: + $(COMPILE) -c $< + + mostlyclean-compile: + -rm -f *.o core *.core + -rm -f *.$(OBJEXT) + + clean-compile: + + distclean-compile: + -rm -f *.tab.c + + maintainer-clean-compile: + + .c.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + + .s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + + .S.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + + mostlyclean-libtool: + -rm -f *.lo + + clean-libtool: + -rm -rf .libs _libs + + distclean-libtool: + + maintainer-clean-libtool: + + abi_check$(EXEEXT): $(abi_check_OBJECTS) $(abi_check_DEPENDENCIES) + @rm -f abi_check$(EXEEXT) + $(CXXLINK) $(abi_check_LDFLAGS) $(abi_check_OBJECTS) $(abi_check_LDADD) $(LIBS) + .cc.o: + $(CXXCOMPILE) -c $< + .cc.obj: + $(CXXCOMPILE) -c `cygpath -w $<` + .cc.lo: + $(LTCXXCOMPILE) -c $< + tags: TAGS + ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + + TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + + mostlyclean-tags: + + clean-tags: + + distclean-tags: + -rm -f TAGS ID + + maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) *************** install-am: all-am *** 241,247 **** install: install-am uninstall-am: uninstall: uninstall-am ! all-am: Makefile all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install --- 366,372 ---- install: install-am uninstall-am: uninstall: uninstall-am ! all-am: Makefile $(PROGRAMS) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install *************** distclean-generic: *** 257,287 **** -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: ! mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am ! clean-am: clean-generic mostlyclean-am clean: clean-am ! distclean-am: distclean-generic clean-am -rm -f libtool distclean: distclean-am ! maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am ! .PHONY: tags distdir check-DEJAGNU info-am info dvi-am dvi check \ ! check-am installcheck-am installcheck install-info-am install-info \ ! install-exec-am install-exec install-data-am install-data install-am \ ! install uninstall-am uninstall all-redirect all-am all installdirs \ ! mostlyclean-generic distclean-generic clean-generic \ ! maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. --- 382,426 ---- -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: ! mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \ ! mostlyclean-libtool mostlyclean-tags \ ! mostlyclean-generic mostlyclean: mostlyclean-am ! clean-am: clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \ ! clean-generic mostlyclean-am clean: clean-am ! distclean-am: distclean-noinstPROGRAMS distclean-compile \ ! distclean-libtool distclean-tags distclean-generic \ ! clean-am -rm -f libtool distclean: distclean-am ! maintainer-clean-am: maintainer-clean-noinstPROGRAMS \ ! maintainer-clean-compile maintainer-clean-libtool \ ! maintainer-clean-tags maintainer-clean-generic \ ! distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am ! .PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \ ! clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \ ! mostlyclean-compile distclean-compile clean-compile \ ! maintainer-clean-compile mostlyclean-libtool distclean-libtool \ ! clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ ! distclean-tags clean-tags maintainer-clean-tags distdir check-DEJAGNU \ ! info-am info dvi-am dvi check check-am installcheck-am installcheck \ ! install-info-am install-info install-exec-am install-exec \ ! install-data-am install-data install-am install uninstall-am uninstall \ ! all-redirect all-am all installdirs mostlyclean-generic \ ! distclean-generic clean-generic maintainer-clean-generic clean \ ! mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/abi_check.cc gcc-3.2.1/libstdc++-v3/testsuite/abi_check.cc *** gcc-3.2/libstdc++-v3/testsuite/abi_check.cc Thu Jan 1 00:00:00 1970 --- gcc-3.2.1/libstdc++-v3/testsuite/abi_check.cc Thu Nov 7 00:24:48 2002 *************** *** 0 **** --- 1,411 ---- + // Utility for libstdc++ ABI analysis -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // Benjamin Kosnik + // Blame subsequent hacks on Loren J. Rittle , Phil + // Edwards , and a cast of dozens at libstdc++@gcc.gnu.org. + + #include + #include + #include + #include + #include + #include + #include + #include // for system(3) + #include // for access(2) + + struct symbol_info + { + enum category { none, function, object, error }; + category type; + std::string name; + std::string demangled_name; + int size; + std::string version_name; + + symbol_info() : type(none), size(0) { } + + symbol_info(const symbol_info& other) + : type(other.type), name(other.name), demangled_name(other.demangled_name), + size(other.size), version_name(other.version_name) { } + }; + + namespace __gnu_cxx + { + using namespace std; + + template<> + struct hash + { + size_t operator()(const string& s) const + { + const collate& c = use_facet >(locale::classic()); + return c.hash(s.c_str(), s.c_str() + s.size()); + } + }; + } + + typedef std::deque symbol_names; + typedef __gnu_cxx::hash_map symbol_infos; + + bool + check_compatible(const symbol_info& lhs, const symbol_info& rhs, + bool verbose = false) + { + using namespace std; + bool ret = true; + const char tab = '\t'; + + // Check to see if symbol_infos are compatible. + if (lhs.type != rhs.type) + { + ret = false; + if (verbose) + { + cout << tab << "incompatible types" << endl; + } + } + + if (lhs.name != rhs.name) + { + ret = false; + if (verbose) + { + cout << tab << "incompatible names" << endl; + } + } + + if (lhs.size != rhs.size) + { + ret = false; + if (verbose) + { + cout << tab << "incompatible sizes" << endl; + cout << tab << lhs.size << endl; + cout << tab << rhs.size << endl; + } + } + + if (lhs.version_name != rhs.version_name) + { + ret = false; + if (verbose) + { + cout << tab << "incompatible versions" << endl; + cout << tab << lhs.version_name << endl; + cout << tab << rhs.version_name << endl; + } + } + + if (verbose) + cout << endl; + + return ret; + } + + const char* + demangle(const std::string& mangled) + { + const char* name; + if (mangled[0] != '_' && mangled[1] != 'Z') + { + // This is not a mangled symbol, thus has "C" linkage. + name = mangled.c_str(); + } + else + { + // Use __cxa_demangle to demangle. + int status = 0; + name = abi::__cxa_demangle(mangled.c_str(), 0, 0, &status); + if (!name) + { + switch (status) + { + case 0: + name = "error code = 0: success"; + break; + case -1: + name = "error code = -1: memory allocation failure"; + break; + case -2: + name = "error code = -2: invalid mangled name"; + break; + case -3: + name = "error code = -3: invalid arguments"; + break; + default: + name = "error code unknown - who knows what happened"; + } + } + } + return name; + } + + void + line_to_symbol_info(std::string& input, symbol_info& output) + { + using namespace std; + const char delim = ':'; + const char version_delim = '@'; + const string::size_type npos = string::npos; + string::size_type n = 0; + + // Set the type. + if (input.find("FUNC") == 0) + output.type = symbol_info::function; + else if (input.find("OBJECT") == 0) + output.type = symbol_info::object; + else + output.type = symbol_info::error; + n = input.find_first_of(delim); + if (n != npos) + input.erase(input.begin(), input.begin() + n + 1); + + // Iff object, get size info. + if (output.type == symbol_info::object) + { + n = input.find_first_of(delim); + if (n != npos) + { + string size(input.begin(), input.begin() + n); + istringstream iss(size); + int x; + iss >> x; + if (!iss.fail()) + output.size = x; + input.erase(input.begin(), input.begin() + n + 1); + } + } + + // Set the name. + n = input.find_first_of(version_delim); + if (n != npos) + { + // Found version string. + output.name = string(input.begin(), input.begin() + n); + n = input.find_last_of(version_delim); + input.erase(input.begin(), input.begin() + n + 1); + + // Set version name. + output.version_name = input; + } + else + { + // No versioning info. + output.name = string(input.begin(), input.end()); + input.erase(input.begin(), input.end()); + } + + // Set the demangled name. + output.demangled_name = demangle(output.name); + } + + void + create_symbol_data(const char* file, symbol_infos& symbols, + symbol_names& names) + { + // Parse list of symbols in file into vectors of symbol_info. + // For 3.2.0 on x86/linux, this usually is + // 947 non-weak symbols + // 2084 weak symbols + using namespace std; + ifstream ifs(file); + if (ifs.is_open()) + { + // Organize input into container of symbol_info objects. + const string empty; + string line = empty; + while (getline(ifs, line).good()) + { + symbol_info symbol; + line_to_symbol_info(line, symbol); + symbols[symbol.name] = symbol; + names.push_back(symbol.name); + line = empty; + } + } + } + + void + report_symbol_info(const symbol_info& symbol, std::size_t n, bool ret = true) + { + using namespace std; + const char tab = '\t'; + cout << tab << n << endl; + cout << tab << "symbol"<< endl; + cout << tab << symbol.name << endl; + + // Add any other information to display here. + cout << tab << "demangled symbol"<< endl; + cout << tab << symbol.demangled_name << endl; + + if (ret) + cout << endl; + } + + + int + main(int argc, char** argv) + { + using namespace std; + + // Get arguments. (Heading towards getopt_long, I can feel it.) + string argv1; + if (argc < 4 || (string("--help") == (argv1 = argv[1]))) + { + cerr << "Usage: abi_check --check cur baseline\n" + " --help\n\n" + "Where CUR is a file containing the current results from\n" + "extract_symvers, and BASELINE is one from config/abi.\n" + << endl; + exit(1); + } + + + // Quick sanity/setup check for arguments. + const char* test_file = argv[2]; + const char* baseline_file = argv[3]; + if (access(test_file, R_OK) != 0) + { + cerr << "Cannot read symbols file " << test_file + << ", did you forget to build first?" << endl; + exit(1); + } + if (access(baseline_file, R_OK) != 0) + { + cerr << "Cannot read baseline file " << baseline_file << endl; + exit(1); + } + + // Input both lists of symbols into container. + symbol_infos baseline_symbols; + symbol_names baseline_names; + symbol_infos test_symbols; + symbol_names test_names; + create_symbol_data(baseline_file, baseline_symbols, baseline_names); + create_symbol_data(test_file, test_symbols, test_names); + + // Sanity check results. + const symbol_names::size_type baseline_size = baseline_names.size(); + const symbol_names::size_type test_size = test_names.size(); + if (!baseline_size || !test_size) + { + cerr << "Problems parsing the list of exported symbols." << endl; + exit(2); + } + + #ifndef _ARCH_PWR + // Sort out names. + // Assuming baseline_names, test_names are both unique w/ no duplicates. + // + // The names added to missing_names are baseline_names not found in + // test_names + // -> symbols that have been deleted. + // + // The names added to added_names are test_names are names not in + // baseline_names + // -> symbols that have been added. + symbol_names shared_names; + symbol_names missing_names; + symbol_names added_names = test_names; + for (size_t i = 0; i < baseline_size; ++i) + { + string what(baseline_names[i]); + symbol_names::iterator end = added_names.end(); + symbol_names::iterator it = find(added_names.begin(), end, what); + if (it != end) + { + // Found. + shared_names.push_back(what); + added_names.erase(it); + } + else + missing_names.push_back(what); + } + + // Check shared names for compatibility. + typedef pair symbol_pair; + vector incompatible; + for (size_t i = 0; i < shared_names.size(); ++i) + { + symbol_info base = baseline_symbols[shared_names[i]]; + symbol_info test = test_symbols[shared_names[i]]; + if (!check_compatible(base, test)) + incompatible.push_back(symbol_pair(base, test)); + } + + // Check added names for compatibility. + for (size_t i = 0; i < added_names.size(); ++i) + { + vector compatible_versions; + compatible_versions.push_back("GLIBCPP_3.2.1"); + + symbol_info test = test_symbols[added_names[i]]; + vector::iterator end = compatible_versions.end(); + + // Check version names for compatibility... + vector::iterator it1 = find(compatible_versions.begin(), end, + test.version_name); + + // Check for weak label. + vector::iterator it2 = find(compatible_versions.begin(), end, + test.name); + + if (it1 == end && it2 == end) + { + incompatible.push_back(symbol_pair(test, test)); + cout << test.version_name << endl; + } + } + + // Report results. + cout << added_names.size() << " added symbols " << endl; + for (size_t j = 0; j < added_names.size() ; ++j) + report_symbol_info(test_symbols[added_names[j]], j + 1); + + cout << missing_names.size() << " missing symbols " << endl; + for (size_t j = 0; j < missing_names.size() ; ++j) + report_symbol_info(baseline_symbols[missing_names[j]], j + 1); + + cout << incompatible.size() << " incompatible symbols " << endl; + for (size_t j = 0; j < incompatible.size() ; ++j) + { + // First, report name. + const symbol_info& base = incompatible[j].first; + const symbol_info& test = incompatible[j].second; + report_symbol_info(test, j + 1, false); + + // Second, report reason or reasons incompatible. + check_compatible(base, test, true); + } + #endif + + return 0; + } diff -Nrc3pad gcc-3.2/libstdc++-v3/testsuite/testsuite_hooks.h gcc-3.2.1/libstdc++-v3/testsuite/testsuite_hooks.h *** gcc-3.2/libstdc++-v3/testsuite/testsuite_hooks.h Thu Aug 1 21:29:17 2002 --- gcc-3.2.1/libstdc++-v3/testsuite/testsuite_hooks.h Fri Nov 1 04:54:04 2002 *************** void *** 85,91 **** __set_testsuite_memlimit(float __size = MEMLIMIT_MB) { struct rlimit r; ! rlim_t limit = (rlim_t)(__size * 1048576); // Heap size, seems to be common. #if _GLIBCPP_HAVE_MEMLIMIT_DATA --- 85,93 ---- __set_testsuite_memlimit(float __size = MEMLIMIT_MB) { struct rlimit r; ! // Cater to the absence of rlim_t. ! __typeof__ (r.rlim_cur) limit ! = (__typeof__ (r.rlim_cur))(__size * 1048576); // Heap size, seems to be common. #if _GLIBCPP_HAVE_MEMLIMIT_DATA diff -Nrc3pad gcc-3.2/maintainer-scripts/ChangeLog gcc-3.2.1/maintainer-scripts/ChangeLog *** gcc-3.2/maintainer-scripts/ChangeLog Wed Aug 14 09:01:12 2002 --- gcc-3.2.1/maintainer-scripts/ChangeLog Tue Nov 19 17:50:16 2002 *************** *** 1,3 **** --- 1,15 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + 2002-08-14 Release Manager * GCC 3.2 Released. diff -Nrc3pad gcc-3.2/zlib/ChangeLog gcc-3.2.1/zlib/ChangeLog *** gcc-3.2/zlib/ChangeLog Wed Aug 14 09:01:14 2002 --- gcc-3.2.1/zlib/ChangeLog Tue Nov 19 17:50:19 2002 *************** *** 1,3 **** --- 1,19 ---- + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-19 Release Manager + + * GCC 3.2.1 Released. + + 2002-11-18 Release Manager + + * GCC 3.2.1 Released. + + 2002-10-07 Kaveh R. Ghazi + + * Makefile.am (all-multi): Fix multilib parallel build. + 2002-08-14 Release Manager * GCC 3.2 Released. *************** Changes in 1.0.6 (19 Jan 1998) *** 253,259 **** - use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) - added makelcc.bat for lcc-win32 (Tom St Denis) - in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) ! - Avoid expanded $Id: ChangeLog,v 1.2.16.5.2.1 2002/08/14 09:01:14 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 --- 269,275 ---- - use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) - added makelcc.bat for lcc-win32 (Tom St Denis) - in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) ! - Avoid expanded $Id: ChangeLog,v 1.2.16.5.2.5 2002/11/19 17:50:19 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 diff -Nrc3pad gcc-3.2/zlib/Makefile.am gcc-3.2.1/zlib/Makefile.am *** gcc-3.2/zlib/Makefile.am Sun Mar 17 00:45:47 2002 --- gcc-3.2.1/zlib/Makefile.am Mon Oct 7 04:37:05 2002 *************** distclean-am: distclean-multi *** 85,91 **** maintainer-clean-am: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 85,91 ---- maintainer-clean-am: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: diff -Nrc3pad gcc-3.2/zlib/Makefile.in gcc-3.2.1/zlib/Makefile.in *** gcc-3.2/zlib/Makefile.in Sun Mar 17 00:45:47 2002 --- gcc-3.2.1/zlib/Makefile.in Mon Oct 7 04:37:05 2002 *************** distclean-am: distclean-multi *** 480,486 **** maintainer-clean-am: maintainer-clean-multi all-multi: ! $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: --- 480,486 ---- maintainer-clean-am: maintainer-clean-multi all-multi: ! : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do install-multi: $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do mostlyclean-multi: